所以 macOS High Sierra 10.13 现在带有 PHP 7.1。在配置 Apache 时,我还/etc/php.ini
从文件中创建了一个新/etc/php.ini.default
文件,确保在重新启动 Apache 后检查 PHP 正在加载该文件,但是 macOS 10.13 附带的 Xdebug 扩展版本似乎在您运行时没有加载或显示phpinfo();
我的 php.ini 肯定正在加载:
$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
这是我配置 Xdebug 的 /etc/php.ini 的样子:
[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