Назад | Перейти на главную страницу

Невозможно установить xdebug - неопределенный символ: zend_post_startup_cb

Я удалил php7 с помощью apt-get purge php и снова установил его с помощью zypper in php7 php7-mysql.

Затем я последовал инструкции по установке xdebug и перезапустил apache с systemctl restart apache2, но в моем 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

Мне удалось установить его, выполнив sudo apt-get install php-xdebug. Интересно, почему это не работает, если я попытаюсь установить его вручную, выбрав официальный путь и установив его через исходный код ... ??

Однако я получаю сообщение "Ожидание подключения" в NetBeans, и ничего не происходит, но это другая проблема ...

В моем случае я просто поместил эту конфигурацию 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