我已经尝试了很多方法来调试我的远程服务器,但我无法这样做。我的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
答案 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
(用您的实际值替换user
,remote_host
和database_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 Validation
,PhpStorm 9
)或{{1}的某个位置找到它(Settings
- > PHP
或周围,旧版本。)