Multiples versions de PHP... 7.0, 7.1, 7.2, 7.3.... BUG

Bonjour,

Comment as-tu fait pour avoir PHP 7.0 et PHP 7.3 sur une debian buster, sachant que seule la version 7.3 est disponible dans les dépôts officiels ?
Installer et utiliser plusieurs versions de PHP sur la même machine, sans passer par des conteneurs type docker ou de la virtualisation, est une opération complexe et à haut risque. Je déconseille d’ailleurs fortement la procédure décrite dans le lien donné par Albert.

1 J'aime

Ben c’est simple PHP7.0 avant MAJ vers buster. Puis MAJ vers buster au début de l’été. Puis là MAJ vers php7.3
Tu sembles me confirmer qu’il faut que je me débarrasse de php7.0 à fond…

Ah oui je confirme :wink:
Ce n’est pas normal d’avoir encore du PHP 7.0 après une mise à niveau vers buster.

voici mon php.info, ça pique:

System Linux web.NONYMOUS.fr 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5+deb10u1 (2019-07-19) x86_64
Build Date Mar 8 2019 10:01:24
Server API Apache 2.0 Handler
Virtual Directory Support disabled
Configuration File (php.ini) Path /etc/php/7.0/apache2
Loaded Configuration File /etc/php/7.0/apache2/php.ini
Scan this dir for additional .ini files /etc/php/7.0/apache2/conf.d
Additional .ini files parsed /etc/php/7.0/apache2/conf.d/10-mysqlnd.ini, /etc/php/7.0/apache2/conf.d/10-opcache.ini, /etc/php/7.0/apache2/conf.d/10-pdo.ini, /etc/php/7.0/apache2/conf.d/15-xml.ini, /etc/php/7.0/apache2/conf.d/20-bz2.ini, /etc/php/7.0/apache2/conf.d/20-calendar.ini, /etc/php/7.0/apache2/conf.d/20-ctype.ini, /etc/php/7.0/apache2/conf.d/20-dom.ini, /etc/php/7.0/apache2/conf.d/20-exif.ini, /etc/php/7.0/apache2/conf.d/20-fileinfo.ini, /etc/php/7.0/apache2/conf.d/20-ftp.ini, /etc/php/7.0/apache2/conf.d/20-gd.ini, /etc/php/7.0/apache2/conf.d/20-gettext.ini, /etc/php/7.0/apache2/conf.d/20-iconv.ini, /etc/php/7.0/apache2/conf.d/20-imagick.ini, /etc/php/7.0/apache2/conf.d/20-intl.ini, /etc/php/7.0/apache2/conf.d/20-json.ini, /etc/php/7.0/apache2/conf.d/20-mcrypt.ini, /etc/php/7.0/apache2/conf.d/20-mysqli.ini, /etc/php/7.0/apache2/conf.d/20-pdo_mysql.ini, /etc/php/7.0/apache2/conf.d/20-pdo_pgsql.ini, /etc/php/7.0/apache2/conf.d/20-pdo_sqlite.ini, /etc/php/7.0/apache2/conf.d/20-pgsql.ini, /etc/php/7.0/apache2/conf.d/20-phar.ini, /etc/php/7.0/apache2/conf.d/20-posix.ini, /etc/php/7.0/apache2/conf.d/20-readline.ini, /etc/php/7.0/apache2/conf.d/20-shmop.ini, /etc/php/7.0/apache2/conf.d/20-simplexml.ini, /etc/php/7.0/apache2/conf.d/20-sockets.ini, /etc/php/7.0/apache2/conf.d/20-sqlite3.ini, /etc/php/7.0/apache2/conf.d/20-sysvmsg.ini, /etc/php/7.0/apache2/conf.d/20-sysvsem.ini, /etc/php/7.0/apache2/conf.d/20-sysvshm.ini, /etc/php/7.0/apache2/conf.d/20-tokenizer.ini, /etc/php/7.0/apache2/conf.d/20-wddx.ini, /etc/php/7.0/apache2/conf.d/20-xmlreader.ini, /etc/php/7.0/apache2/conf.d/20-xmlwriter.ini, /etc/php/7.0/apache2/conf.d/20-xsl.ini, /etc/php/7.0/apache2/conf.d/20-zip.ini
PHP API 20151012
PHP Extension 20151012
Zend Extension 320151012
Zend Extension Build API320151012,NTS
PHP Extension Build API20151012,NTS
Debug Build no
Thread Safety disabled
Zend Signal Handling disabled
Zend Memory Manager enabled
Zend Multibyte Support disabled
IPv6 Support enabled
DTrace Support available, disabled
Registered PHP Streams https, ftps, compress.zlib, php, file, glob, data, http, ftp, compress.bzip2, phar, zip
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv2, tls, tlsv1.0, tlsv1.1, tlsv1.2
Registered Stream Filters zlib., string.rot13, string.toupper, string.tolower, string.strip_tags, convert., consumed, dechunk, bzip2., convert.iconv., mcrypt., mdecrypt.

Et sinon, comment on fait pour que ce soit propre ? lol :wink:

Déjà commencer par vérifier que tu n’as plus que buster dans tes dépôts :

rgrep ^deb /etc/apt

et que la mise à niveau est bien complète :

apt update
apt full-upgrade
root@web:/home/max# rgrep ^deb /etc/apt
/etc/apt/sources.list:deb http://debian.mirrors.ovh.net/debian/ buster main
/etc/apt/sources.list:deb-src http://debian.mirrors.ovh.net/debian/ buster main
/etc/apt/sources.list:deb http://security.debian.org/ buster/updates main
/etc/apt/sources.list:deb-src http://security.debian.org/ buster/updates main
/etc/apt/sources.list:deb http://debian.mirrors.ovh.net/debian buster-backports main

Les deux commandes suivantes ont été faites également. Des MAJ ont été faites.
Pour l’instant Problème persistant. Quelle est la prochaine étape selon toi ?

Que donne

apt-cache policy php php7.0

Ceci permettrait de vérifier que le paquet générique php n’a pas été installé.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« On ne perd pas son temps en aiguisant ses outils. »
Proverbe français

« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)

root@web:/home/max# apt-cache policy php php7.0
php:
  Installé : (aucun)
  Candidat : 2:7.3+69
 Table de version :
     2:7.3+69 500
        500 http://debian.mirrors.ovh.net/debian buster/main amd64 Packages
php7.0-exif:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-simplexml:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-bz2:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-thrift:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-cli:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-sockets:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-dom:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-sysvmsg:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-remctl:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-fpm:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-gd:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-ftp:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-opcache:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-sysvsem:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-calendar:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-sysvshm:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-fileinfo:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-common:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-posix:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-iconv:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-sqlite3:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-pdo:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-wddx:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-pdo-pgsql:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-json:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-mysqlnd:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-phar:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-readline:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-xml:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-xsl:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-curl:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-zip:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-pgsql:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-shmop:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-mcrypt:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-intl:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-xmlwriter:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-ctype:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-pdo-sqlite:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-gettext:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-mysqli:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-pdo-mysql:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-xmlreader:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-phpdbg:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
libapache2-mod-php7.0:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status
php7.0-tokenizer:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.0-mysql:
  Installé : 7.0.33-0+deb9u3
  Candidat : 7.0.33-0+deb9u3
 Table de version :
 *** 7.0.33-0+deb9u3 100
        100 /var/lib/dpkg/status

Il faut installer le paquet générique php, cela devrait déjà un peu remettre les choses d’aplomb :

apt install php libapache2-mod-php

Quand tu installes des paquets php il faut éviter de les installer avec leur numéro de version : installer php et non php7.3, php-zip et non hp7.3-zip, etc. sinon tu auras des problèmes lors des mises à niveau.

Si cela ne suffit pas il faudra ensuite purger tout ce qui php7.0
apt autoremove --purge php7.0\* libapache2-mod-php7.0

Et enfin, éventuellement nettoyer les résidus de configuration :
dpkg -l | grep ^rc | cut -d' ' -f3 | xargs dpkg -P

1 J'aime

Lol, donc là on est dans la situation: “tout est cassé”.

Mon wordpress me disait que mysql n’était pas installé (après un apt install php-mysql, il me dit qu’il n’arrive pas à se connecter à la bdd).

Et mon nextcloud m’affiche une page blanche…

Seul mon php.info fonctionne:

PHP Version 7.3.4-2

System Linux web.NONYMOUS.fr 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5+deb10u2 (2019-08-08) x86_64
Build Date Apr 13 2019 19:05:48
Server API Apache 2.0 Handler
Virtual Directory Support disabled
Configuration File (php.ini) Path /etc/php/7.3/apache2
Loaded Configuration File /etc/php/7.3/apache2/php.ini
Scan this dir for additional .ini files /etc/php/7.3/apache2/conf.d
Additional .ini files parsed /etc/php/7.3/apache2/conf.d/10-mysqlnd.ini, /etc/php/7.3/apache2/conf.d/10-opcache.ini, /etc/php/7.3/apache2/conf.d/10-pdo.ini, /etc/php/7.3/apache2/conf.d/20-calendar.ini, /etc/php/7.3/apache2/conf.d/20-ctype.ini, /etc/php/7.3/apache2/conf.d/20-curl.ini, /etc/php/7.3/apache2/conf.d/20-exif.ini, /etc/php/7.3/apache2/conf.d/20-fileinfo.ini, /etc/php/7.3/apache2/conf.d/20-ftp.ini, /etc/php/7.3/apache2/conf.d/20-gettext.ini, /etc/php/7.3/apache2/conf.d/20-iconv.ini, /etc/php/7.3/apache2/conf.d/20-imagick.ini, /etc/php/7.3/apache2/conf.d/20-json.ini, /etc/php/7.3/apache2/conf.d/20-mbstring.ini, /etc/php/7.3/apache2/conf.d/20-mysqli.ini, /etc/php/7.3/apache2/conf.d/20-pdo_mysql.ini, /etc/php/7.3/apache2/conf.d/20-phar.ini, /etc/php/7.3/apache2/conf.d/20-posix.ini, /etc/php/7.3/apache2/conf.d/20-readline.ini, /etc/php/7.3/apache2/conf.d/20-sass.ini, /etc/php/7.3/apache2/conf.d/20-shmop.ini, /etc/php/7.3/apache2/conf.d/20-smbclient.ini, /etc/php/7.3/apache2/conf.d/20-sockets.ini, /etc/php/7.3/apache2/conf.d/20-sysvmsg.ini, /etc/php/7.3/apache2/conf.d/20-sysvsem.ini, /etc/php/7.3/apache2/conf.d/20-sysvshm.ini, /etc/php/7.3/apache2/conf.d/20-tideways.ini, /etc/php/7.3/apache2/conf.d/20-tokenizer.ini, /etc/php/7.3/apache2/conf.d/20-uploadprogress.ini, /etc/php/7.3/apache2/conf.d/30-ds.ini
PHP API 20180731
PHP Extension 20180731
Zend Extension 320180731
Zend Extension Build API320180731,NTS
PHP Extension Build API20180731,NTS
Debug Build no
Thread Safety disabled
Zend Signal Handling enabled
Zend Memory Manager enabled
Zend Multibyte Support provided by mbstring
IPv6 Support enabled
DTrace Support available, disabled
Registered PHP Streams https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar, smb
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2
Registered Stream Filters zlib., string.rot13, string.toupper, string.tolower, string.strip_tags, convert., consumed, dechunk, convert.iconv.*

Donc Php7.3 est bien en route… mais mes sites ne fonctionnent pas… une idée pour remettre les choses d’aplomb ?

Merci.

Le PHP fonctionne et est bien en version 7.3. Tu as peut-être aussi un problème avec mysql, voir le retour de :
systemctl status mysql

De manière générale il faut que tu sois capable d’examiner les logs et l’état des services si tu veux administrer un serveur web.

Et bien, jusqu’à maintenant, je m’en sortais pas trop mal justement en regardant les logs, mais là, j’avoue que je suis un peu (trop) en mode panique.

Et tu as bien mis le doigt sur le pb, mysql ne semble pas en route… ni même installé, car il me dit que le service n’est pas connu… Je vais essayer de déstresser et de reprendre les choses dans l’ordre…

Je ne comprends plus rien, mon système ne veut pas installer mysql… ni client, ni server… (apt install mysql-server, apt install mysql-client)

Et là, illumination… mariadb, et non mysql-server. Le wordpress est revenu… Pas le nexcloud, mais le wordpress est good. Je vais continuer à chercher :wink:

Et on m’annonce à l’oreillette un retour à la normale.
Bisous les amis et grand merci.

Ce tuto, qui est donné dans les liens, je l’ai fait pour un projet personnel, quelle galère. … de passer de php5.6 à php7.x !

Hello,

Tu peux installer plusieurs versions de PHP en te basant sur des dépôts extérieurs :

apt install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
apt-get update

En utilisant le mode FPM de PHP tu pourras jongler confortablement avec les versions.
Des exemples existent sur la toile.

Bien à toi

Je suis arrivé sur ce post suite au même problème de double version de php installée, surtout ne pas executer la 3ème commande qui « nettoie les résidus de configuration » parce que ça supprime toutes les configs des paquets installés. Mon cher Bruno1, je ne te remercie pas car mon serveur est complètement dans les choux. Plus de SSL, plus de sql et je n’en suis qu’au début…

Je décline toute responsabilité, si tu appliques des commandes sans les comprendre, surtout lorsqu’elles on été données pour la résolution d’un problème spécifique qui ne correspondait visiblement pas au tien.