Итак, macOS High Sierra 10.13 теперь поставляется с PHP 7.1. При настройке Apache я также создал новый /etc/php.ini
из файла /etc/php.ini.default
, удостоверился, что он был загружен PHP после перезапуска Apache, однако версия расширения Xdebug, поставляемая с macOS 10.13, похоже, не загружается или показывается при запуске phpinfo();
Мой php.ini определенно загружается:
$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
Вот что выглядит мой /etc/php.ini, где я настраиваю Xdebug:
[xdebug]
zend_extension = "/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so"
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
[Обновить, исправлено это опечатка здесь...]
Однако Xdebug не загружает и не проверяет php -i
не дает результатов:
$php -i | grep xdebug
PHP Warning: Method xdebug_start_function_monitor() cannot be a NULL
function in Unknown on line 0
PHP Warning: xdebug: Unable to register functions, unable to load in Unknown on line 0
Segmentation fault: 11
И да, путь к файлу верен:
$ ls /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so*
Это работало на PHP 5, поэтому я надеюсь, что кто-то может помочь мне и всем остальным в будущем бороться с этой проблемой.
Когда я проверяю свой журнал apache, я получаю следующую ошибку:
Failed loading /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so: dlopen(/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so, 9): Symbol not found: _xdebug_monitored_function_dtor
Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
Expected in: flat namespace
in /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
Я не уверен, как я могу решить эту ошибку:
Symbol not found: _xdebug_monitored_function_dtor