从 mac 进行 xdebug 远程 centos 主机

从 mac 进行 xdebug 远程 centos 主机

我有一台运行 CentOS7、PHP7.0.7(带 php-fpm 和 SELinux)的服务器。我正在尝试调试在该服务器上运行的 PHP 脚本。我还有一台运行 PHPstorm 的 Mac 机器,我打算在上面进行调试。

我按照这个指南使用了 Phpstorm。

这是我所做的:

1)安装xdebug到服务器

2)设置 xdebug 配置如下:
zend_extension="/usr/lib64/php/modules/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host="localhost"
xdebug.remote_port=9099
xdebug.remote_handler=dbgp
xdebug.remote_autostart=1
xdebug.idekey="PHPSTORM"

3)将 ssh 配置设置为:AllowTcpForwarding yes(然后我将其恢复为没有帮助)

4)重新启动 php-fpm、sshd 和 httpd

5)在我的本地终端中,使用指定的 -R 标志打开与服务器的 ssh 连接
$ ssh -R 9099:localhost:9099 user@host

6)更改了 phpstorm 中的 xdebug 配置以监听端口 9099,并在 index.php 中设置断点

7)在浏览器中打开网站

但是我的本地 xdebug 仍然没有在断点处停止。

这个配置中我可能缺少什么?

可能是 SElinux 阻止了调试?

答案1

这是一个老问题,但我还是会把它留在这里,
因为它至少可以帮助人们解决问题

setsebool -P httpd_execmem 1

启用后,此布尔值允许 httpd 执行需要可执行和可写入内存地址的程序。从安全角度来看,不建议启用此布尔值,因为它会降低对缓冲区溢出的保护,但是某些模块和应用程序(例如 Java 和 Mono 应用程序 - 正如我今天所了解到的,调试) 需要此权限。

相关内容