在Windows上配置PHPStorm调试

最近打算改造一下Share站,所以还是打算把PHP捡起来写一写..

所以打算重建一下本地的PHP环境了...

IDE还是使用PHPStorm了,首先去官网下载PHP

最新的版本是5.4

于是下载了5.4的VC9的None-ThreadSafe版,因为我打算用Nginx的FastCGI模式,所以就不用在意线程安全了,本身我也装了VC2008,用VC9就足够了,反正5.4版也只提供了VC9的编译版本.

Nginx直接下载最新版,修改一下conf/nginx.conf

里面直接就有注释过了的语句,把它打开就可以了:


        location ~ \.php$ {
            #root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  E:/WorkSpace/PHPWork/share/$fastcgi_script_name;#前面写PHP文件的目录
            include        fastcgi_params;
        }

然后去下载Xdebug的PHP版本,扔到PHP的ext目录下,Xdebug的版本也很多,不过选择就简单了,首先我用的是NS版,所以不需要TS版的Xdebug,然后因为用的是X86,所以我选择了32位版..

把它扔到ext目录之后,开始修改php.ini

原本的php目录下是没有php.ini的,于是图方便,直接把php.ini-development改名一下为php.ini就可以了.

首先打开扩展,我要用到以下几个扩展:
extension_dir = "ext"
extension=php_gd2.dll
extension=php_mbstring.dll

extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll

分别是设置扩展库地址,打开图形处理扩展,打开大字符集处理,基本的MySQL库,面向兑现的MySQL库和用于长连接的MySQL库

然后在文件的最末尾加上:

[debugger]
debugger.enabled=on
debugger.profiler_enabled=on
debugger.hosts_allow=ALL
debugger.hosts_deny=none
debugger.ports=7869, 10000/16


[Xdebug]
zend_extension = D:\Dev\php5.4.10\ext\php_xdebug-2.2.1-5.4-vc9-nts.dll
xdebug.remote_connect_back = On
xdebug.remote_port = 9001
xdebug.remote_enable = On
xdebug.auto_trace=Off
xdebug.collect_params=On
xdebug.collect_return=On
xdebug.profiler_enable=Off


其中最长的那个后面就是我刚才在Xdebug下载的文件名称

然后就可以在系统的CMD下运行以下命令了

php-cgi.exe -b 127.0.0.1:9000 php.ini

意思很容易理解,就是让PHP监听本地的9000端口(也就是Nginx会转发请求的那个端口),然后同时使用当前的php.ini作为配置文件

这个cmd运行了之后会一直停留在这个状态,让它保持着这个状态就可以了,如果嫌它很烦,可以安装一个RunHiddenConsole,然后用

RunHiddenConsole.exe php-cgi.exe -b 127.0.0.1:9000 php.ini

来隐藏并启动它

然后回到PHPStorm的界面,打开所在的工程

Ctrl+Alt+S打开设置,选择PHP




点击红色框,然后在下图红色框中选择PHP的安装地址,此处是可以验证php.ini的正确性的,如果配置错误的话下方不会出现正确的PHP Version的标志.





然后选择PHP-Debug



在port中填写刚才在php.ini中设置的xdebug.remote_port

然后


选择添加PHP Web Application

点击上方的红框,在下方填入nginx监听的端口,我这里用的是80

然后一路确定后Shift+F9开始Debug


然后点击这个红色的电话让它变成绿色

接下来就可以顺利的进行本地断点调试了

唯一要注意的是,它会生成类似这样的链接地址:

http://localhost/index.php?XDEBUG_SESSION_START=13269

后面那个XDEBUG_SESSION_START参数是不可以删除的,否则会无法监听到

评论

此博客中的热门博文

远程记录OpenWRT日志

用OpenWRT打造自动翻墙路由器(详解篇)

转一下关于Fuck的用法