无法安装 xdebug-未定义符号:zend_post_startup_cb

无法安装 xdebug-未定义符号:zend_post_startup_cb

我使用 卸载了 php7 apt-get purge php,然后使用 重新安装了它zypper in php7 php7-mysql

然后我跟着xdebug 安装说明并使用 重新启动了 apache systemctl restart apache2,但是我的 中没有 xdebug phpinfo(),只有 HTTP_HEADER 中出现了一些问题,例如 (XDEBUG_SESSION=netbeans-xdebug;)

这是我在 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'

该文件/usr/lib64/php7/extensions/xdebug.so确实存在,我只是从源代码安装了 xdebug,并将 xdebug.so 从复制modules/xdebug.so/usr/lib64/php7/extensions/

我甚至重新启动了整个服务器。

我怎样才能解决这个问题?

更新:

我检查了 apache2 错误日志/var/log/apache2/error_log并发现在重新启动 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

答案1

就我而言,由于我使用的是 php7.2,并且我的 Ubuntu 上安装了另一个 PHP 版本,所以我必须安装正确版本的 xdebug。

我按照官方网站给出的步骤进行操作:https://xdebug.org/wizard
但是我必须更改一些语法才能使用正确的 PHP 版本,例如phpize需要更改为phpize-7.2并使用特定php-config版本执行./configure以下步骤:
./configure --with-php-config=/usr/bin/php-config7.2

参考:http://ubuntuhowtoo.blogspot.com/2020/06/php-xdebug-multi-php-versions-in-server.html

答案2

我可以通过执行来安装它sudo apt-get install php-xdebug。我想知道为什么如果我尝试通过官方方式手动安装并通过源代码安装它不起作用......??

但是,我在 NetBeans 中收到“等待连接”消息,但什么也没有发生,但这是另一个问题......

答案3

就我而言,我只是将这个 xdebug 配置放入了错误的文件中:

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

即 /etc/php/7.2/cli/php.ini ,而应该是 /etc/php/7.2/apache2/php.ini

答案4

我也有同样的问题。

我用替换来解决这个问题调试配置文件文件

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)

该文件位于

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

相关内容