{ Hello Magento 2 }

解决 Magento 2 应用问题,更注重深度挖掘。(ง •̀_•́)ง

0%

PHP 调试

500 错误

下面我们对开发环境(Apache)做一些配置,使其返回错误提示: 修改配置文件 vi /etc/php/7.0/apache2/php.ini 使得:

1
2
display_errors = On
error_reporting = E_ALL E_STRICT

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

1
2
php_flag display_errors on
php_value error_reporting 2039

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

本节参考链接

php 服务器500错误解决

Xdebug

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

1
apt-get install php-xdebug

查看模块情况

1
php -m

重启 Apache

1
sudo service apache2 restart

返回的错误

xbebug 对 var_dump() 的覆写

我们关闭 xdebug ,那么

1
2
3
4
5
6
7
8
9
10
<?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 设置如下:

1
2
3
4
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的攻击面