Après la mise à jour d'ubuntu 16.04 à 18.04, j'ai remarqué que php-curl ne fonctionnait pas, mais php fonctionnait bien. Je pensais que le problème était qu’Apache2 utilisait toujours php7.0 au lieu de php7.2, j’ai donc lancé
Sudo a2dismod php7.0
Sudo a2enmod php7.2
Sudo systemctl restart Apache2
maintenant, php ne fonctionne pas, mais le code HTML est rendu ...
cela retourne une page vierge:
<?php phpinfo(); ?>
J'ai revérifié mon implémentation de phpinfo () en utilisant la version trouvée dans la page php: phpinfo -manual, répétée ci-dessous, ne fonctionne toujours pas avec Apache, mais cela fonctionne quand je lance dans bash ce qui suit:
my-machine:~$ php public_html/info.php
Voici une version éditée de http://php.net/manual/en/function.phpinfo.php
<?php
phpinfo();
// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo(INFO_MODULES);
?>
J'ai aussi essayé
Sudo update-alternatives --set php /usr/bin/php7.2
J'ai édité le fichier /etc/php/7.2/Apache2/php.ini comme indiqué sur une page, comme suit:
short_open_tag = On
Voici quelques informations sur ma configuration.
version php
php -v
PHP 7.2.7-0ubuntu0.18.04.2 (cli) (built: Jul 4 2018 16:55:24) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.7-0ubuntu0.18.04.2, Copyright (c) 1999-2018, by Zend Technologies
a2query
a2query -m php7.2
php7.2 (enabled by site administrator)
liste des modules Apache2 , remarque: "AH01574: le module php7_module est déjà chargé, le saut est", car j'exécute aussi = Sudo a2enmod php7.0 = en espérant pour revenir à ce que je pensais avoir ... J'ai désactivé php7.2, activer php7.0 et redémarrer Apache2 avec Sudo systemctl redémarrer Apache2, mais php n'est pas rendu.
Apache2ctl -M
[Sun Sep 02 18:03:43.185183 2018] [so:warn] [pid 4166] AH01574: module php7_module is already loaded, skipping
AH00558: Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_Host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
dnssd_module (shared)
env_module (shared)
filter_module (shared)
mime_module (shared)
mpm_prefork_module (shared)
negotiation_module (shared)
php7_module (shared)
reqtimeout_module (shared)
setenvif_module (shared)
status_module (shared)
userdir_module (shared)
liste des paquets php installés
Sudo apt list --installed | grep -i php
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
libapache2-mod-php/bionic,bionic,now 1:7.2+60ubuntu1 all [installed]
libapache2-mod-php7.0/now 7.0.30-0ubuntu0.16.04.1 AMD64 [installed,local]
libapache2-mod-php7.2/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed]
libphp-phpmailer/bionic,bionic,now 5.2.14+dfsg-2.3 all [installed,automatic]
php/bionic,bionic,now 1:7.2+60ubuntu1 all [installed]
php-bz2/bionic,bionic,now 1:7.2+60ubuntu1 all [installed,automatic]
php-cli/bionic,bionic,now 1:7.2+60ubuntu1 all [installed,automatic]
php-common/bionic,bionic,now 1:60ubuntu1 all [installed]
php-curl/bionic,bionic,now 1:7.2+60ubuntu1 all [installed]
php-db/bionic,bionic,now 1.9.2-2ubuntu1 all [installed]
php-Gd/bionic,bionic,now 1:7.2+60ubuntu1 all [installed,automatic]
php-getid3/bionic,bionic,now 1.9.15+dfsg-1 all [installed,automatic]
php-gettext/bionic,bionic,now 1.0.12-0.1 all [installed,automatic]
php-mbstring/bionic,bionic,now 1:7.2+60ubuntu1 all [installed,automatic]
php-mcrypt/now 1:7.0+35ubuntu6.1 all [installed,local]
php-mysql/bionic,bionic,now 1:7.2+60ubuntu1 all [installed]
php-pear/bionic,bionic,now 1:1.10.5+submodules+notgz-1ubuntu1 all [installed]
php-php-gettext/bionic,bionic,now 1.0.12-0.1 all [installed,automatic]
php-phpseclib/bionic,bionic,now 2.0.9-1 all [installed,automatic]
php-tcpdf/bionic,bionic,now 6.2.13+dfsg-1ubuntu1 all [installed,automatic]
php-tidy/bionic,bionic,now 1:7.2+60ubuntu1 all [installed]
php-xml/bionic,bionic,now 1:7.2+60ubuntu1 all [installed,automatic]
php-Zip/bionic,bionic,now 1:7.2+60ubuntu1 all [installed,automatic]
php5-common/now 5.5.9+dfsg-1ubuntu4.19 AMD64 [installed,local]
php5-json/now 1.3.2-2build1 AMD64 [installed,local]
php5-mysql/now 5.5.9+dfsg-1ubuntu4.19 AMD64 [installed,local]
php7.0/now 7.0.30-0ubuntu0.16.04.1 all [installed,local]
php7.0-cli/now 7.0.30-0ubuntu0.16.04.1 AMD64 [installed,local]
php7.0-common/now 7.0.30-0ubuntu0.16.04.1 AMD64 [installed,local]
php7.0-Gd/now 7.0.30-0ubuntu0.16.04.1 AMD64 [installed,local]
php7.0-json/now 7.0.30-0ubuntu0.16.04.1 AMD64 [installed,local]
php7.0-mbstring/now 7.0.30-0ubuntu0.16.04.1 AMD64 [installed,local]
php7.0-mcrypt/now 7.0.30-0ubuntu0.16.04.1 AMD64 [installed,local]
php7.0-mysql/now 7.0.30-0ubuntu0.16.04.1 AMD64 [installed,local]
php7.0-opcache/now 7.0.30-0ubuntu0.16.04.1 AMD64 [installed,local]
php7.0-readline/now 7.0.30-0ubuntu0.16.04.1 AMD64 [installed,local]
php7.0-xml/now 7.0.30-0ubuntu0.16.04.1 AMD64 [installed,local]
php7.2/bionic-updates,bionic-updates,bionic-security,bionic-security,now 7.2.7-0ubuntu0.18.04.2 all [installed,automatic]
php7.2-bz2/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed,automatic]
php7.2-cli/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed,automatic]
php7.2-common/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed,automatic]
php7.2-curl/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed]
php7.2-Gd/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed,automatic]
php7.2-json/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed,automatic]
php7.2-mbstring/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed,automatic]
php7.2-mysql/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed,automatic]
php7.2-opcache/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed,automatic]
php7.2-readline/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed,automatic]
php7.2-tidy/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed,automatic]
php7.2-xml/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed,automatic]
php7.2-Zip/bionic-updates,bionic-security,now 7.2.7-0ubuntu0.18.04.2 AMD64 [installed,automatic]
phpmyadmin/bionic,bionic,now 4:4.6.6-5 all [installed]
apt policy libapache2-mod-php7.2
Sudo apt policy libapache2-mod-php7.2
libapache2-mod-php7.2:
Installed: 7.2.7-0ubuntu0.18.04.2
Candidate: 7.2.7-0ubuntu0.18.04.2
Version table:
*** 7.2.7-0ubuntu0.18.04.2 500
500 http://us.archive.ubuntu.com/ubuntu bionic-updates/main AMD64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main AMD64 Packages
100 /var/lib/dpkg/status
7.2.3-1ubuntu1 500
500 http://us.archive.ubuntu.com/ubuntu bionic/main AMD64 Packages
ls -l/etc/Apache2/mods-enabled/php *
ls -l /etc/Apache2/mods-enabled/php*
lrwxrwxrwx 1 root root 29 Sep 2 18:48 /etc/Apache2/mods-enabled/php7.2.conf -> ../mods-available/php7.2.conf
lrwxrwxrwx 1 root root 29 Sep 2 18:48 /etc/Apache2/mods-enabled/php7.2.load -> ../mods-available/php7.2.load
exemple de journaux Apache2
[Mon Sep 03 00:06:52.805155 2018] [mpm_prefork:notice] [pid 5161] AH00163: Apache/2.4.29 (Ubuntu) configured -- resuming normal operations
[Mon Sep 03 00:06:52.805181 2018] [core:notice] [pid 5161] AH00094: Command line: '/usr/sbin/Apache2'
[Sun Sep 02 13:39:30.728738 2018] [:error] [pid 4109] [client 127.0.0.1:36468] PHP Notice: Only variables should be assigned by reference in /home/go/public_html/index.php on line 115
[Sun Sep 02 13:39:30.739232 2018] [:error] [pid 4109] [client 127.0.0.1:36468] PHP Notice: Undefined variable: year in /home/go/public_html/calendar.php on line 38
[Sun Sep 02 13:39:30.739253 2018] [:error] [pid 4109] [client 127.0.0.1:36468] PHP Notice: Undefined variable: month in /home/go/public_html/calendar.php on line 40
[Sun Sep 02 13:39:30.739256 2018] [:error] [pid 4109] [client 127.0.0.1:36468] PHP Notice: Undefined variable: year in /home/go/public_html/calendar.php on line 42
[Sun Sep 02 13:39:30.739260 2018] [:error] [pid 4109] [client 127.0.0.1:36468] PHP Notice: Undefined variable: year in /home/go/public_html/calendar.php on line 46
[Sun Sep 02 13:39:30.739278 2018] [:error] [pid 4109] [client 127.0.0.1:36468] PHP Notice: Undefined variable: month in /home/go/public_html/calendar.php on line 52
[Sun Sep 02 13:39:30.739281 2018] [:error] [pid 4109] [client 127.0.0.1:36468] PHP Notice: Undefined variable: month in /home/go/public_html/calendar.php on line 56
[Sun Sep 02 13:39:35.889200 2018] [:error] [pid 4111] [client 127.0.0.1:36478] PHP Notice: Only variables should be assigned by reference in /home/go/public_html/show-reading-list.php on line 7, referer: http://localhost/~go/
les variables mentionnées dans les journaux sont dans ces fichiers php ... et je vois les mêmes erreurs dans les journaux précédents générés avant la mise à jour.
php et php-curl fonctionnent maintenant.
Ce qui m'a amené à la réponse, c'est de remarquer une différence entre php7.0.conf et php7.2.conf dans/etc/Apache2/mods-available /, qui n'affecterait que la manière dont php était exécuté dans le répertoire userdir. J'ai ensuite vérifié si php fonctionnait sur le serveur et j'ai constaté qu'il le faisait.
En résumé, je pense qu'après la mise à jour d'ubuntu 16.04 et 18.04, j'avais besoin de
<IfModule mod_userdir.c>
;php et php-curl fonctionnent maintenant dans userdir.
Merci à tous ceux qui ont laissé un commentaire.
[[Ajoutant ceci comme réponse uniquement pour faciliter le formatage]) J'ai été aux prises avec ce problème après une nouvelle installation d'Ububtu18.04 sur un disque SSD. utilisait ~/public_html directory
dans mon compte utilisateur en tant que racine du document. Aucun code PHP n'a été analysé par Apache.
Enfin, la question détaillée ci-dessus m'a aidé à déterminer que, alors que php ~/public_html/test.php
fonctionnait, l'accès aux fichiers php depuis le navigateur ne fonctionnait pas.
Solution: Autoriser Apache2 à exécuter PHP dans les répertoires de l'utilisateur. (comme dans la réponse ci-dessus). Recherchez et modifiez le fichier php7.2.conf. Dans mon cas, il se trouvait à /etc/Apache2/mods-enabled/php7.2.conf
. Ces lignes devaient être commentées:
# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
#</IfModule>
Apache2 redémarré et cela a fonctionné maintenant. Vous devrez peut-être effacer la page du cache du navigateur.
Merci à @tempestcat J'espère que cela aidera d'autres personnes à l'avenir.