root@www:~# ls -la /usr/bin/ph* lrwxrwxrwx 1 root root 22 oct. 31 2018 /usr/bin/phar -> /etc/alternatives/phar lrwxrwxrwx 1 root root 12 juin 5 01:15 /usr/bin/phar7.0 -> phar.phar7.0 lrwxrwxrwx 1 root root 12 févr. 13 17:31 /usr/bin/phar7.3 -> phar.phar7.3 lrwxrwxrwx 1 root root 27 oct. 31 2018 /usr/bin/phar.phar -> /etc/alternatives/phar.phar -rwxr-xr-x 1 root root 14826 juin 5 01:15 /usr/bin/phar.phar7.0 -rwxr-xr-x 1 root root 14814 févr. 13 17:31 /usr/bin/phar.phar7.3 lrwxrwxrwx 1 root root 21 oct. 31 2018 /usr/bin/php -> /etc/alternatives/php -rwxr-xr-x 1 root root 4394032 juin 5 01:15 /usr/bin/php7.0 -rwxr-xr-x 1 root root 4777720 févr. 13 17:31 /usr/bin/php7.3 lrwxrwxrwx 1 root root 28 juin 28 16:03 /usr/bin/php-config -> /etc/alternatives/php-config -rwxr-xr-x 1 root root 4217 févr. 13 17:31 /usr/bin/php-config7.3 lrwxrwxrwx 1 root root 24 juin 28 16:03 /usr/bin/phpize -> /etc/alternatives/phpize -rwxr-xr-x 1 root root 4984 févr. 13 17:31 /usr/bin/phpize7.3
Ok!.. Je crois que je commence à avoir une petite idée plus ou moins de ce qu’il se passe: notes les lignes suivantes dans ton listing:
lrwxrwxrwx 1 root root 12 juin 5 01:15 /usr/bin/phar7.0 -> phar.phar7.0
lrwxrwxrwx 1 root root 12 févr. 13 17:31 /usr/bin/phar7.3 -> phar.phar7.3
....
-rwxr-xr-x 1 root root 14826 juin 5 01:15 /usr/bin/phar.phar7.0
-rwxr-xr-x 1 root root 14814 févr. 13 17:31 /usr/bin/phar.phar7.3
....
rwxr-xr-x 1 root root 4394032 juin 5 01:15 /usr/bin/php7.0
-rwxr-xr-x 1 root root 4777720 févr. 13 17:31 /usr/bin/php7.3
....
A mon sens, c’est ça qui f…t la m…rde. Moi, voila ce que j’ai:
Renvoies-moi le résultat de la commande suivante SVP:
sudo update-alternatives --display php
Comme je l’ai indiqué il faut purger les paquets PHP 7.0
Il faut aussi désinstaller php-fpm que tu n’utilise probablement pas :
sudo apt purge php-fpm php7.3-fpm
Ensuite en me basant sur ta liste réinstalle ceux qui pourraient manquer :
sudo apt install php-bz2 php-cli php-gd php-json php-ldap php-mbstring php-mysql php-opcache php-pgsql php-readline php-xml php-zip
Et marque comme installés automatiquement tout ceux avec numéro de version :
sudo apt-mark auto php7* libapache2-mod-php7.3
Et encore une fois update-alternatives est inutile et ne concerne que l’interpréteur php en ligne de commande pas celui fourni par le module Apache.
Oui Bruno1 ta méthode est parfaitement correcte effectivement. Néanmoins lis bien les désidératas de franck67:
Ce en quoi il a raison de se méfier car si je me réfère à la doc PHP il existe effectivement quelques incompatibilités ascendantes entre php 7.0 et les versions supérieurs (cf. ici: https://www.php.net/manual/fr/migration71.incompatible.php). Notes d’ailleurs que d’autre prennent également cette précaution:
Du coup il a bien besoin de php-fpm et de passer par un update-alternatives si il veut avoir les deux versions de PHP sur sa machine. Sur ce point toutes les documentations que j’ai pu lire sur le sujet sont unanymes…
root@www:~# update-alternatives --display php php - mode manuel link best version is /usr/bin/php7.3 le lien pointe actuellement sur /usr/bin/php7.3 link php is /usr/bin/php slave php.1.gz is /usr/share/man/man1/php.1.gz /usr/bin/php7.0 - priorité 70 lien secondaire php.1.gz : /usr/share/man/man1/php7.0.1.gz /usr/bin/php7.3 - priorité 73 lien secondaire php.1.gz : /usr/share/man/man1/php7.3.1.gz
Effectivement, tant que php7.3 ne fonctionne pas, je voudrais garder php7.0…
La demande initiale indiquait bien une migration vers Debian 10 pour passer en PHP 7.3 :
Je suppose donc que les problèmes de compatibilité des script PHP utilisés ont été vérifié avant et que ce n’est pas la crainte de @franck67.
Avoir plusieurs versions de PHP sur la même machine est une opération relativement complexe et ce n’est pas le sujet ici. On peut effectivement utiliser php-fpm et des versions différentes, compilées sur place ou avec des dépôts exotiques plus ou moins risqués. On peut aussi utiliser docker pour y mettre une autre version de PHP.
Et vous êtes des têtes de mules avec votre update-alternatives
On parle d’un interpréteur PHP pour le serveur web (module Apache ou php-fpm) pas de l’interpréteur en ligne de commande !
Effectivement, mon but est de passer en full php 7.3. Mais pour l’instant, lorsque je passe mon apache en 7.3, le php n’est plus interprété… donc je ne vais pas virer le 7.0 tout de suite, sinon mon site ne sera plus accessible
Cela ne fonctionne pas car tu as toujours des paquets en version 7.0 installés. Tant que tu ne feras pas le ménage comme indiqué tu resteras avec un système bancal mélangeant du PHP 7.3 et des paquets en version 7.0 qui n’auront plus de mises à jour de sécurité.
Tu t’es lancé dans une migration vers une version supérieure de Debian, maintenant il faut aller jusqu’au bout. Et de toute façon tu as forcément fait des sauvegardes des données avant, qui te permettront de tout réinstaller rapidement en cas de catastrophe.
C’est une machine virtuelle.
Je suis entrain de faire un dump, comme ca je peux virer php7, et revenir au dump si ca fonctionne plus. Mais c’est bourrin !
Même problème…
malgré le fait que je n’ai plus aucune trace de php7.0, mon apache n’interprete pas le php
Et après un
sudo a2enmod php7.3
sudo service apache2 restart
ça donne quoi?
Je l’avais fait
Redonne :
apt list \*php\* --installed
sudo apache2ctl -t
sudo apache2ctl -M
root@www:~$ apt list \*php\* --installed En train de lister... Fait libapache2-mod-php7.0/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] libapache2-mod-php7.3/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé] libapache2-mod-php/stable,now 2:7.3+69 all [installé] libawl-php/stable,stable,now 0.60-1+deb10u1 all [installé, automatique] php-bz2/stable,now 2:7.3+69 all [installé, automatique] php-cli/stable,now 2:7.3+69 all [installé] php-common/now 2:84+0~20210621.36+debian9~1.gbp28513e all [installé, local] php-composer-ca-bundle/stable,now 1.1.4-1 all [installé, automatique] php-composer-semver/stable,now 1.4.2-1 all [installé, automatique] php-composer-spdx-licenses/stable,now 1.5.0-1 all [installé, automatique] php-composer-xdebug-handler/stable,now 1.3.2-1 all [installé, automatique] php-curl/stable,now 2:7.3+69 all [installé] php-gd/stable,now 2:7.3+69 all [installé] php-intl/stable,now 2:7.3+69 all [installé] php-json-schema/stable,now 5.2.8-1 all [installé, automatique] php-json/stable,now 2:7.3+69 all [installé] php-mbstring/stable,now 2:7.3+69 all [installé] php-memcache/stable,now 3.0.9~20170802.e702b5f-2 amd64 [installé] php-mysql/stable,now 2:7.3+69 all [installé, automatique] php-pear/now 1:1.10.12+submodules+notgz+20210212-1+0~20210228.21+debian9~1.gbpf2b98f all [installé, local] php-pgsql/stable,now 2:7.3+69 all [installé, automatique] php-php-gettext/stable,now 1.0.12-0.1 all [installé, automatique] php-phpseclib/stable,now 2.0.14-1 all [installé, automatique] php-psr-log/stable,now 1.1.0-1 all [installé, automatique] php-ssh2/stable,now 1.1.2+0.13-4 amd64 [installé] php-symfony-console/stable,stable,now 3.4.22+dfsg-2+deb10u1 all [installé, automatique] php-symfony-debug/stable,stable,now 3.4.22+dfsg-2+deb10u1 all [installé, automatique] php-symfony-filesystem/stable,stable,now 3.4.22+dfsg-2+deb10u1 all [installé, automatique] php-symfony-finder/stable,stable,now 3.4.22+dfsg-2+deb10u1 all [installé, automatique] php-symfony-process/stable,stable,now 3.4.22+dfsg-2+deb10u1 all [installé, automatique] php-tcpdf/now 6.2.12+dfsg2-1 all [installé, local] php-xml/stable,now 2:7.3+69 all [installé] php-zip/stable,now 2:7.3+69 all [installé] php7.0-bz2/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0-cli/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0-common/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0-gd/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0-json/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0-ldap/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0-mbstring/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0-mysql/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0-opcache/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0-pgsql/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0-readline/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0-xml/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0-zip/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 amd64 [installé, local] php7.0/now 7.0.33-50+0~20210604.56+debian9~1.gbpa45c80 all [installé, local] php7.3-bz2/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-cli/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-common/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-curl/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-dev/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé] php7.3-fpm/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé] php7.3-gd/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-intl/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-json/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-mbstring/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-mysql/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-opcache/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-pgsql/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-readline/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-xml/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3-zip/stable,stable,now 7.3.27-1~deb10u1 amd64 [installé, automatique] php7.3/stable,stable,now 7.3.27-1~deb10u1 all [installé, automatique] php/stable,now 2:7.3+69 all [installé] phpmyadmin/now 4:4.6.6-4+deb9u2 all [installé, local] pkg-php-tools/stable,now 1.37 all [installé, automatique]
root@www:~# apache2ctl -t Syntax OK
root@www:~# apache2ctl -M 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) dav_module (shared) dav_fs_module (shared) deflate_module (shared) dir_module (shared) env_module (shared) filter_module (shared) headers_module (shared) mime_module (shared) mpm_prefork_module (shared) negotiation_module (shared) php7_module (shared) proxy_module (shared) proxy_connect_module (shared) proxy_http_module (shared) reqtimeout_module (shared) rewrite_module (shared) setenvif_module (shared) socache_shmcb_module (shared) ssl_module (shared) status_module (shared) userdir_module (shared)
Tu n’as pas lancé les commandes que j’ai indiquées précédemment (message 24). Tu as toujours des paquets PHP 7.0 installés.
sisi ! j’ai sauvegardé ma VM, lancé toutes tes commandes, constaté que php7.0 n’etait plus la, activé le mod phph7.3, et redémarré apache, mais le php n’etait pas interprété.
du coup, j’ai remis ma VM a son etait initial, car j’ai des sites qui tournent… (message 30 & 31)
Donc pas de dépannage possible
Et voila!.. CQFD!!.. cf ma première intervention!.. Celle dans laquelle je validais le diagnostique de Bruno1 en rajoutant de stopper le serveur: quelque chose bloque le passage en PHP7.3. Je le savais par expérience puisque j’avais tenter cette manip à plusieurs reprises et échouer systématiquement avec à chaque fois un même résultat: un beau capharnaum qui obligeait la re-installation de l’ensemble. Après il est peut-être vrai que je me fourvois sur les causes de l’échec.
Bon!.. Voila comment je m’en suis tiré à chaque fois:
1 - Désinstaller TOTALEMENT php (donc dans le cas présent PHP 7.0 PHP 7.3 et… PHP tout court!.. en n’oubliant pas bien entendu l’option --purge dans les manoeuvres « apt remove »
2 - Re-installer PHP tout court
3 - Bien entendu ne pas oublier de reconfigurer (par exemple, je vois que dans l’ensemble des modules tu as le module userdir. si tu l’utilise il faut aller bidouiller un peu dans /etc/apache2/mods-available/php7.3.conf)
4- re-démarrer le serveur pour lui faire prendre compte de la manip opéré en 3
L’ensemble de la manip ne devrait pas prendre plus d’un quart d’heure. Evidemment, durant ce temps, le site ne sera pas fonctionnel mais bon!.. Suffit de choisir le bon créneaux horaire vu qu’il fonctionne actuellement en 7.0
Tiens?.. D’ailleurs il est peut-être là le probleme!.. Dans le module userdir.
Comment tu as installé ton site. Ne serait-il pas par hasard dans le home d’un user quelconque? Je sais que cela se pratique parfois. Du coup cela expliquerai pourquoi il fonctionne avec PHP 7.0 et pas PHP7.3.
En effet, lorsqu’on utilise le module userdir il faut, pour que php soit lisible dans le public_html, dans le fichier de configuration de php (/etc/apache2/mods-available/php7.x.conf) commenter toute la partie comme cela:
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
# </IfModule>
Si cela a été fait dans php7.0.conf et pas dans php7.3.conf cela expliquerai pourquoi ça fonctionne avec php7.0 et pas avec php7.3