PHPStorm远程调试开发机代码

1 整体概述

本地为PHPStorm运行环境,不需要安装php等内容,开发机环境能够让PHP代码运行起来。

PHPStorm远程调试开发机代码_第1张图片

通过PHPstorm和xdebug的远程调试功能,可以在本地远程调试开发机中的代码。PHPstorm使用xdebug调试时,会监听固定端口,通过该端口与xdebug进行通讯。在本地环境下(本地具备php运行环境)调试,配置xdebug和PHPstorm,保证两者的端口号一致,从而进行通讯;在远程调试环境下(本地不具备php运行环境)调试,两者需要通过隧道工具监听端口进行通讯(端口可以不同,如开发机为9001,本地环境为9002),具体配置见下文。

 

2 准备环境

(1)本地安装好PHPstorm;

(2)开发环境安装好PHP运行环境,安装好xdebug扩展,其中扩展的xdebug版本需要与php版本匹配(否则后续会报bug),其中可以将phpinfo()打印出的信息粘贴到该网站https://xdebug.org/wizard.php中的框内,分析出适合的xdebug版本进行安装。

 

3 配置

(1)xdebug配置

         在php.ini文件或xdebug.ini文件中进行如下修改:

zend_extension = xdebug.so
xdebug.remote_enable = 1                         
xdebug.remote_autostart = 1
xdebug.remote_port = 9001                         //端口号
xdebug.remote_host = 127.0.0.1                    //主机地址
xdebug.remote_log = /var/log/php-xdebug.log       //日志路径
xdebug.idekey = "PHPSTORM"
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.collect_params = On
xdebug.collect_return = On
xdebug.trace_output_dir = /var/log
xdebug.profiler_enable=1
xdebug.profiler_output_dir=/var/log
xdebug.auto_trace = 1

从整体概述.中可知,中间通讯是由SSH完成的,而开发机环境中监听的端口应该为本机端口,所以配置中的主机地址为127.0.0.1;端口号只要不使用已占用端口和特殊端口,可随意配置,配置完成后重启php相关服务。后续如果连接不上,可以在remote_log中进行错误分析,调通后日志文件可以关闭,否则占用太多资源。

(2)PHPStorm配置

       1)拉取线上代码到本地,可以在本地编辑后同步到线上。

             file-create new project from existing files。

PHPStorm远程调试开发机代码_第2张图片

选择第四种方式,并点击下一步,给文件命名,并存储到合适的位置,选择cutom进行配置,点击下一步;

PHPStorm远程调试开发机代码_第3张图片

可根据个人情况选择上述配置,修改好后点击下一步,后续选择开发机上代码进行拉取,点击下一步即可拉取。有的会在对应文件时保存,可以勾选Don't check HTTP connection to server完成。

       2)xdebug相关配置

        file-settings-Languages & Framworks-PHP:选择php环境,通过点击红框中的按钮,对CLI Interpreters进行修改、添加,同理可对Deployment进行修改、添加。

PHPStorm远程调试开发机代码_第4张图片

file-settings-Languages & Framworks-PHP-Debug:红框中为phpstorm中监听的端口号,可以随意填写未被占用或特殊的端口号。

PHPStorm远程调试开发机代码_第5张图片

file-settings-Languages & Framworks-PHP-Debug-DBGp Proxy:IDE key填写和xdebug配置中xdebug.idekey一致的信息;端口号填写和上一步file-settings-Languages & Framworks-PHP-Debug中端口号一致的信息;Host应该填写远程IP地址,但是刚才测试了下,可以填写非远程IP地址。

PHPStorm远程调试开发机代码_第6张图片

(3)SSH隧道配置

     可以选用xShell或者SecureCRTPortable进行隧道连接,xShell中建立隧道即可,由于SecureCRTPortable分为远程发送消息和本地发送消息两种情况,所以以SecureCRTPortable为例:

选择Options-Session Option-Remote/X11(远程发送消息到本地端口),点击Add添加隧道信息。

PHPStorm远程调试开发机代码_第7张图片

上述xdebug配置和phpstorm配置中,端口号随意和Host随意是因为最终要在SSH隧道中对应,这里远程端口号必须对应开发机中的xdebug配置端口号;本地端口号必须对应本地PHPStorm配置中的端口号。

4 运行

和本地使用xdebug调试方法一致。

 

 

 

你可能感兴趣的:(关于后台)