php fopen无法在Mac OS X中打开文件进行写入

时间:2011-05-01 05:25:10

标签: php apache macos file-permissions fopen

我正在笔记本电脑上本地运行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个小时内解决问题,尝试不同的权限而没有运气。伙计们,如何解决这个问题?谢谢!

3 个答案:

答案 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是​​实际执行脚本的人,不是你。