[Solved] [php] Undefined symbol

Présentation de la communauté, le site/forum/wiki etc...
EBourdy
newbie
Messages : 4
Inscription : lun. 19 mars 2018, 11:55

[Solved] [php] Undefined symbol

Message par EBourdy »

Bonjour,
J'essaie d'utiliser phpmyadmin, et depuis un certain temps, une erreur de mysqli.so introuvable apparaît sur la page. J'ai vérifié mon php.ini, mysqli.so fait partie des extensions.
Après plusieurs investigations, j'ai corrigé des Warning que me donnais php en ligne de commande, mais pas de résultat concluant sur phpmyadmin.
Je me suis donc penché sur les log d'httpd, et c'est là que j'ai vu que j'ai des problèmes de symboles non définis. J'en conclus donc une incompatibilité de versions.
Bien évidemment, il n'y a pas que mysqli.so qui a des problèmes de versions, ce serait trop simple :

Code : Tout sélectionner

[Mon Mar 19 11:47:16.083364 2018] [mpm_prefork:notice] [pid 10084] AH00170: caught SIGWINCH, shutting down gracefully
PHP Warning:  PHP Startup: curl: Unable to initialize module\nModule compiled with module API=20160303\nPHP    compiled with module API=20170718\nThese options need to match\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli.so' (tried: /usr/lib/php/modules/mysqli.so (/usr/lib/php/modules/mysqli.so: undefined symbol: vspprintf), /usr/lib/php/modules/mysqli.so.so (/usr/lib/php/modules/mysqli.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql.so' (tried: /usr/lib/php/modules/pdo_mysql.so (/usr/lib/php/modules/pdo_mysql.so: undefined symbol: strpprintf), /usr/lib/php/modules/pdo_mysql.so.so (/usr/lib/php/modules/pdo_mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mcrypt.so' (tried: /usr/lib/php/modules/mcrypt.so (/usr/lib/php/modules/mcrypt.so: undefined symbol: spprintf), /usr/lib/php/modules/mcrypt.so.so (/usr/lib/php/modules/mcrypt.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'zip.so' (tried: /usr/lib/php/modules/zip.so (/usr/lib/php/modules/zip.so: undefined symbol: spprintf), /usr/lib/php/modules/zip.so.so (/usr/lib/php/modules/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
En espérant que quelqu'un puisse m'aider à résoudre ce problème.
EBourdy
Dernière modification par EBourdy le mar. 20 mars 2018, 10:51, modifié 1 fois.
Avatar de l’utilisateur
papajoke
Elfe
Messages : 773
Inscription : sam. 30 août 2014, 19:54

Re: [php] Undefined symbol

Message par papajoke »

bonjour,
mysqli.so.so: cannot open shared object file: No such file or directory
l'erreur est le double "extension".so.so
Depuis 7.2 il ne faut plus mettre d'extension de fichier pour charger une extension (dans php.ini pourtant écrit que ancienne notation est toujours bonne...)
depuis 7.2 mcrypt est remplacé par sodium
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
EBourdy
newbie
Messages : 4
Inscription : lun. 19 mars 2018, 11:55

Re: [php] Undefined symbol

Message par EBourdy »

Re,

Merci pour ta réponse.
J'ai essayé en supprimant les .so dans mon php.ini, mais j'ai le même problème :

Code : Tout sélectionner

[Mon Mar 19 15:47:55.966441 2018] [mpm_prefork:notice] [pid 10166] AH00170: caught SIGWINCH, shutting down gracefully
PHP Warning:  PHP Startup: curl: Unable to initialize module\nModule compiled with module API=20160303\nPHP    compiled with module API=20170718\nThese options need to match\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/modules/mysqli (/usr/lib/php/modules/mysqli: cannot open shared object file: No such file or directory), /usr/lib/php/modules/mysqli.so (/usr/lib/php/modules/mysqli.so: undefined symbol: vspprintf)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/modules/pdo_mysql (/usr/lib/php/modules/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/modules/pdo_mysql.so (/usr/lib/php/modules/pdo_mysql.so: undefined symbol: strpprintf)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mcrypt' (tried: /usr/lib/php/modules/mcrypt (/usr/lib/php/modules/mcrypt: cannot open shared object file: No such file or directory), /usr/lib/php/modules/mcrypt.so (/usr/lib/php/modules/mcrypt.so: undefined symbol: spprintf)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'zip' (tried: /usr/lib/php/modules/zip (/usr/lib/php/modules/zip: cannot open shared object file: No such file or directory), /usr/lib/php/modules/zip.so (/usr/lib/php/modules/zip.so: undefined symbol: spprintf)) in Unknown on line 0
[Mon Mar 19 15:47:56.041502 2018] [mpm_prefork:notice] [pid 21876] AH00163: Apache/2.4.29 (Unix) PHP/7.2.3 configured -- resuming normal operations
[Mon Mar 19 15:47:56.041542 2018] [core:notice] [pid 21876] AH00094: Command line: '/usr/bin/httpd -D FOREGROUND'
Et en changeant mcrypt par sodium :

Code : Tout sélectionner

[Mon Mar 19 15:48:25.988589 2018] [mpm_prefork:notice] [pid 21876] AH00170: caught SIGWINCH, shutting down gracefully
PHP Warning:  PHP Startup: curl: Unable to initialize module\nModule compiled with module API=20160303\nPHP    compiled with module API=20170718\nThese options need to match\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/modules/mysqli (/usr/lib/php/modules/mysqli: cannot open shared object file: No such file or directory), /usr/lib/php/modules/mysqli.so (/usr/lib/php/modules/mysqli.so: undefined symbol: vspprintf)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/modules/pdo_mysql (/usr/lib/php/modules/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/modules/pdo_mysql.so (/usr/lib/php/modules/pdo_mysql.so: undefined symbol: strpprintf)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'sodium' (tried: /usr/lib/php/modules/sodium (/usr/lib/php/modules/sodium: cannot open shared object file: No such file or directory), /usr/lib/php/modules/sodium.so (/usr/lib/php/modules/sodium.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'zip' (tried: /usr/lib/php/modules/zip (/usr/lib/php/modules/zip: cannot open shared object file: No such file or directory), /usr/lib/php/modules/zip.so (/usr/lib/php/modules/zip.so: undefined symbol: spprintf)) in Unknown on line 0
[Mon Mar 19 15:48:26.074008 2018] [mpm_prefork:notice] [pid 21892] AH00163: Apache/2.4.29 (Unix) PHP/7.2.3 configured -- resuming normal operations
[Mon Mar 19 15:48:26.074063 2018] [core:notice] [pid 21892] AH00094: Command line: '/usr/bin/httpd -D FOREGROUND'
De plus, ça me remet des warning dans php car il ne les trouve pas.

Code : Tout sélectionner

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/curl' - /usr/lib/php/modules/curl: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/mysqli' - /usr/lib/php/modules/mysqli: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/pdo_mysql' - /usr/lib/php/modules/pdo_mysql: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/sodium' - /usr/lib/php/modules/sodium: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/zip' - /usr/lib/php/modules/zip: cannot open shared object file: No such file or directory in Unknown on line 0
À la limite, je pourrai faire un lien pour les avoir sans le .so dans le nom de fichier, mais ça me fais bizarre.

EBourdy
Avatar de l’utilisateur
papajoke
Elfe
Messages : 773
Inscription : sam. 30 août 2014, 19:54

Re: [php] Undefined symbol

Message par papajoke »

je me demande si j'ai pas fait erreur (c'est "undefined symbol" et que le retour du message d'erreur n'est pas compatible ancienne version) mais que les modules ne sont pas de bonne version (7.2.3-1)
Tu as bien installé php via pacman dans sa dernière version ? pas un xamp ?

Code : Tout sélectionner

pacman -Qo /usr/lib/php/modules/*.so
pacman -Q | grep php
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
EBourdy
newbie
Messages : 4
Inscription : lun. 19 mars 2018, 11:55

Re: [php] Undefined symbol

Message par EBourdy »

C'est bien celle de pacman.

Code : Tout sélectionner

pacman -Qo /usr/lib/php/modules/*.so
/usr/lib/php/modules/bcmath.so appartient à php71 7.1.14-1
/usr/lib/php/modules/bz2.so appartient à php71 7.1.14-1
/usr/lib/php/modules/calendar.so appartient à php71 7.1.14-1
/usr/lib/php/modules/curl.so appartient à php71 7.1.14-1
/usr/lib/php/modules/dba.so appartient à php71 7.1.14-1
/usr/lib/php/modules/exif.so appartient à php71 7.1.14-1
/usr/lib/php/modules/ftp.so appartient à php71 7.1.14-1
/usr/lib/php/modules/gettext.so appartient à php71 7.1.14-1
/usr/lib/php/modules/gmp.so appartient à php71 7.1.14-1
/usr/lib/php/modules/iconv.so appartient à php71 7.1.14-1
/usr/lib/php/modules/ldap.so appartient à php71 7.1.14-1
/usr/lib/php/modules/mcrypt.so appartient à php71-mcrypt 7.1.14-1
/usr/lib/php/modules/mysqli.so appartient à php71 7.1.14-1
/usr/lib/php/modules/opcache.so appartient à php71 7.1.14-1
/usr/lib/php/modules/pdo_mysql.so appartient à php71 7.1.14-1
/usr/lib/php/modules/shmop.so appartient à php71 7.1.14-1
/usr/lib/php/modules/soap.so appartient à php71 7.1.14-1
/usr/lib/php/modules/sockets.so appartient à php71 7.1.14-1
/usr/lib/php/modules/sysvmsg.so appartient à php71 7.1.14-1
/usr/lib/php/modules/sysvsem.so appartient à php71 7.1.14-1
/usr/lib/php/modules/sysvshm.so appartient à php71 7.1.14-1
/usr/lib/php/modules/xmlrpc.so appartient à php71 7.1.14-1
/usr/lib/php/modules/zip.so appartient à php71 7.1.14-1

Code : Tout sélectionner

pacman -Q | grep php
php-apache 7.2.3-1
php71 7.1.14-1
php71-mcrypt 7.1.14-1
phpmyadmin 4.7.9-1
Donc effectivement, je n'ai que php-apache en 7.2.3-1.
Par contre je mets à jour tous les jours, et j'ai réinstallé plusieurs fois php. Du coup je ne vois pas pourquoi ils n'ont pas été mis à jour (et par conséquent comment les mettre à jour).
Avatar de l’utilisateur
papajoke
Elfe
Messages : 773
Inscription : sam. 30 août 2014, 19:54

Re: [php] Undefined symbol

Message par papajoke »

oui voila le problème tu as d'installé php71 et NON le bon paquet php qui lui est en 7.2
c'est d'ailleur un paquet qui n'existe plus (c'était dans aur ?)
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
EBourdy
newbie
Messages : 4
Inscription : lun. 19 mars 2018, 11:55

Re: [php] Undefined symbol

Message par EBourdy »

Re,

La (ré)installation de php a réglé le problème.
Du coup je ne saurai dire à quel moment j'ai choisi la 7.1, surtout qu'elle n'est pas présente quand je fais yaourt php…

Enfin bref. Problème résolu, merci beaucoup !
Répondre