【问题标题】:How to set root access for all files put inside my Apache2 root directory?如何为我的 Apache2 根目录中的所有文件设置根访问权限?
【发布时间】:2015-05-26 14:24:13
【问题描述】:

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

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

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

【问题讨论】:

    标签: php linux apache ubuntu


    【解决方案1】:

    对于 linux,使用 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 可以修改其内容。

    希望这能帮助您解决问题。

    【讨论】:

      【解决方案2】:

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

      显然,将您的 Apache 文档根目录保留为 /tmp/www 是个坏主意,因此您可以将其更改为 /home/chris 之类的名称。

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

      【讨论】:

        猜你喜欢
        • 2021-12-19
        • 2012-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多