允许 PHP 不使用 777 写入文件

允许 PHP 不使用 777 写入文件

我正在我所在大学提供的网络空间上建立一个简单的网站。我没有数据库访问权限,因此我将所有数据存储在一个平面文件中。我遇到的问题与文件权限有关。我需要 PHP 能够读取和写入数据文件,但我真的不想将文件设置为 777,因为系统上的任何其他人都可以修改它,他们已经拥有每个人的网络目录的读取权限。有人知道如何实现这一点吗?

提前致谢

答案1

只需设置 0755(或更低),但要确保目录所有者是 apache(或其他 Web 服务器)在上下文中运行的用户。

例如

chown apache:apache /var/www/html

例如,您可以使用 phpinfo() 获取有关用户的信息。

更新

如果你与更多网站共享 Apache,那么你应该通过以下方式分离你的内容:每个用户的 Web 目录

http://httpd.apache.org/docs/2.2/howto/public_html.html

答案2

您可以使用苏普来完成此任务。如果您可以使用它,则只需将文件权限更改为 0700,一切就会按您想要的方式进行。

答案3

理想的情况是,如果服务器上的文件系统支持 posix acls,那么您可以为 Web 服务器运行的 uid 添加对某些文件的写访问权限。

并且您有足够的文件系统访问权限(最好通过 shell 帐户)来设置 acl 权限。

请参阅 man acl 了解概述,请参阅 man setfacl 了解如何设置它们的详细信息。

答案4

您可以使用以下命令设置读/写权限:

sudo chown www-data PATH

如果www-数据不存在,你可以用以下方式替换阿帕奇:阿帕奇或者阿帕奇

相关内容