PHP 调试

500 错误

下面我们对开发环境(Apache)做一些配置,使其返回错误提示:

修改配置文件 vi /etc/php/7.0/apache2/php.ini
使得:

display_errors = On
error_reporting = E_ALL | E_STRICT

修改 apache 配置 vi /etc/apache2/apache2.conf
添加以下行:

php_flag display_errors on
php_value error_reporting 2039

重启 apache 后,错误提示如下:

本节参考链接

php 服务器500错误解决

Xdebug

Xdebug 提供了各种自带的函数,并对已有的某些 PHP 函数进行覆写,可以方便地用于调试排错; Xdebug 还可以跟踪程序的运行,通过对日志文件的分析,我们可以迅速找到程序运行的瓶颈所在,提高程序效率,从而提高整个系统的性能。

ubuntu 下的安装

apt-get install php-xdebug

查看模块情况

php -m

重启 Apache

sudo service apache2 restart

返回的错误

xbebug 对 var_dump() 的覆写

我们关闭 xdebug ,那么

<?php
$arrTest = array(
    "test"=>"abc",
    "test2"=>"abc2"
);
echo '<pre>';
var_dump(  $arrTest );
echo '</pre>';

var_dump(  $arrTest );

输出结果看起来是这样的:

打开 xdebug ,同样的 php 文件
输出结果好看多了

本节参考链接

使用xdebug调试PHP程序

phpstorm 配置 xdebug

首先 xdebug 已经安装好了。

phpinfo() 找到 xdebug 有一个设置文件在 /etc/php/7.0/apache2/conf.d/20-xdebug.ini

设置如下:

xdebug.remote_enable = on
xdebug.idekey=PHPSTORM
xdebug.remote_port= 9000
xdebug.remote_host = localhost

xdebug.remote_host 是 xdebug 远程调试时要连接的主机地址。用本机开发的话填 “localhost” 就可以了,如果开发环境在远程,比如,在 vritualbox 的虚机里,你需要让虚拟机中的 Xdebug 连接上你本地,地址类似 “192.168.1.1”

xdebug.remote_port 是 xebug 远程调试时要连接的端口号

然后重启下 apache

打开 phpStorm 打开设置面板(windows Ctrl+Alt+S)

“Languages & Frameworks -> PHP -> Debug” ,端口改成 “9000”

然后设置 Remote Web Server

“Run -> Web Server Debug Validation”, 选择 “Remote Web Server”

现在还没有“Deployment server”,点右侧的 “…”, 新增一个。详细的图文可以参考下面的链接。这步的目的是让 phpstorm 可以操作你的文件。

下面我们需要给浏览器装一个辅助工具,比如 xdebug Helper

调试过程

在 phpStorm 中开启监听端口

点击电话状图标

使其变成

然后设置断点

回到 chrome 中,打开要调试的页面,然后点击刚刚安装的虫子按钮,使其变绿。

如果一切顺利,刷新页面,程序会暂停在断点处。

本节参考链接

Phpstorm 配置 Xdebug 断点调试教程
PHP调试工具-Xdebug

原理

xdebug 原理图示

本节参考链接

成为高级 PHP 程序员的第一步——调试(xdebug 原理篇)

其他

xdebug的攻击面

发表评论

电子邮件地址不会被公开。 必填项已用*标注