2012-05-11 54 views
1

我想学习xdebug。我有以下脚本:Xdebug没有写入文件

<?php 

echo "This"; 

xdebug_start_trace('/home/dotancohen/xdebug'); 
echo "That"; 
xdebug_stop_trace(); 

?> 

/home/dotancohen/目录权限711和~/xdebug文件权限777。然而,该文件没有被写入。在PHP脚本中没有出现任何错误,它的功能与期望忽略xdebug行一样。

为什么文件不能写入?

编辑: 这些是php.ini中的XDebug配置行:

extension=ssh2.so 
;extension=xdebug.so 
zend_extension="/usr/lib64/php/modules/xdebug.so" 
extension=mongo.so 
extension=memcache.so 
+0

你检查了你的php错误日志文件吗? – adrien

+0

@adrien:是的,没有任何东西。 – dotancohen

回答

2

事实证明,这条线:

xdebug_start_trace('/home/dotancohen/xdebug'); 

写入此文件:

/home/dotancohen/xdebug.xt 

因此,touch荷兰国际集团~/xdebug.xtchmod它荷兰国际集团以777解决了这个问题。

1

尝试调用xdebug_start_trace不带参数,看它是否是你的目录和/或你的脚本不喜欢的文件:P

而不参数配置为通过xdebug.trace_output_dir会造成在当前目录中的文件

+0

谢谢,实际上xdebug写入/ tmp(默认目录)就好了。任何想法为什么它可能不会写入我的用户的家?我会承担权限,但看起来他们设置正确。 – dotancohen

+0

当你在你的脚本目录中时,命令“cd/home/dotancohen/xdebug”是否有效? –

+0

它抱怨不是一个目录,因为它是一个文件! UNIX惯例是调用以'/'结尾的东西,并调用不是文件的东西(是的,我知道在UNIX中_everything_是一个文件)。请注意,我只是尝试使用'xdebug_start_trace('/ tmp/xdebug-special');'和_does_写入期望的文件,所以它可能是一个权限问题。 – dotancohen