我刚学会了第一次在我的ubuntu linux localhost上安装Apache 2。我正在使用PHP5。
我注意到,无论何时我想写入文件或目录,我都必须将目的地chmod 777。
但根据我在第三方托管解决方案方面的经验,我通常可以写入拥有755权限的文件和目录。
我可以在本地主机上执行哪些操作,以便可以使用755权限写入文件和目录?如果答案很长,有人可以给我一个分步指南的链接吗?
答案 0 :(得分:16)
以下是大多数人应遵循的网站内容管理(在apache下)的一些简单规则:
如果您执行这两项操作,那么您应该能够写入由apache提供服务的文件。我不确定你的文档根目录在哪里,但是这样的东西可能适用于大多数简单的安装:
$ sudo usermod $USER -a -G www-data
$ cd /var/www
$ sudo chown -R www-data:www-data .
答案 1 :(得分:4)
您可能无法实现此目的,因为该文件的所有者与尝试对该文件执行操作的用户不同。
权限是:
所有者基团的每个人
rwx-rwx-rwx
i.e. 111 = 7 which allows read/write and execute.
101 = 5 which is just read and execute
您无法写入该文件,因为您登录的用户不属于有权访问该文件的所有者/组。
最后7(即rwx-rwx-111(7))意味着全局,每个人都有对该文件的读/写访问权。
如何解决此问题
在Linux中,您可以使用chown或chgrp命令来获得所需的结果。
答案 2 :(得分:0)
首先,您需要了解您的PHP代码正在运行的用户。如果您使用Apache的mod_php5
(包名libapache2-mod-php5
)与“worker”或“prefork”MPM一起运行,则可能是www-data
。
只要您在服务器中运行一个Web应用程序,这就不是什么大问题了。但是,如果您运行多个应用程序(或由多个用户拥有的脚本),您将为自己设置各种与安全相关的“乐趣”。