Linux上Apache的文件许可错误

时间:2018-07-27 17:06:08

标签: php linux apache permissions

我正在尝试获取一个简单的PHP文件,以使用apache在linux Centos 7服务器上工作。问题是php代码似乎没有写入该文件夹的权限。下面的简单测试php文件说明了问题

<?php 
echo shell_exec('whoami');
echo "<br>";
$myfile = fopen("test.txt","w") or die("could not open test file");
fclose($myfile);
?>;

只是想让它完成我已经完成的工作

sudo chmod -R a+rwx /var/www

,但是我一直收到“无法打开测试文件”错误消息。我究竟做错了什么?顺便说一句,“ whoami”以“ apache”的形式回来

**编辑*

根据下面的建议,我进行了一些更改,现在显示对文件夹的完全许可。我创建了www-data组,并向其中添加了用户apache。

[prompt]$ groups apache
apache : apache www-data

对于/ var / www:

0 drwxrwsrwx.  4 root www-data   33 Jul 27 08:19 www

对于/ var / www / html:

0 drwxrwsrwx.  2 root www-data 137 Jul 27 12:43 html

我要加载的文件:

4 -rwxrwxrwx. 1 root        www-data      182 Jul 27 12:40 test.php

不幸的是,它仍然无法正常工作。可能是apache配置中的内容吗?任何建议将不胜感激

1 个答案:

答案 0 :(得分:0)

您可以尝试以下两种选择

选项1

确保该组是'/ var / www'上的www-data。

prompt> sudo chgrp www-data /var/www

使该组的“ / var / www”可写。

prompt> sudo chmod 775 /var/www

为所有子文件夹的www-data设置GID。

prompt> sudo chmod g+s /var/www

您的目录应在“ ls -l”输出中看起来像这样。

drwxrwsr-x

最后,将您的用户名添加到www-data组(辅助组)。

prompt> sudo useradd -aG www-data [USERNAME]

选项2

按照https://httpd.apache.org/docs/2.4/mod/mod_userdir.html

中的说明使用 mod_userdir

我建议第一种选择,因为它更适合您的需求。