apache php file_put_contents权限被拒绝

时间:2014-03-07 15:45:57

标签: php apache folder-permissions

由于拒绝权限,php脚本无法创建文件。

PHP脚本:

<?
echo exec('whoami');
file_put_contents('/var/www/html/sample.txt','Some random Text');
?>

输出:

apache
**Warning**: file_put_contents(/var/www/html/test/samds.txt): failed to open stream: Permission denied in **/var/www/html/index.php** on line **3**

目录权限均为777

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题而我错了一些配置。首先要记住创建php文件的用户可以读取文件,如果创建php文件的用户与apache用户不同,那么{{1在这种情况下,如果你尝试从不同的用户写信,你会得到这个例外。所以你要做的就是简单,我建议你撤销testItem.date权限,因为我不喜欢你的想法读取和写入世界时可以使用文件进行宣传,因此请将其恢复到755并在服务器的命令行中执行下一步。

apache

只更改HTML的用户,因为我们只需要它可写,所以不要触摸var和www,所以基本上只要你导航到www目录,你就要将HTML目录所有者更改为当前正在运行apache服务器的那个,你已经获得了这个信息,在你的情况下它是777所以我们将会做下一个,

cd /var/www

在这个阶段,html文件所有者将是apache所以你将能够写到它。无论如何我强烈建议你在html中创建单独的目录,让我们说apache并尝试在那里,我会不建议更改根文件夹权限,我对他们有不好的经验。无论如何,我希望它会有所帮助,因为我遭受了更多的时间,现在才有正确的方法去做。这使我的问题得到解决,希望它能解决你的问题#39;也是。!