当我运行php –version(在CentOS版本6.4上)时,我得到:
# php --version
Failed loading /usr/lib/php/modules/xdebug.so: /usr/lib/php/modules/xdebug.so: cannot open shared object file: No such file or directory
PHP 5.4.19 (cli) (built: Aug 22 2013 08:03:53)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
“无法加载/usr/lib/php/modules/xdebug.so:/usr/lib/php/modules/xdebug.so:无法打开共享对象文件:没有这样的文件或目录”消息的来源是什么?
我使用以下方法确认了我的php.ini文件的位置:
# php -a
Failed loading /usr/lib/php/modules/xdebug.so: /usr/lib/php/modules/xdebug.so: cannot open shared object file: No such file or directory
Interactive shell
php > echo php_ini_loaded_file() . "\n";
/etc/php.ini
然后我在/etc/php.ini中搜索了“/usr/lib”:
# fgrep "/usr/lib" /etc/php.ini
zend_extension=/usr/lib64/php/modules/xdebug.so
extension_dir = "/usr/lib64/php/modules"
PHP似乎没有配置(在php.ini中)在/usr/lib / php / modules /中查找xdebug.so.那我为什么要收到错误信息呢?
更新:响应Sverri M. Olsen的评论建议xdebug.so的路径可能需要修复,我做了:
# fgrep "xdebug" /etc/php.ini
zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=vmhostmachine
xdebug.remote_port=9000
xdebug.profiler_enable=1
xdebug.profiler_enable_trigger=1
xdebug.profiler_output_dir=/usr/xdebug
xdebug.profiler_append=1
xdebug.auto_trace=1
xdebug.trace_format=1
xdebug.collect_params=4
xdebug.collect_return=1
xdebug.trace_output_dir=/usr/xdebug
xdebug.trace_output_name=trace.%H.%t
xdebug.profiler_output_name=profile.%H.%t
我确认了xdebug.so的上述路径是正确的:
# ls -lh /usr/lib64/php/modules/xdebug.so
-rwxr-xr-x 1 root root 200K May 21 2013 /usr/lib64/php/modules/xdebug.so
另请注意Xdebug的工作原理.