如何为我的Apache2根目录下的所有文件设置根访问权限


How to set root access for all files put inside my Apache2 root directory?

我正在Linux上学习PHP。我有一台运行在本地的Apache2服务器。每当我试图将PHP文件保存到Apache2服务器的根目录(/var/www/html/)时,我被告知权限被拒绝。

所以,我搜索了一下,发现默认情况下,管理员没有root访问权限,除非明确请求(如sudo su)。我也看到一些帖子要求我使用gksu nautilus。然而,我的linux 14.04 LTS Ubuntu没有附带它。(我知道我可以使用apt-get gksu,但目前,从互联网下载它不是一个选项)。

无论如何,我可以改变我的Apache2服务器根目录的权限,以便我可以使用任何文本编辑器直接保存/编辑到该目录。目前对我来说,只有不需要从网上下载东西的方法才是可行的。

对于linux系统,以root登录方式打开终端,进入root文件夹,执行以下命令chmod 777为例:-

将所有目录更改为777 (-rwxr-rwxr-rwxr):

find /opt/lampp/htdocs -type d -exec chmod 777 {} ';

将所有文件更改为644 (-rwxr-rwxr——rwxr——):

find /opt/lampp/htdocs -type f -exec chmod 777 {} ';

如果这不起作用,请尝试以下操作:-

创建新组

groupadd webadmin

将用户添加到组

usermod -a -G webadmin user1 usermod -a -G webadmin user2

更改站点目录的所有权

chown root:webadmin /var/www/html/

修改站点目录权限

chmod 2775 /var/www/html/ -R

现在任何人都可以读取这些文件(包括apache用户),但只有root和webadmin可以修改它们的内容。

您可以将/etc/apache2/httpd.conf文件中的DocumentRoot设置为Apache具有写访问权限的位置。例如,如果在那里创建了一个目录,则可以将其设置为/tmp/www。(如果你仍然没有访问权限,你可以通过运行chmod a+r /tmp/www给每个人读权限,但你应该没事。)

显然,将Apache文档根设置为/tmp/www是一个坏主意,所以你可以在它工作后将其更改为/home/chris

一个重要的注意事项:在您做了这样的更改之后,您必须重新启动Apache服务器。这可以通过运行apachectl restart;具有讽刺意味的是,您可能必须具有管理员权限才能执行此操作(甚至首先编辑配置文件),因此请确保在edit &;以sudo重启,以防万一。