0

由于拒绝权限,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

4

1 回答 1

0

我有同样的问题,我放错了一些配置。首先请记住,创建 php 文件的用户可以读取该文件,如果创建 php 文件的用户与你的情况下的 apache 用户不同,那么apache在这种情况下你会得到如果您尝试从不同的用户处写入,则会出现此异常。所以您要做的很简单,我建议您撤销777权限,因为我不喜欢您的文件在读取和写入世界时公开可用的想法,所以将其恢复为 755 并在服务器的命令行上执行下一步。

cd /var/www

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

chown apache:apache html

在这个阶段,html 文件的所有者将是 apache,所以你可以在上面写。无论如何,同时我强烈建议你在 html 中创建单独的目录让我们说testDir并在那里尝试,我不建议更改根文件夹权限,我对他们有不好的经历。无论如何,我希望它会有所帮助,因为我遭受了一个多小时的痛苦,而且现在有了正确的方法。这解决了我的问题,希望它也能解决你的问题。!

于 2016-08-07T20:42:38.033 回答