我在virtualbox中设置了一个centos7,其中运行apache httpd、mariadb、phpmyadmin等,主机是macos
当我尝试将 url 映射到共享文件夹时,我遇到了错误
Forbidden: You don't have permission to access /tutorial/ on this server.
sudo tail -f/var/log/httpd/error_log
[Wed Oct 19 22:48:23.108758 2016] [autoindex:error] [pid 1469] (13)Permission denied: [client 192.168.144.1:51847] AH01275: Can't open directory for index: /php-tutorial/www/
/etc/httpd/conf.d/tutorial.conf
Alias /tutorial "/php-tutorial/www"
<Directory "/php-tutorial/www">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
文件夹权限是
drwxr-xr-x. 1 vagrant vagrant system_u:object_r:vmblock_t:s0 /php-tutorial/www
drwxr-xr-x. 1 vagrant vagrant system_u:object_r:vmblock_t:s0 /php-tutorial
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
我不确定这是否可能,如果可能的话,配置它的正确方法是什么。
最佳答案
感谢 ezra-s 强调了可能的问题。
是的,这是因为 SELinux,因为 SELinux 在 Centos 7.2 中默认启用,这是这里使用的客户操作系统。
这个问题有两种不同的解决方案:
# vi /etc/selinux/config
SELINUX=enforcing # <= change enforcing to disabled
# yum install -y policycoreutils-python
# vi httpd_t.te
module httpd_t 1.0;
require {
type httpd_t;
type vmblock_t;
class file { read getattr open };
}
#============= httpd_t ==============
allow httpd_t vmblock_t:file { read getattr open };
# checkmodule -M -m -o httpd_t.mod httpd_t.te
# semodule_package -o httpd_t.pp -m httpd_t.mod
# semodule -i httpd_t.pp
# systemctl restart httpd
引用:
关于apache httpd 将 url 映射到 virtualbox 共享文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40135436/