我正在笔记本电脑上本地运行php脚本updreading.php(使用Mac OS X 10.6.7)。 这是updreading.php
的内容<?php
$outFile = "examples-output.txt";
$out = fopen($outFile, 'w') or die("can't open write file");
?>
当我运行它时,我收到“无法打开写入文件”错误消息。我认为它应该与权限有关。我让自己(arman)成为/ Library / WebServer / Documents /的拥有者,具有读取和写入权限以及“对封闭项目应用设置”。我写的脚本和文件(examples-output.txt)位于/ Library / WebServer / Documents / wabun /中。以下是/ Library / WebServer / Documents / wabun /中的文件权限:
-rw-r--r--@ 1 arman admin 0 May 1 01:03 examples-output.txt
-rw-r--r--@ 1 arman staff 1657 May 1 01:04 updreading.php
我试图在过去的4个小时内解决问题,尝试不同的权限而没有运气。伙计们,如何解决这个问题?谢谢!
答案 0 :(得分:7)
我遇到了同样的问题。我必须确保所有父文件夹的权限都是正确的。例如,如果(在OSX中)尝试写入目录
~/foo/bar/baz
,我用命令chmod -R 777 ~/foo
解决了它。
答案 1 :(得分:1)
我敢打赌,问题是您的网络服务器或PHP实例未在同一用户(arman
)下运行,您可以使用get_current_user()
功能进行检查。您可以将apache配置为使用您的权限运行(在ServerFault中询问)或为文件夹提供更多慷慨的权限,例如0777
。
另一件事,你确定$outFile
映射到绝对路径吗?尝试做:
var_dump(is_file($outfile));
答案 2 :(得分:0)
你需要制作apache(假设apache是你正在使用的服务器)所有者或者放入组(并给予组写访问权限)或者给所有或者其他人写入权限.IOW apache是实际执行脚本的人,不是你。