Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/09/2022, à 18: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

bruno a écrit :

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, à 08:53)


Ubuntu 22.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.

Hors ligne

#2 Le 02/09/2022, à 18: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, à 18:45)

Hors ligne

#3 Le 02/09/2022, à 18: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 22.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.

Hors ligne

#4 Le 02/09/2022, à 19: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

Hors ligne

#5 Le 03/09/2022, à 08: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, à 08:53)


Ubuntu 22.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.

Hors ligne

#6 Le 03/09/2022, à 09: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.

Hors ligne

#7 Le 06/09/2022, à 20: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 22.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.

Hors ligne

#8 Le 07/09/2022, à 15:32

bruno

Re : [Résolu] 20.04->22.04 php8 sans PDO, apache2 sans PHP

JME44 a écrit :

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.

Hors ligne

#9 Le 07/09/2022, à 15: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, à 15:47)


Ubuntu 22.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.

Hors ligne