我在Raspberry Pi
上运行php5-fpm
,并为网站提供服务。我已经安装了php5-xdebug
包并重新启动了php5-fpm
,我希望已经将其配置为127.0.0.1:9000进行远程调试。我把服务器放在9000
上,用nc -l 9000
命令进行监听。
不幸的是,当我打开任何带有http://mysite/mypage.php?XDEBUG_SESSION=1
的页面时,没有任何事件尝试连接到端口9000
,因为它的控制台中没有字符。页面打开正常。
还有什么可以阻止PHP调试器工作?
尝试次数:
-
在
phpinfo
页面上指示添加xdebug.remote_log=/var/log/xdebug.log
,但没有效果:没有创建任何日志,页面立即出现。 -
在
php
文件的开头添加xdebug_break();
也没有影响。没有暂停,没有日志。 -
端口的更改并没有改变任何东西。。。
我最初的phpinfo
如下:
Server API FPM/FastCGI
Virtual Directory Support disabled
Configuration File (php.ini) Path /etc/php5/fpm
Loaded Configuration File /etc/php5/fpm/php.ini
Scan this dir for additional .ini files /etc/php5/fpm/conf.d
Additional .ini files parsed /etc/php5/fpm/conf.d/05-opcache.ini, /etc/php5/fpm/conf.d/10-pdo.ini, /etc/php5/fpm/conf.d/20-json.ini, /etc/php5/fpm/conf.d/20-readline.ini, /etc/php5/fpm/conf.d/20-xdebug.ini
PHP API 20131106
PHP Extension 20131226
Zend Extension 220131226
Zend Extension Build API220131226,NTS
PHP Extension Build API20131226,NTS
Debug Build no
Thread Safety disabled
Zend Signal Handling disabled
Zend Memory Manager enabled
Zend Multibyte Support provided by mbstring
IPv6 Support enabled
DTrace Support enabled
Registered PHP Streams https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2
Registered Stream Filters zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk
...
***
xdebug
xdebug support enabled
Version 2.2.5
IDE Key www-data
***
Supported protocols Revision
DBGp - Common DeBuGger Protocol $Revision: 1.145 $
Directive Local Value Master Value
xdebug.auto_trace Off Off
...
xdebug.coverage_enable On On
xdebug.default_enable On On
xdebug.dump.COOKIE no value no value
xdebug.dump.ENV no value no value
xdebug.dump.FILES no value no value
xdebug.dump.GET no value no value
xdebug.dump.POST no value no value
xdebug.dump.REQUEST no value no value
xdebug.dump.SERVER no value no value
xdebug.dump.SESSION no value no value
xdebug.dump_globals On On
xdebug.dump_once On On
xdebug.dump_undefined Off Off
xdebug.extended_info On On
xdebug.file_link_format no value no value
xdebug.idekey no value no value
xdebug.max_nesting_level 100 100
xdebug.overload_var_dump On On
...
xdebug.remote_autostart Off Off
xdebug.remote_connect_back Off Off
xdebug.remote_cookie_expire_time 3600 3600
xdebug.remote_enable On On
xdebug.remote_handler dbgp dbgp
xdebug.remote_host 127.0.0.1 127.0.0.1
xdebug.remote_log no value no value
xdebug.remote_mode req req
xdebug.remote_port 9000 9000
xdebug.scream Off Off
xdebug.show_exception_trace Off Off
xdebug.show_local_vars Off Off
xdebug.show_mem_delta Off Off
xdebug.trace_enable_trigger Off Off
...
我使用xdebug 3。以下几点可能会对其他人有所帮助,但我最初没有注意到:
-
如果没有创建xdebug日志,请确保apache用户可以访问和写入日志目录。例如/var/log通常不是,所以最好使用/tmp/like-so:
xdebug.log=/tmp/xdebug.log
-
要启用xdebug,还需要设置模式:
xdebug.mode=调试
-
下面是我的最后一节xdebug。您可以更改client_port以应用于您的案例。
zend_extension="/usr/lib64/php/modules/xdebug.so" xdebug.remote_enable=1 xdebug.remote_autostart=on xdebug.client_port=9003 xdebug.log=/tmp/xdebug.log xdebug.client_host=localhost xdebug.discover_client_host = true xdebug.mode = debug,develop