【发布时间】:2015-09-22 04:49:23
【问题描述】:
在 CentOS 7 机器上使文件和目录可由 PHP 写入时遇到问题
我已经搜索了网络和站点,但没有找到适合我的解决方案(我对 linux 还很陌生)。
到目前为止,我已经尝试了以下,关于为什么文件/目录仍然不能被 PHP 写入的任何想法?
sudo chown -R apache:apache ss/
sudo chmod -R g+rw ss/
sudo chmod -R 777 ss/
用 echo getmyyuid().':'.getmygid(); 找到 id 后也尝试了以下命令
sudo chown -R 1000:1000 ss/
我已经运行了以下命令
# egrep -i '^user|^group' /etc/httpd/conf/httpd.conf
User apache
Group apache
ls -Zd ss/
drwxrwxrwx. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 ss/
【问题讨论】:
-
您使用的 PHP 代码是什么?您确定您正在访问正确的目录/文件吗?另外,目录“ss”的“ls -la”输出是什么?
-
展示你尝试过的东西
-
您在使用上面的命令时真的没有收到任何错误吗? http服务器执行的帐号是什么?该帐户和组真的称为“apache”吗?这不是很常见...然后:您要使用的文件夹
ss位于哪里?使用绝对寻址可能不太容易混淆。一般来说:0777的文件权限通常不需要,这是一个非常糟糕的习惯。你不应该使用它。它在您的系统中引入了一个巨大的安全漏洞。 -
这个文件夹的安全上下文是什么?用
ls -Zd ss/检查它 -
我在另一个答案中使用了以下命令中的帐户和组 apache # egrep -i '^user|^group' /etc/httpd/conf/httpd.conf User apache Group apache The ss folder位置是 /var/www/html/ss 安全上下文命令返回 drwxrwxrwx。 apache apache unconfined_u:object_r:httpd_sys_content_t:s0 ss/
标签: php linux file-permissions silverstripe