Pages : 1
#1 Le 02/09/2022, à 17:12
- JME44
[Résolu] 20.04->22.04 php8 sans PDO, apache2 sans PHP
Bonjour à tous,
J'espère avoir bien lu le le fil, mais je n'ai pas trouvé ma solution.
Mon problème est, depuis la mise à niveau vers 22.04, l'absence de reconnaissance de PDO par PHP8.1 et l'absence de module de PHP par apache2.
J'ai effectué de nombreuses réinstallations et tests.
Pour ne pas charger, mon problème est exposé sur cet autre forum
Merci d'ouvrir ton propre sujet et j'ai déjà donné la solution dans un autre fil :
sudo a2dismod php7.4 sudo a2enmod php8.1 sudo systemctl restart apache2
Donc exécution
moi@maMachine:~$ sudo a2dismod php7.4
ERROR: Module php7.4 does not exist!
moi@maMachine:~$ sudo a2enmod php8.1
ERROR: Module php8.1 does not exist!
moi@maMachine:~$ sudo systemctl restart apache2
moi@maMachinephp -:~$ php -m
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20210902/pdo_mysql (/usr/lib/php/20210902/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20210902/pdo_mysql.so (/usr/lib/php/20210902/pdo_mysql.so: undefined symbol: mysqlnd_get_client_info)) in Unknown on line 0
PHP Warning: Module "PDO" is already loaded in Unknown on line 0
[PHP Modules]
...
pcre
PDO
pdo_mysql
Phar
...
[Zend Modules]
Zend OPcache
moi@maMachine:~$php -v
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20210902/pdo_mysql (/usr/lib/php/20210902/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20210902/pdo_mysql.so (/usr/lib/php/20210902/pdo_mysql.so: undefined symbol: mysqlnd_get_client_info)) in Unknown on line 0
PHP Warning: Module "PDO" is already loaded in Unknown on line 0
PHP 8.1.2 (cli) (built: Aug 15 2022 12:24:10) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
Dernière modification par JME44 (Le 03/09/2022, à 07:53)
Ubuntu 24.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.
Hors ligne
#2 Le 02/09/2022, à 17:39
- bruno
Re : [Résolu] 20.04->22.04 php8 sans PDO, apache2 sans PHP
Il faut donner :
a2query -m
et au vu de :
moi@maMachine:~$ sudo a2enmod php8.1
ERROR: Module php8.1 does not exist!
il faut installer le module php d'Apache :
sudo apt install libapache2-mod-php
Et apparemment il y a toujours des traces d'installation de php en version 7. Il faudra peut-être faire le ménage dans les paquets et leurs résidus de configuration.
Dernière modification par bruno (Le 02/09/2022, à 17:45)
#3 Le 02/09/2022, à 17:55
- JME44
Re : [Résolu] 20.04->22.04 php8 sans PDO, apache2 sans PHP
moi@maMachine:~$ a2query -m
auth_basic (enabled by maintainer script)
access_compat (enabled by maintainer script)
setenvif (enabled by maintainer script)
authz_host (enabled by maintainer script)
dir (enabled by maintainer script)
mime (enabled by maintainer script)
env (enabled by maintainer script)
mpm_event (enabled by maintainer script)
authn_core (enabled by maintainer script)
status (enabled by maintainer script)
authz_core (enabled by maintainer script)
deflate (enabled by maintainer script)
reqtimeout (enabled by maintainer script)
authn_file (enabled by maintainer script)
alias (enabled by maintainer script)
filter (enabled by maintainer script)
authz_user (enabled by maintainer script)
negotiation (enabled by maintainer script)
autoindex (enabled by maintainer script)
moi@maMachine:~$ sudo apt install libapache2-mod-php
[sudo] Mot de passe de moi :
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
libapache2-mod-php8.1
Les NOUVEAUX paquets suivants seront installés :
libapache2-mod-php libapache2-mod-php8.1
0 mis à jour, 2 nouvellement installés, 0 à enlever et 8 non mis à jour.
Il est nécessaire de prendre 2898 o/1759 ko dans les archives.
Après cette opération, 5410 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] o
Réception de :1 http://fr.archive.ubuntu.com/ubuntu jammy/main amd64 libapache2-mod-php all 2:8.1+92ubuntu1 [2898 B]
2898 o réceptionnés en 0s (26,8 ko/s)
Sélection du paquet libapache2-mod-php8.1 précédemment désélectionné.
(Lecture de la base de données... 311156 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../libapache2-mod-php8.1_8.1.2-1ubuntu2.3_amd64.deb ...
Dépaquetage de libapache2-mod-php8.1 (8.1.2-1ubuntu2.3) ...
Sélection du paquet libapache2-mod-php précédemment désélectionné.
Préparation du dépaquetage de .../libapache2-mod-php_2%3a8.1+92ubuntu1_all.deb ...
Dépaquetage de libapache2-mod-php (2:8.1+92ubuntu1) ...
Paramétrage de libapache2-mod-php8.1 (8.1.2-1ubuntu2.3) ...
Creating config file /etc/php/8.1/apache2/php.ini with new version
Module mpm_event disabled.
Enabling module mpm_prefork.
apache2_switch_mpm Switch to prefork
apache2_invoke: Enable module php8.1
Paramétrage de libapache2-mod-php (2:8.1+92ubuntu1) ...
Traitement des actions différées (« triggers ») pour libapache2-mod-php8.1 (8.1.2-1ubuntu2.3) ...
moi@maMachine:~$ a2enmod php8.1
Considering dependency mpm_prefork for php8.1:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.1:
Module php8.1 already enabled
moi@maMachine:~$ systemctl restart apache2
moi@maMachine:~$
et toujours pas de php sur le site
localhost/info.php donne un page blanche
<?php
phpinfo();
Ubuntu 24.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.
Hors ligne
#4 Le 02/09/2022, à 18:22
- bruno
Re : [Résolu] 20.04->22.04 php8 sans PDO, apache2 sans PHP
Normalement cela devrait fonctionner.
Comment peux-tu lancer les commandes a2enmod et systemctl restart sans être root (et sans sudo) ?
Redonne :
a2query -m
#5 Le 03/09/2022, à 07:27
- JME44
Re : [Résolu] 20.04->22.04 php8 sans PDO, apache2 sans PHP
Depuis quelque temps (20.02 au moins) systemctl demande le mot de passe si tu ne le lances pas en sudo. Quant à a2enmod, je n'ai pas de réponse si ce n'est qu'il ne fait rien puisque php8.1 se croit déjà 'enable'. Le message est cependant étrange, référence à php5 !?
moi@maMachine:~$ a2query -m
auth_basic (enabled by maintainer script)
access_compat (enabled by maintainer script)
setenvif (enabled by maintainer script)
authz_host (enabled by maintainer script)
dir (enabled by maintainer script)
mime (enabled by maintainer script)
env (enabled by maintainer script)
mpm_prefork (enabled by maintainer script)
authn_core (enabled by maintainer script)
status (enabled by maintainer script)
authz_core (enabled by maintainer script)
deflate (enabled by maintainer script)
reqtimeout (enabled by maintainer script)
php8.1 (enabled by maintainer script)
authn_file (enabled by maintainer script)
alias (enabled by maintainer script)
filter (enabled by maintainer script)
authz_user (enabled by maintainer script)
negotiation (enabled by maintainer script)
autoindex (enabled by maintainer script)
moi@maMachine:~$php -a
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20210902/pdo_mysql (/usr/lib/php/20210902/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20210902/pdo_mysql.so (/usr/lib/php/20210902/pdo_mysql.so: undefined symbol: mysqlnd_get_client_info)) in Unknown on line 0
PHP Warning: Module "PDO" is already loaded in Unknown on line 0
Interactive shell
php > quit
php -a
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20210902/pdo_mysql (/usr/lib/php/20210902/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20210902/pdo_mysql.so (/usr/lib/php/20210902/pdo_mysql.so: undefined symbol: mysqlnd_get_client_info)) in Unknown on line 0
PHP Warning: Module "PDO" is already loaded in Unknown on line 0
Interactive shell
php > quit
php -a
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20210902/pdo_mysql (/usr/lib/php/20210902/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20210902/pdo_mysql.so (/usr/lib/php/20210902/pdo_mysql.so: undefined symbol: mysqlnd_get_client_info)) in Unknown on line 0
PHP Warning: Module "PDO" is already loaded in Unknown on line 0
Interactive shell
php > quit
moi@maMachine:~$ a2enmod php8.1
Considering dependency mpm_prefork for php8.1:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.1:
Module php8.1 already enabled
Cependant info.php fonctionne avec référence à PDO et au driver mysql. Il ne faut donc pas s'alarmer du warning en ligne de commande.
Dernière modification par JME44 (Le 03/09/2022, à 07:53)
Ubuntu 24.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.
Hors ligne
#6 Le 03/09/2022, à 08:39
- bruno
Re : [Résolu] 20.04->22.04 php8 sans PDO, apache2 sans PHP
Tu dois avoir des traces d’anciennes versions de PHP. Tu peux vérifier avec :
apt list ~o
pour voir les paquets obsolètes,
apt list ~c
pour voir les résidus de configuration,
et aussi :
apt list --installed ~nphp
pour voir tous les paquets dont le nom contient php installés.
#7 Le 06/09/2022, à 19:07
- JME44
Re : [Résolu] 20.04->22.04 php8 sans PDO, apache2 sans PHP
Merci Bruno pour ton aide.
En définitive, je dois revenir en PHP 7, car au moins un logiciel ne fonctionne pas en PHP 8 (EVA-WEB n'existe plus pour SPIP 4 et les SPIPs précédents ne tournent pas sur PHP 8)
Je surveillais EVA-WEB mais pas la compatibilité des SPIP 3 avec PHP 8.
Donc, je vais désinstaller PHP 8 pour installer PHP 7.4.
J'ai trouvé cette page en espérant que c'est correct.
Encore merci
Ubuntu 24.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.
Hors ligne
#8 Le 07/09/2022, à 14:32
- bruno
Re : [Résolu] 20.04->22.04 php8 sans PDO, apache2 sans PHP
J'ai trouvé cette page en espérant que c'est correct.
À tes risques et périls. Le forum est plein de problèmes dus à ce dépôt…
Si il te faut PHP 7.4, utilise une Ubuntu 20.04 ou une Debian Bullseye.
#9 Le 07/09/2022, à 14:46
- JME44
Re : [Résolu] 20.04->22.04 php8 sans PDO, apache2 sans PHP
Finalement j'ai pris le risque ayant trouvé une autre page utilisant le même dépot.
De toute façon, ce n'est que mon site de développement, et mon ordi perso, le site de production étant hébergé chez un CHATONS, encore un risque assumé dans la mesure où on ne fait pas de commerce mais de l'associatif.
Je documenterai sur ce fil les réussites et problèmes.
Cordialement
Dernière modification par JME44 (Le 07/09/2022, à 14:47)
Ubuntu 24.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.
Hors ligne