因此,macOS High Sierra 10.13现在支持PHP 7.1。在配置Apache时,我还从/etc/php.ini.default
文件中创建了一个新的/etc/php.ini
,确保在重新启动Apache后检查PHP是否正在加载,但是随MacOS 10.13提供的Xdebug扩展版本似乎不会在加载或显示时显示您运行phpinfo();
xdebug on macOS 10.13 with PHP 7
我的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
请注意,Apache *可能*使用不同的php.ini(一个php.ini用于CLI /终端,另一个用于Apache/web服务器)。因此,最好检查在实际浏览器中捕获的'phpinfo()'输出,看看使用了什么php.ini,以及是否加载了xdebug。当然,如果他们都使用相同的ini文件,那么这种检查可以在终端中执行。是的 - 完全路径(安全)的'zend_extension' – LazyOne
谢谢,我检查了CLI和浏览器,他们都加载相同的php.ini文件。 –