我想从我的主目录在我的开发服务器上提供文档。这是一台私人笔记本电脑,因此就大多数服务器/网络托管情况而言,我并不真正关心安全性。
看起来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
可能取决于您到底想做什么。请注意,默认情况下,httpd
Fedora 使用私有命名空间/tmp
— 这可能不是您的软件想要的。您的应用程序使用它的目的是什么?