Page 1 sur 1

[Solved] [php] Undefined symbol

Publié : lun. 19 mars 2018, 15:19
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

Re: [php] Undefined symbol

Publié : lun. 19 mars 2018, 15:26
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

Re: [php] Undefined symbol

Publié : lun. 19 mars 2018, 15:55
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

Re: [php] Undefined symbol

Publié : lun. 19 mars 2018, 16:45
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

Re: [php] Undefined symbol

Publié : lun. 19 mars 2018, 16:53
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).

Re: [php] Undefined symbol

Publié : lun. 19 mars 2018, 17:18
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 ?)

Re: [php] Undefined symbol

Publié : mar. 20 mars 2018, 10:50
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 !