我正在尝试在服务器上设置调试,但它不起作用。
这是我的设置:
- Nginx 与 PHP 5.5.9 (fpm, unix socket) @ 192.168.1.40
- 网络分享与源代码@192.168.1.50
- 网络共享安装在 /shared/www/ 的网络服务器上
- 我的项目位于 /shared/www/myProject 下,可通过http://myProject.local/访问
- Zend Debugger 已安装,以下来自 php.ini:
zend_extension="/usr/lib/php5/20151104/ZendDebugger-5.5.x-64bit.so" zend_debugger.allow_hosts=192.168.1.0/24,127.0.0.1 zend_debugger.expose_remotely=always
- 该网站按预期工作,我在那里没有问题。
- 我的工作站的 IP 为 192.168.1.10
现在我的 PHPStorm 设置:
文件 -> 设置 -> 语言和框架 -> PHP
- PHP 语言级别 5.5
- 解释器:192.168.1.40(我得到正确的 PHP 版本;调试器:Zend 调试器,正确的配置文件)
文件 -> 设置 -> 语言和框架 -> PHP -> 调试
- Zend 调试器端口 = 10137
- [x] 可以接受外部连接
文件 -> 设置 -> 语言和框架 -> PHP -> 服务器
添加了新服务器:192.168.1.40:80 - Zend 调试器
[x] 使用路径映射:文件/目录:\192.168.1.50\shared\www\myProject
服务器上的绝对路径:/shared/www/myProject
我以这种方式为 Chrome 配置了 zDebug:
- 调试主机:192.168.1.10
- 调试端口:10137
- [x] 检查 Zend 调试器 Cookie
- [x] 使用快速文件
- [x] 调试本地副本
- [x] 禁用右键单击
现在有了配置,这里是我的调试问题:
如果我单击“调试此页面”(无论我使用的是marklets还是 Chrome 扩展程序),站点都会加载一分钟左右,并且我会从 nginx 获得 504 Gateway Timeout。
现在,如果我单击“开始侦听 PHP 调试连接”(用于零配置调试)并再次尝试调试,我将立即获得 502 Bad Gateway。
我真的不知道为什么我会收到这个错误。Nginx 错误日志这样说:
2015/11/04 18:11:05 [错误] 4613#0: *107 recv() 在从上游读取响应标头时失败(104:对等方重置连接),客户端:192.168.1.10,服务器:192.168.1.40,请求:“GET /index.php HTTP/1.1”,上游:“fastcgi://unix:/var/run/php5-fpm.sock:”,主机:“192.168.1.40”
如果我禁用调试,则根本没有错误。
有人对这个问题有任何想法吗?我搜索了所有 PHPStorm 文档,但无济于事。
谢谢!