Fedora 上的 Apache2 主目录

Fedora 上的 Apache2 主目录

我想从我的主目录在我的开发服务器上提供文档。这是一台私人笔记本电脑,因此就大多数服务器/网络托管情况而言,我并不真正关心安全性。

看起来httpd.conf像这样:

DocumentRoot "/home/myuser/www"

#
# Relax access to content within /var/www.
#
<Directory "/home/myuser/www">
    AllowOverride all
    # Allow open access:
    Require all granted
</Directory>

# Further relax access to the default document root:
<Directory "/home/myuser/www">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

到目前为止一切正常,我现在可以查看myuser/www目录中的文档http://localhost/

但是,apache 无法写入该目录,并且我收到了 selinux 安全警告。

我尝试将我的用户添加到该apache组,并将myuser/www目录设置为755权限,但这不起作用。

如何允许 apache 写入此目录?

编辑:

更改目录的组和权限后/home/myuser/www/,文件会显示,但应用程序抱怨 apache 无法写入 tmp 目录,并引发 selinux 错误。安全消息中建议的修复方法是执行以下命令,我已执行此操作,没有进行任何更改:

# semanage fcontext -a -t httpd_sys_rw_content_t 'tmp'
# restorecon -v 'tmp'

答案1

chgrp apache对您的主目录(以及您希望 Apache 能够写入的任何文件和子目录)执行操作,然后chmod g+w对它们执行操作。这会将目录设置为 775 模式,文件为 664。

答案2

httpd_selinux从软件包中提供的手册页中查看这一点selinux-policy-doc

如果要允许 httpd 读取主目录,则必须打开 httpd_enable_homedirs 布尔值。默认禁用。

  setsebool -P httpd_enable_homedirs 1

您的问题/tmp可能取决于您到底想做什么。请注意,默认情况下,httpdFedora 使用私有命名空间/tmp— 这可能不是您的软件想要的。您的应用程序使用它的目的是什么?

相关内容