直到昨天,我还在用 Ubuntu 14.04 和 php5.5 和 nginx,一切都运行正常,包括xdebug
。
然后我通过以下方式更新到 php5.6
sudo add-apt-repository ppa:ondrej/php5-5.69
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install php5
之后自动更新了很多其他 php。此后 xdebug 不再工作,并给我一些 shell 错误,因为它是为错误的 php 版本构建的,所以我卸载并重新安装了它
sudo pecl install xdebug
现在我不再收到任何 shell 错误,但它无法正常工作。如果我xdebug
在 php.ini 中禁用,我的本地服务器将按预期使用 nginx 运行,因此基本设置是正确的。
如果我激活 xdebugphp.ini
并请求本地页面,请求就会挂起,就好像我启用了 xdebug 并在代码中的某处设置了断点,但我没有。从命令行执行 php 确实很有趣。
我现在的/etc/php5/mods-available/xdebug.ini
样子
zend_extension=xdebug.so
xdebug.max_nesting_level=1000
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9001
xdebug.profiler_enable=0
xdebug.profiler_output_dir = /var/log/xdebug
并通过符号链接包含到 和/etc/php5/cli/conf.d
中/etc/php5/fpm/conf.d
。同时在命令行上检查 php -m 表明它xdebug
作为 Zend-Module 包含在内。
将端口转移到 9001 是故意的,因为fastcgi
它在端口 9000 上运行。
nginx 日志很好,xdebug
日志不存在(目录为空)并且 fpm 日志只说
NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful
知道该做什么或去哪里看吗?
答案1
我已将zend_extension=xdebug.so
其删除/etc/php5/mods-available/xdebug.ini
,现在我能够再次访问页面,同时仍然使用 xdebug?!
我没有找到任何其他包含 xdebug 的文件php.ini
,所以我有点困惑。也许其他人有更完整的答案。