疑难杂症,可以通过服务器端的xdebug.remote_log进行诊断处理。
一、前言
初学PHP语言,一般会推荐notepad++等编辑器进行开发。但是入门之后,使用phpstrom等IDE好处多多,比如学习一些框架的时候,断点调试对于理解框架的整个运行机制和生命周期无可替代。在生产环境中,IDE的调试的变量监控对于提高开发效率也至关重要。当然了,每个行业都有前1%的人,程序员也不例外,使用VIM也未尝不可。
本篇的主要写作原因是,Xdebug配置对于新手来说问题多多,网上的教程多是一家之言,对于很多配置的官方文档来源语焉不详,缺乏对于可能存在的问题的调试办法,对于各种本地、远程等各种环境下的配置不做兼顾。本篇将就以上问题的每一个细节的来源、机理尽量加以说明,争取做到读者可以触类旁通,不必查找其他资料。
二、准备和系统说明
- 本篇使用vmware安装CentOS 7(下文简称虚机),虚机配置两个网卡,网卡一为NAT模式用于上网,网卡二为host only模式,用于与主机通信。具体可以参见前文【 使用Vmware安装CentOS作为web开发机实践】
- 开发机配置的是Nginx + php7.0
- 所有步骤依赖Phpstorm的配置说明,即settings->Languages&Frameworks->PHP->Debug
特别注意,本文的全部内容都是按照下图的Pre-configuration里的4个步骤进行的。如果你遇到本文中没有涉及到的问题,可以点击第一步中的Validate debugger configuration on the Web Server进行调试,具体请参见本文四、4章节。
三、Xdebug的安装
1、点击上图中步骤一里install xdebug,进入phpstorm对xdebug的安装说明:
https://confluence.jetbrains.com/display/PhpStorm/Xdebug+Installation+Guide
phpstorm对xdebug的安装思路是,去xdebug官网下载编译好的二进制文件,拷贝到php的extention目录,然后在php.ini文件最后面加入如下配置(实际的例子见本文三、4):
[Xdebug]
zend_extension=<full_path_to_xdebug_extension>
xdebug.remote_enable=1
xdebug.remote_host=<the host where PhpStorm is running (e.g. localhost)>
xdebug.remote_port=<the port to which Xdebug tries to connect on the host where PhpStorm is running (default 9000)>
2、 这里主要是针对windows服务器的php开发环境而言的,我们这里使用的是CentOS 7,因此,最便捷的安装办法是:
sudo yum search xdebug
yum install xdebug.....
这时候,xdebug.so已经自动放入php的extention目录下了,比如zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so
,然后将上述配置加入到php.ini文件里。
3、 xdebug官网还可以编译安装xdebug,推荐这种安装方式。
- 首先打开xdebug wizard网址:
https://xdebug.org/wizard.php
然后将php.ini文件全部内容,或者shell下 php -i
命令输出的全部内容都放到里面去,解析后会给出详尽的安装步骤: