有这么一个需求:
在防火墙为关闭状态的情况下,为http服务配置基于域名的虚拟主机,ServerName为www0.nb.com,DocumentRoot为/var/www/private,访问的端口改为8909。
首先在调用配置文件的目录/etc/httpd/conf.d/下创建一个空白的配置文件xxx.conf,配置如下:
Listen 8909
<VirtualHost *:8909>
ServerName 'www0.nb.com'
DocumentRoot '/var/www/private'
</VirtualHost>
重启服务systemctl restart httpd,通过www0.nb.com不能进行访问。
原因是因为selinux给http服务设置的默认端口中没有包含8909
semanage port -l 查看selinux中给各个服务提供的默认端口
semanage port -l | grep http 查看与http服务相关的端口
由于http默认提供的是80端口,因此需要找到含有80端口对应的内容。
发现http_port_t中没有开放8909端口,因此需要把8909端口加入
semanage port -a -t http_port_t -p tcp 8909
其中-a表示添加,-t表示类型也就是http_port_t,-p表示协议也就是tcp协议
这样8909端口就被添加到selinux给http协议设置的默认端口中去了。
需要说明:
semanage port -a -t http_port_t -p tcp 8909这条命令比较占用内存,执行这条命令的时候需要等待一段时间,如果内存太小命令可能不会被执行成功。
写总结的第五天!!