我的情况如下:
我有一个VM(Ubuntu服务器13.04)与PHP 5.4.9-4ubuntu2.2,nginx/1.2.6,php5-fpm和Xdebug v2.2.1.
我正在使用PhpStorm 6.0.3开发一个应用程序(我在VM上部署).
我的问题是,每当我尝试启动调试会话时,IDE都不会从Web服务器获取连接请求(因此,会话永远不会启动).
我查看了很多关于xdebug配置的建议,但没有发现任何有用的东西.
我最近意识到,如果我通过浏览器自己设置XDEBUG_SESSION cookie(感谢FireCookie),我可以调试我的应用程序...所以我的猜测是有一些东西阻止网络服务器将cookie发送回客户端.
问题是,我在不同的项目中使用相同的IDE配置,该项目部署到不同的基于CentOS的VM(使用lighttpd),并且工作得很好.
我试图将我当前的项目部署到这样的VM(将Web服务器更改为NginX)并且它工作正常(不幸的是我丢失了该VM并且无法检查配置:().
所以...这是我的NginX配置:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name localhost;
location / {
try_files $uri $uri/ /dispatch.php;
}
#
location ~ \.php$ {
root /var/www/bresson/web;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index dispatch.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include fastcgi_params;
#fastcgi_pass 127.0.0.1:9009;
}
}
Run Code Online (Sandbox Code Playgroud)
fpm config(/etc/php5/fpm/pool.d/www.conf):
listen = /var/run/php5-fpm.sock
Run Code Online (Sandbox Code Playgroud)
xdebug.ini:
zend_extension=/usr/lib/php5/20100525/xdebug.so
xdebug.remote_port=9000
xdebug.remote_enable=On
xdebug.remote_connect_back=On
xdebug.remote_log=/var/log/xdebug.log
Run Code Online (Sandbox Code Playgroud)
任何想法将不胜感激.谢谢!
编辑:
我尝试的另一件事是从php开始一个会话,我看到会话cookie创建没有任何问题...
第二编辑:
我想我找到了问题所在:URI.
我写了另一个脚本,以尝试配置参数和东西(更简单的一个),它工作正常!
所以最终我认为问题是查询参数(即:) XDEBUG_SESSION_START=14845没有达到我的脚本.
问题是我的起始URI,它是形式的/images/P/P1/P1010044-242x300.jpg.通过一些虚拟主机配置,我应该能够将其路由到类似的东西/dispatch.php/images/P/P1/P1010044-242x300.jpg,并使用URI的其余部分作为参数.所以...我本身没有找到解决方案,但现在我有一个可行的解决方法(指向我的起始URL /dispatch.php),这将暂时做到这一点.谢谢
万一有人读这个......我明白了!
问题是nginx的配置.我刚从某个地方复制了一个模板,但是现在我再读一遍,发现我的特定配置更加简单:
location / {
root /var/www/bresson/web/;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/dispatch.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下,每个请求都必须转发给我的前端控制器(然后分析URI),所以它非常简单.
| 归档时间: |
|
| 查看次数: |
21985 次 |
| 最近记录: |