3

我尝试使用 phpstorm 远程调试 php 应用程序。我在 vmware 虚拟机上使用 centos 6.4、php5.3 和 apache 2.2,在真正的 ubuntu 上使用 phpstorm 和 firefox。xdebug 确实安装了:

Installed Packages
Name        : php-pecl-xdebug
Arch        : i686
Version     : 2.1.4
Release     : 1.el6
Size        : 580 k
Repo        : installed
From repo   : epel
Summary     : PECL package for debugging PHP scripts
URL         : http://pecl.php.net/package/xdebug
License     : PHP

phpinfo 也证实了这一点:

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with Xdebug v2.1.4, Copyright (c) 2002-2012, by Derick Rethans

当我通过 ssh 从控制台运行脚本(简单的 hello world)时,我的脚本停止了,我从 xdebug 连接到 mu ide,并且 xdebug 在自己的日志中写入信息。但是当我从浏览器运行脚本时 - 没有效果,即使在 xdebug 日志中也是如此。我尝试使用 firefox 扩展来启动调试会话,我尝试使用 xdebug.remote_autostart=1 选项,tru 关闭 centos 中的 iptables,但也没有效果。我做错了什么?xdebug 配置:

; Enable xdebug extension module
zend_extension=/usr/lib/php/modules/xdebug.so
;xdebug.remote_host=10.0.0.1
xdebug.remote_connect_back=1
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
;xdebug.remote_mode=req
;xdebug.profiler_enable=1
;xdebug.profiler_enable_trigger=1
;xdebug.remote_autostart=1
;xdebug.idekey=PHPSTORM
xdebug.remote_log="/tmp/xdebug.log"
4

2 回答 2

6

天哪,问题解决了。都是selinux。

setsebool httpd_can_network_connect=1,nttpd restart - 和 phpstorm 从 xdebug 获取连接。

于 2013-07-08T13:58:53.243 回答
0

等/selinux/配置更改

  • 该文件控制系统上 SELinux 的状态。

  • SELINUX= 可以采用以下三个值之一:

  • enforcing - 执行 SELinux 安全策略。

  • permissive - SELinux 打印警告而不是强制执行。

  • disabled - 不加载任何 SELinux 策略。SELINUX=强制执行

  • SELINUXTYPE= 可以采用以下三个两个值之一:

  • 目标 - 目标进程受到保护,

  • 最低限度 - 修改有针对性的政策。只有选定的进程受到保护。

  • mls - 多级安全保护。

SELINUXTYPE=目标

  • 该文件控制系统上 SELinux 的状态。

  • SELINUX= 可以采用以下三个值之一:

  • enforcing - 执行 SELinux 安全策略。

  • permissive - SELinux 打印警告而不是强制执行。

  • disabled - 不加载任何 SELinux 策略。

SELINUX=禁用

  • SELINUXTYPE= 可以采用以下三个两个值之一:

  • 目标 - 目标进程受到保护,

  • 最低限度 - 修改有针对性的政策。只有选定的进程受到保护。

  • mls - 多级安全保护。

SELINUXTYPE=目标

于 2016-10-09T11:30:07.447 回答