phpstorm调试mamp但不是我的远程服务器

时间:2015-08-18 20:10:50

标签: phpstorm

我已经尝试了很多方法来调试我的远程服务器,但我无法这样做。我的ftp和sftp以及远程数据库配置为我的phpstorm 9,但我无法调试我的远程服务器它连接到我的mamp服务器和调试,本地文件但没有连接到服务器用户名和密码。基本上它在mysql_connect失败,但适用于mamp。如何使用服务器对其进行调用。其他所有内容都与服务器同步但我无法调试。我真的很感激任何帮助。

编辑:我是否应该在我的服务器(cpanel)上安装x-debug?

的php.ini

[xdebug]
zend_extension="/usr/local/opt/php55-xdebug/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
xdebug.remote_connect_back=1

1 个答案:

答案 0 :(得分:0)

也许我不明白你的问题/问题。这些是您调试代码的方法

调试使用本地数据库的本地代码

这是最简单的设置,它可能已经适用于您的系统。您拥有本地计算机上的所有文件,并且还有一个运行MySQL的实例。代码连接到localhost:3306,已安装xdebug扩展程序并且可以连接到PhpStorm,每个人都很高兴。

调试使用远程数据库的本地代码

您可以在localhost上拥有所有PHP文件,并使用本地mamp堆栈进行调试;您控制环境,xdebug可以正常工作,并与PhpStorm愉快地合作。您希望代码能够使用远程(实时)数据库。

在这种情况下,您需要一种访问数据库的方法。要么创建一个允许您从本地计算机的IP地址连接的MySQL用户(沿途的防火墙可能会阻止此操作),要么启动从本地创建隧道的ssh会话端口3306(或您选择的任何其他开放端口)到数据库服务器的端口3306(假设您允许ssh的主机连接到它)。您可以通过运行

来完成此操作
ssh user@remote_host -L 3306:database_host:3306

(用您的实际值替换userremote_hostdatabase_host

如果在localhost上安装并运行了MySQL服务器,则本地端口3306未打开,ssh无法将其用作隧道的源端口。改为使用另一个端口(假设您使用13306):

ssh user@remote_host -L 13306:database_host:3306

修改应用程序的本地配置文件,使用localhost作为数据库服务器,13306作为数据库端口。

调试远程代码

如果要调试实时代码(它使用实时数据库),则必须在Web服务器(实时环境)上传代码并使其在那里工作(能够连接到数据库等)。

为了能够调试它,您需要在服务器上安装xdebug PHP扩展,并在服务器的php.ini配置文件中正确配置。

调试器(远程xdebug扩展名)需要连接到PhpStorm正在侦听端口9000的本地计算机。这要么是不可能的,要么发生这种情况需要在几个地方改变配置(这可能超出你的控制范围);我们最好忘掉它。

我们可以使用ssh隧道技巧:启动到服务器的ssh连接,该服务器创建从本地端口9000到服务器端口9000的隧道:

ssh user@remote_host -L 9000:localhost:9000

测试是否有效

PhpStorm提供了一个工具,可以在Web服务器上传脚本,然后尝试访问它以检查xdebug扩展名是否已正确配置。根据您使用的PhpStorm版本,您可以在菜单(Run - > Web Server Debug ValidationPhpStorm 9)或{{1}的某个位置找到它(Settings - > PHP或周围,旧版本。)