4 votes

Impossible d'installer xdebug - symbole non défini : zend_post_startup_cb

J'ai désinstallé php7 avec apt-get purge php et l'a réinstallé avec zypper in php7 php7-mysql .

Ensuite, j'ai suivi le instructions d'installation de xdebug et redémarré apache avec systemctl restart apache2 mais il n'y a pas de xdebug dans ma base de données. phpinfo() seulement quelques occurrences dans HTTP_HEADER, par exemple (XDEBUG_SESSION=netbeans-xdebug ;)

Voici ma configuration dans le php.ini :

[xdebug]
zend_extension = /usr/lib64/php7/extensions/xdebug.so
xdebug.remote_autostart=on
xdebug.remote_enable=on
xdebug.remote_handler="dbgp"
xdebug.remote_host="192.168.40.161"
xdebug.remote_port=9000
xdebug.remote_mode=req
xdebug.idekey="netbeans-xdebug"
xdebug.renite_enable = 1
xdebug.max_nesting_level = 1000
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = '/var/log/xdebug'

Le dossier /usr/lib64/php7/extensions/xdebug.so existe, j'ai juste installé xdebug à partir des sources et copié xdebug.so à partir de modules/xdebug.so a /usr/lib64/php7/extensions/

J'ai même redémarré tout le serveur.

Comment puis-je réparer cela ?

更新しました。

J'ai vérifié le journal des erreurs d'Apache2 /var/log/apache2/error_log et j'ai remarqué que cela est enregistré juste après le redémarrage du service apache2 :

[Tue Jul 30 14:25:08.674685 2019] [mpm_prefork:notice] [pid 4862] AH00170: caught SIGWINCH, shutting down gracefully
AH00558: httpd-prefork: Could not reliably determine the server's fully qualified domain name, using 192.168.40.44. Set the 'ServerName' directive globally to suppress this message
[Tue Jul 30 14:25:08.758551 2019] [ssl:warn] [pid 5060] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
Failed loading /usr/lib64/php7/extensions/xdebug.so:  /usr/lib64/php7/extensions/xdebug.so: undefined symbol: zend_post_startup_cb
[Tue Jul 30 14:25:08.765786 2019] [mpm_prefork:notice] [pid 5060] AH00163: Apache/2.4.33 (Linux/SUSE) OpenSSL/1.1.0i-fips PHP/7.2.5 configured -- resuming normal operations
[Tue Jul 30 14:25:08.765815 2019] [core:notice] [pid 5060] AH00094: Command line: '/usr/sbin/httpd-prefork -D SYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2/sysconfig.d//include.conf -D SYSTEMD -D FOREGROUND'

\=> Failed loading /usr/lib64/php7/extensions/xdebug.so: /usr/lib64/php7/extensions/xdebug.so: undefined symbol: zend_post_startup_cb

5voto

Praditha Points 151

Dans mon cas, comme j'utilise php7.2 et qu'il y a une autre version de PHP installée sur mon Ubuntu, je dois installer le xdebug avec la bonne version.

Je suis l'étape indiquée sur le site officiel : https://xdebug.org/wizard .
Mais je dois modifier certaines syntaxes pour utiliser la bonne version de PHP, par exemple phpize doit être modifié en phpize-7.2 et utiliser les php-config pour faire le ./configure comme ça :
./configure --with-php-config=/usr/bin/php-config7.2

Référence : http://ubuntuhowtoo.blogspot.com/2020/06/php-xdebug-multi-php-versions-in-server.html

4voto

Black Points 391

J'ai pu l'installer en exécutant sudo apt-get install php-xdebug . Je me demande pourquoi cela ne fonctionne pas si j'essaie de l'installer manuellement en suivant la voie officielle et en l'installant via les sources... ?

Cependant, j'obtiens "Waiting for Connection" dans NetBeans et rien ne se passe, mais c'est un autre problème...

2voto

Tania T. Points 41

Dans mon cas, j'ai juste mis cette configuration xdebug dans le mauvais fichier :

[xdebug]
zend_extension="/usr/lib/php/20190902/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

qui est /etc/php/7.2/cli/php.ini au lieu de cela, il devrait être /etc/php/7.2 2/apache2/php.ini

2voto

Bob Points 121

J'ai trouvé cette erreur en essayant d'installer xdebug pour php 7.2 sur mon Fedora, en suivant les instructions officielles de xdebug. J'ai installé cette version via le dépôt remi puisque j'ai plus d'une version de php installée. Après des heures à essayer de corriger cette erreur, j'ai découvert qu'il existe une version officielle de xdebug compatible avec php à partir du dépôt remi. Il peut être installé aussi facilement qu'en exécutant cette commande et il fonctionne parfaitement.

sudo yum install php72-php-xdebug

0voto

Dominic Goulet Points 4964

J'ai le même problème.

Je m'adressais à lui en remplaçant xdebug.ini fichier

zend_extension=xdebug.so
xdebug.start_with_request="yes"
xdebug.mode="debug"
xdebug.log="/var/www/html/logs/xdebug.log"
xdebug.client_port=9003(your port)

Le fichier est situé sur

 /etc/php/7.3{php version file should be
there}/mods-available/xdebug.ini

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X