由于每次换机器都要重新配置这一套东西,记录一下方便以后查询
1 首先开启php的xdebug扩展
下载好 wget http://www.xdebug.org/files/xdebug-2.3.3.tgz
(
可以试试去这个网站,贴入phpinfo()的输出。
https://xdebug.org/wizard.php
)
然后 在/etc/php/7.2/mods-available 中的xdebug.ini中配置
zend_extension=xdebug.so
;指定是否启用Xdebug的性能分析,并创建性能信息文件。
xdebug.profiler_enable=1
;是否开启远程调试
xdebug.remote_enable = 1
;如果启用,则使用xdebug。忽略remote_host设置,Xdebug将尝试连接发出HTTP请求的客户机。它检查$_SERVER['HTTP_X_FORWARDED_FOR']和$_SERVER['REMOTE_ADDR']变量,以确定要使用哪个IP地址。
;xdebug.remote_connect_back = 0
;指定远程调试的主机名(由于是宿主机,所以写127.0.0.1)
xdebug.remote_host=127.0.0.1
;指定远程调试的端口号
xdebug.remote_port = 9001
;指定传递给DBGp调试器处理程序的IDE Key。
xdebug.idekey = "PHPSTORM"
;通常需要使用特定的HTTP ;GET/POST变量来启动远程调试。当此设置设置为1时,Xdebug将始终尝试启动远程调试;会话并尝试连接到客户机,即使不存在GET/POST/COOKIE变量。
xdebug.remote_autostart = 1
;远程处理协议DBGp
xdebug.remote_handler="dbgp"
;remote_mode 有俩值,1是req,2是jit
;req 是指一旦脚本启动,Xdebug将尝试连接到调试客户机
;jit 只会在出现错误条件时,Xdebug才尝试连接到调试客户机
xdebug.remote_mode="req"
;指定递归的嵌套层级数(默认100层) 防止无限递归带来的问题
xdebug.max_nesting_level = 512
;如果该设置为1,那么默认情况下,stacktrace将在错误事件上显示。
xdebug.default_enable = 1
其他配置请参考: [xdebug 配置参数说明]
配置完成后记得重启php-fpm
sudo service php-fpm7.2 restart
2 配置phpstorm
点击File->Settings[ctrl+shift+s]
配置端口写上跟配置文件一样的端口号:9001
配置DBGp Proxy
配置php的CLI编译器
选择From Docker,Vagrant ,VM, Remote...
配置server
配置一个php Web Page
打几个断点试一试~~可以了