尽管文件目录正确,但fopen()权限被拒绝

时间:2013-08-09 05:38:32

标签: php

$handle = fopen('/Applications/XAMPP/xamppfiles/htdocs/test/file.txt', 'w');

我尝试过上述操作,每次尝试时,我的浏览器都会出现以下声明:

  

警告:的fopen(/Applications/XAMPP/xamppfiles/htdocs/test/file.txt)   [function.fopen]:无法打开流:权限被拒绝   第26行/Applications/XAMPP/xamppfiles/htdocs/test/index.php。

我尝试用相同类型的问题查看已回答的问题,但我尝试过的大部分内容都无效。例如,编写完整目录...

3 个答案:

答案 0 :(得分:2)

也许,您无权访问该文件。其中一个答案是,您必须将CHMOD更改为例如777。您可以使用ftp资源管理器或PHP。

chmod("/somedir/somefile", 777);

答案 1 :(得分:2)

默认情况下,安装XAMPP时,htdocs文件夹没有任何读取权限。您可以通过终端更改权限。

cd /Application/XAMPP/xamppfiles/htdocs/test/
sudo chmod 0664 file.txt

或者,您可以递归设置所有文件和文件夹的所有权限级别

cd /Application/XAMPP/xamppfiles/
sudo chmod -R 0664 htdocs/

答案 2 :(得分:0)

你可以chmod777,但这是有风险的安全措施。我猜你真正想要的是改变文件的所有权。您可以使用chown执行此操作。 PHP通常以用户www-data运行,因此您将运行类似这样的命令。

sudo chown www-data:root path/to/file.ext

如果您对该文件的文件权限是正常的,如664,那将给予PHP 6个权限(读取和写入)而不是4个(只读取)。