关于virtualBox中最小化安装CentOS7系统,更改httpd.conf中的DocumentRoot之后访问出现Forbidden的问题

在Virtual Box中最小化安装CentOS7系统之后,为了将其搭建为服务器也安装了Apache服务器httpd,但在更改了httpd.conf配置文件中的DocumentRoot之后,在通过浏览器访问时,页面出现了Forbidden,为此便有了以下这边文章

1、确保配置文件正确

查看httpd.conf配置文件,确保没有任何出错,直接将原有DocumentRoot更改为我们自定义的目标目录,并更改其他相应位置的配置

2、确保权限足够

Apache服务器httpd对于目标目录及其所有父级目录必须要有可执行权限,确保目标目录对于Apache服务器具有可执行权限,权限不足则更改其权限

3、SELinux安全子系统问题

SELinux安全子系统是美国国家安全局对于强制访问控制的实现,详细资料可自行Google或百度!

由于此系统的存在限制了目录的安全上下文,导致Apache服务器无法访问原有DocumentRoot目录之外的其他目录。

解决方式1:

关闭SELinux:

(1)临时关闭,立即生效,系统重启后将会再次启动:setenforce 0 或者 setenforce permissive <启动可以使用setenforce 1setenforce enforcing>

(2)永久关闭,重启生效,系统重启之后也不会启动:更改/etc/selinux/config文件,更改SELINUX=enforcingSELINUX=disabled

解决方式2:

更改目录安全上下文:

安全上下文格式:USER:ROLE:TYPE[LEVEL[:CATEGORY]]

可以使用ls -Z查看,查看/var/www目录的安全上下文:

[root@localhost selinux]# ls -Z /var/www/
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html
只需要将我们更改的目标目录更改type类型即可,使用chcon命令

用法:

chcon -u user

chcon -r role

chcon -t type

chcon -R 向下递归更改

假设现在更改的目标目录为~/Project,则使用以下命令:

chcon -R -t httpd_sys_content_t ~/Project

4、防火墙问题

CentOS7中默认防火墙是开启的,并且这时候的防火墙是禁止任何端口通过的

可以通过firewall-cmd --list-ports查看可通过防火墙的端口列表

而Apache服务器默认使用80端口来进行访问

这时候可以通过firewall-cmd --add-port=80/tcp来增加端口


做完以上步骤之后,再访问的时候你会发现,唉哟,不错哟,可以了呀!


注:以上使用系统:最小化安装于Virtual Box(5.1.14 r112924)的CentOS7,使用的Minimal版本,Apache服务器版本Apache/2.4.6 (CentOS)


以上为个人使用过程的总结,不足之处,敬请指出,一起探讨,谢谢!

你可能感兴趣的:(Linux,apache,centos)