Tel*_*nor 1 php file-permissions
我试图让一个PHP文件写入驻留在同一文件夹中的文件.无论是php文件和它试图写有自己的权限设置为777的文件(其Linux服务器)以及它们所在的文件夹.每当我叫fopen()函数与"W"或"W +"模式,该函数只返回false.它在我学校的网络服务器上,所以我无法获得root权限,可以将文件的所有者更改为与apache相同的用户.有谁知道什么是错的?
更新:作为测试,我使用此代码:
$handle = fopen("test.txt", 'w');
if($handle === FALSE)
echo "\nfailed";
else
echo "\nsuccess";
fclose($handle);
Run Code Online (Sandbox Code Playgroud)
现在启用错误报告的输出是:
Warning: fopen(test.txt) [function.fopen]: failed to open stream: Permission denied in /<snip>/public_html/test.php on line 58
failed
Warning: fclose(): supplied argument is not a valid stream resource in /<snip>/public_html/test.php on line 63
Run Code Online (Sandbox Code Playgroud)
上面是我从php网站上为fileperms()函数复制的一些代码,它检查文本文件的权限,并报告-rwxrwxrwx
相关文件的ls -al输出是
ls -al *test*
-rwxrwxrwx 1 mag5 30 1475 Dec 9 00:02 test.php*
-rwxrwxrwx 1 mag5 30 8 Dec 8 14:54 test.txt*
Run Code Online (Sandbox Code Playgroud)
我也不确定这是否重要,但我的学校使用的是一个名为Andrew File系统的东西(http://en.wikipedia.org/wiki/Andrew_File_System).
Telanor,AFS是一个非常大的线索.
AFS(安德鲁文件系统)具有超出传统unix文件系统的整个目录权限级别.检查目录上的AFS权限,以确保您能够访问目录中的文件.此外,它可能不是您的权限,而是Web服务器的权限(或者更确切地说是在其下运行的用户标识).自从我使用AFS以来已经很长时间了,因此我不知道检查目录权限的命令.