快速搭建php环境并使用phpstorm调试php代码

教你从零基础升级成会完美调试php的大神!

前言

最近由于工作的关系调研一些php的webshell,为了更好的理解一些语句的作用,我想到了用调试来解决,但是搜索了全网也没有找到一份同时具备适合于新手、可配置性高、实用且完整的教程,于是决定自己写一份,把自己探索研究的过程记录下来。我本人经过几天的认真研究总结出的这些方法的确使代码调试达到了eclipse、Visual Studio相当的十分流畅的用户体验,代码发布达到了eclipse相当的简洁高效的用户体验,总结起来就是用了我的这套配置方法以后,感觉很流畅。

准备

操作系统:win7 64bit
Php版本是:5.6.27
PhpStorm版本是:PhpStorm 10.0.1
Apache版本:2.4.17
我用的是Chrome浏览器,版本:55.0.2883.87 m

如果只发布项目不进行调试,使用phpStudy集成环境来发布php项目也是不错的选择,特别适合新手学习使用。

安装Php

这里的Php相当于Php代码的编译环境。跟教程里的其他配置操作的难度相比,这部分可以忽略不计,对纯小白来说可能稍微有一点难度,请自行百度,安装好以后配置好环境变量。本教程将留更大篇幅给后面有难度的章节。

安装PhpStorm

PhpStorm是Php代码运行环境和调试工具。安装方法请自行百度。

安装Apache服务器

Apache服务器是适合搭载Php项目的服务器,也是世界上使用最广泛的服务器。百度下载Apache服务器到本地文件夹。

安装Xdebug

Xdebug是对Php代码进行调试所需要的插件。把它放置在php安装的文件夹下的ext文件夹里。
我的Xdebug的安装路径为:D:\D\software\php\php-5.6.27-Win32-VC11-x64\ext注意要安装与自己Php对应版本的Xdebug,我安装的php_xdebug-2.5.0-5.6-vc11-x86_64.dll,2.5.0是xdebug的版本,5.6是我本地安装的php的版本。如果你要安装和我相同版本的xdebug(php_xdebug-2.5.0-5.6-vc11-x86_64.dll),可以点击进入我的百度云下载。

打开php的安装目录,找到php.ini配置文件。将下面这段话复制到php.ini 文件任意位置。

1
2
3
4
5
6
7
8
9
10
11
[xdebug]
xdebug.profiler_output_dir="D:\D\workspace\xdebug_output\xdebug"
;输出目录自己定义
xdebug.trace_output_dir="D:\D\workspace\xdebug_output\xdebug"
;输出目录自己定义
zend_extension="D:\D\software\php\php-5.6.27-Win32-VC11-x64\ext\php_xdebug-2.5.0-5.6-vc11-x86_64.dll"
;zend_extension为Xdebug在你电脑里安装的物理地址
xdebug.remote_enable=on
xdebug.profiler_enable=off
;一般不要打开性能监控,会生成很大的缓存文件,几个g到几十g都有
xdebug.idekey="PHPSTORM"

检查Xdebug是否安装成功:
用记事本写一个php文件,1.php。

1
2
<?php
phpinfo();

作用是打印php的信息。放置到Apache服务器的htdocs目录下。

启动Apache服务器(不懂的在正文第一节中有介绍启动方法),在浏览器中输入localhost/1.php,在弹出的php信息页面Ctrl+F搜索是否有Xdebug。如果找不到说明Xdebug没有安装成功。
如果显示下面的信息,说明xdebug已经安装成功。



对于按照上面每一步操作下来,仍然没有显示Xdebug的解决办法:

打开Apache服务器的配置文件httpd.conf(不懂的在正文第一节中有介绍配置文件位置),Ctrl+F搜索PHPIniDir,将后面的地址改成php.ini(php的配置文件)的地址。
这样做是因为Apache服务器对PHP.Ini加载有个默认路径,如果和你的安装路径不一致,就读取不了php.ini,我的Apache2.4.17默认:PHPIniDir “D:/php”,改成自己的 php.ini 文件路径,重启Apache服务器,就可以了,这个时候发现Xdebug也加载出来了。

安装xdebug helper

xdebug helper是一款浏览器插件,跟phpStorm配合用于调试你的php代码。
如果你也使用的Chrome浏览器,xdebug helper可以点击进入我的百度云下载。
安装方法为 Chrome浏览器->设置->扩展程序 ,将下载好的插件拖动进去即可。

安装好以后在Chrome浏览器的右上角,会出现一个小虫子的图标。

正文

到这里我默认你已经安装好了上面的几个工具。

检查Apache默认端口是否被占用

Apache服务器的默认端口号是80,跟IIS服务器的默认端口号相同。因为我常用IIS发布一些.NET的项目,所以IIS服务器的端口号我十分不愿意修改,这里我选择修改Apache的默认端口号,把它改成8081(电脑上没装IIS服务器的可以忽略这个问题,检测方法:浏览器地址栏输入localhost,看看会不会显示IIS服务器的起始页,会有IIS字样)。

找到Apache服务器的所在文件夹。

用文本编辑器打开/conf/httpd.conf,Ctrl+F搜索“Listen”,紧接着Listen的数字就是端口号,默认状态下为“Listen 80/8080”,改成8081。

切换到Apache目录下的bin文件夹下(例如我的是D:\Apache2.4.17-x64\bin)。

双击打开httpd.exe即可启动,启动后弹出一个黑色的命令框。

在浏览器中输入localhost:8081/检查是否启动Apache服务器,成功启动后会看到Apache服务器的欢迎页。

配置phpStorm

打开自己的phpStorm。

1.新建一个php文件test.php。

不需要知道我写的这个文件的意思,感兴趣的同学可以继续进行研究,这个就说来话长了。

将项目拷贝到apache服务器htdocs目录下,启动phpStorm时打开的文件路径为Apache服务器下项目的路径

File-> Settings-> Build,Execution,Deployment-> Debugger,设置端口号Port为8081。

2.发布项目。

File-> Settings-> Build,Execution,Deployment-> Deployment,点击左上角加号,新增一个发布的项目。Type下拉框选择In place,Name文本框对边填写一个名字。我填的是Test。

点击Ok,在这个界面配置Web server root URL,地址是用浏览器访问的地址,一般写成http://服务器IP地址:服务器端口号,这里我写为http://localhost:8081,也可以写成http://localhost:8081/Test,这里的Test为刚刚发布项目时取的名字。保存更改。

3.打开File-> Settings-> Languages & Frameworks-> PHP-> Servers,点击Import,导入一个部署好的项目。

在下拉框里选择刚刚发布的项目Test。

点击确定,保存修改。

4.点菜单栏的Run>Edit Configurations… 在弹出的窗口中添加一个调试配置:
点击左上角加号,选择PHP Web Application,在右侧的Configuration里点击“更多”按钮。

弹出了刚刚配置好的Servers,点击确定保存修改。

在Name里随便取个名字,我取的是Test。

5.进入File-> Settings-> Languages & Frameworks-> PHP ->Debug,找到Xdebug选项卡,port填9000(Debug port要和php.ini里面的 xdebug.remote_port相一致!默认是9000)。

6.进入File-> Settings->Languages & Frameworks ->PHP ->Debug ->DBGp Proxy 填写:
IDE key: phpStorm
host: localhost
port: 8081

需要注意的问题

1.File-> Settings-> Build,Execution,Deployment-> Deployment下的 Web server root URL 下将启动后的默认url改为”http://” +你的 ip后,发现总是默认启动80端口,原来还要加上服务器的端口号(我设置的8081),这样才会找到正确的路径。

2.更改完Apache的配置后一定要重启服务器。

高阶配置

更改默认的网站目录为PHPStorm的工作目录。

由于默认的网站目录在Apache服务器目录下的htdocs里,可是我的phpStrom用的工作目录(WorkSpace)却不是这个,在phpstorm里点击Chrome浏览器图标默认打开的url不是服务器下的,所以会出错,影响浏览php页面的心情。

怎样才能不再浏览器里输入Apache下的工作路径而直接在phpStorm里点击Chrome浏览器图标访问自己编写的项目呢?

解决方法
1.将此php项目的工作目录赋值到Apache服务器的htdocs目录下,这样省去了粘贴项目到htdocs目录下的繁琐,但不是最佳解决方案。

2.在Apache的配置文件httpd.conf 里面修改Apache的默认工作目录
在Apache配置文件里搜索”DocumentRoot”,将DocumentRoot和Directory改为你PHPStrom的工作目录即可,注意两个值一定要相同,重启Apache服务器

1
2
DocumentRoot "D:/D/workspace/phpStorm10.0.1_WorkSpace"
<Directory "D:/D/workspace/phpStorm10.0.1_WorkSpace">

上面的步骤实际上是手动完成了 相当于Eclipse在 IDE中自动配置发布的过程。
按照这个步骤配置好以后就达到了相当于WebStorm里点击浏览器直接查看网页的功能,但这里配置的更完美,在phpStorm里直接点开Chrome浏览器图标以后在浏览器的地址栏里面显示的是服务器下的路径,究竟有多完美,自行体会。

php debug

说到这里又非常有趣了。

1.检查谷歌浏览器扩展插件是否下载了xdebug插件。
2.检查本地php下安装对应php版本的xdebug.dll文件。
3.启动Apache服务器。
4.phpstorm里打开调试的监听器


5.加断点
6.点击phpStorm里的Chrome浏览器图标,像run 项目一样,就自动进入debug模式了。

7.不想debug? 关掉phpstorm里debug监听器即可,这时候点击 浏览器图标就只是run了。



配置好之后调试php就一个字,爽!!!

总结

这篇博客是笔者良心之作。教程里有特别多的细节和注意点,应用好这些注意点可以极大方便你的php开发,调试。让你拥有不弱于VS/Eclipse的用户体验!!!如果各位看官觉得有帮助请动动手指转载一下,本人将不胜感激。


参考文献
PHP 设置调试工具XDebug PHPStorm IDE

版权声明:本文为博主原创文章,转载请注明出处 Leezp’s Blog

点击按钮打赏作者!