前期条件:安装好 Nginx、PHP、PHPStorm,使得可以正常访问
一、为 PHP 安装 Xdebug
到 Xdebug 的官网(http://xdebug.org/download.php)下载符合本机 PHP 版本的 dll 文件
例如本机 PHP 是
5.5 VC11 x86 Non Thread Safe
对应的 Xdebug 版本就是PHP 5.5 VC11 (32 bit)
PHP
5.5 VC11 x64 Thread Safe
对应的则是PHP 5.5 VC11 TS (64 bit)
把下载到的 .dll 文件放到 PHP 安装文件夹下的
ext/
子文件夹里编辑 php.ini ,添加如下语句 (请把 php_xdebug-xxx.dll 部分替换成实际的文件名)
[Xdebug] zend_extension = "./ext/php_xdebug-xxx.dll" xdebug.remote_port = 9001 xdebug.remote_enable = true xdebug.profiler_enable = 1
说明:
这里假设 php.ini 就放在 PHP 安装文件夹里,如果不是,可能需要把相对路径改为绝对路径
Xdebug 默认监听的端口是 9000,但 PHP cgi 与 Nginx 通讯的端口一般也是设成 9000 ,两者发生冲突。
因此这里把 Xdebug 的端口改成了其他的(这样做的缺点是还要设置 PHPStorm 让它监听这个自定义端口)
二、设置 Nginx
修改 nginx.conf
,在有关 PHP fastcgi 的设定项后面,加上一句:fastcgi_read_timeout 1d;
fastcgi_read_timeout
是 Nginx 等待 PHP 进行应答的时限,默认是 60 秒。
调试时应该把它设长一点,不然会在达到 60 秒时被中断。现在是设成了一天。
三、设置 PHPStorm
点击菜单栏
File - Settings
,找到PHP - Debug - Xdebug - Debug port
,把值设成9001
(就是前面 php.ini 中 xdebug.remote_port 的值)。点右下角的“OK”保存点击菜单栏
File - Settings
,找到PHP - Servers
,点 + 号新建一个 server(根据实际情况填,然后点“OK”)点 PHPStorm 右上角的小三角形,创建一个 request,具体看图
现在就可以运行或调试刚才创建的 request 了 (要先在代码里设好断点,不然会一口气从头运行到尾的)