一、为 PHP 安装 Xdebug

  1. 到 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)

  2. 把下载到的 .dll 文件放到 PHP 安装文件夹下的 ext/ 子文件夹里

  3. 编辑 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
    

    说明:

    1. 这里假设 php.ini 就放在 PHP 安装文件夹里,如果不是,可能需要把相对路径改为绝对路径

    2. 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

    1. 点击菜单栏 File - Settings,找到PHP - Debug - Xdebug - Debug port,把值设成 9001(就是前面 php.ini 中 xdebug.remote_port 的值)。点右下角的“OK”保存

      phpstorm1.png

    2. 点击菜单栏 File - Settings,找到 PHP - Servers,点 + 号新建一个 server(根据实际情况填,然后点“OK”)

      phpstorm2.png

    3. 点 PHPStorm 右上角的小三角形,创建一个 request,具体看图

      phpstorm3.png

      phpstorm4.png

    4. 现在就可以运行或调试刚才创建的 request 了 (要先在代码里设好断点,不然会一口气从头运行到尾的)

      phpstorm5.png