我正在尝试获取一个简单的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配置中的内容吗?任何建议将不胜感激
答案 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我建议第一种选择,因为它更适合您的需求。