day11、12没啥好补充的,这里补充一下关于SELinux和虚拟主机的知识点。
SELinux补充知识
配置好httpd服务以后,访问IP地址会出现如下图所示的默认页面:
- 如果没有配置IP的话,就访问127.0.0.1。
- 反之同理,如果只有访问127.0.0.1才能访问到该页面,则说明没有配置IP地址。
出现默认页面的原因有两点:
1.网站数据目录里面没有数据
2.权限问题
httpd服务的配置文件中的网站数据目录,它的默认存放位置为 /var/www/html
,我们在目录下新建一个index.html文件并写入内容,然后再刷新网页,就会出现刚才写入的内容:
如果想更改网站数据目录
我们想将网站数据目录更改为 /home/wwwroot
mkdir /home/wwwroot
echo "xxxxxxxx" > /home/wwwroot/index.html
vim /etc/httpd/conf/httpd.conf
修改119行和124行的内容为:
119 DocumentRoot "/home/wwwroot"
124 <Directory "/home/wwwroot">
但在刷新页面以后并没出现我们写在index.html的内容,而是出现了默认页面。
原因在于SELinux
我们将SELinux临时禁止:
就会出现写在 /home/wwwroot/index.html
的内容:
我们来对比一下这两个目录的SELinux安全上下文值:
可以看到原来的默认目录的类型段是 httpd_sys_content_t
:表示的是网站服务的系统文件;
而我们新建的目录的类型段是 home_root_t
。我们知道,home目录里是存放普通用户的家目录文件,而httpd只是一个网站服务程序,怎么能去访问别人的家目录呢?所以不允许你去访问。
所以我们的解决方法是将新建目录的安全上下文也改成 httpd_sys_content_t
。
先对目录修改、再对目录里的所有文件修改:
- 这个命令没有递归的参数,只能分成这样两步操作。
然后要用restorecon使它立即生效:
虚拟主机补充知识
基于IP地址的方法,书上用的是nmtui命令,这里演示一下用修改配置文件的方法。
yum install httpd #安装网站服务程序
vim /etc/sysconfig/network-scripts/ifcfg-eno16777728
可以在一个网卡上绑定多个IP地址:
重启网络:
systemctl restart network
然后依次测试是否能够ping通:
ping 192.168.10.10
ping 192.168.10.20
ping 192.168.10.30
然后后续的操作和书P207的操作一样了。