实验前的安装
[root@webserver ~]# yum -y install httpd
[root@webserver ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service →
/usr/lib/systemd/system/httpd.service.
[root@webserver ~]# echo test for apache httpd > /var/www/html/index.html
[root@webserver ~]# cat /var/www/html/index.html
test for apache httpd
[root@webserver ~]# curl 127.0.0.1
test for apache httpd
[root@webserver ~]# curl -I 127.0.0.1
HTTP/1.1 200 OK //状态码为 200 说明服务端
//为客户端的访问提供了响应代码为200的
响应
Date: Sun, 21 Apr 2024 08:49:55 GMT
Server: Apache/2.4.37 (Red Hat Enterprise Linux)
Last-Modified: Sun, 21 Apr 2024 08:49:23 GMT
ETag: "16-6169765c97f13"
Accept-Ranges: bytes
Content-Length: 22
Content-Type: text/html; charset=UTF-8
实验一、修改端口
Web
服务主目录
:/home/www/
主页
:home.html
,内容为
“Welcome To My Home”
端口
: 8080
1、为了避免我们的修改造成
Apache
崩溃无法恢复的后果,建议先备份一下默认配置文件
[root@localhost ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bac
2、准备服务器主页目录
[root@localhost ~]# mkdir -p /home/www
[root@localhost ~]# echo “Welcome To My Home” >> /home/www/home.html
3、修改配置文件
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
修改 Listen 80 一行 为 Listen 8080
修改 DocumentRoot “/var/www/html“一行为 DocumentRoot "/home/www“
修改<Directory “/var/www/html”> 一行为 <Directory "/home/www">
修改 <IfModule dir_module> 块 内 DirectoryIndex index.html 一行为
DirectoryIndex home.html
4、重启Apache 服务
[root@localhost ~]# systemctl restart httpd
5、浏览器访问地址(http://自己的ip地址:8080/) 可以看到自己的网页
实验二:访问系统用户家目录
1.创建用户并修改用户目录权限,并创建个人主页
[root@localhost ~]# useradd long
[root@localhost ~]# echo redhat | passwd --stdin long
[root@localhost ~]# mkdir /home/long/public_html
[root@localhost ~]# echo "This is long's Home" >>
/home/long/public_html/home.html
[root@localhost ~]# chmod -R 705 /home/long/
[root@localhost ~]# cat /home/long/public_html/home.html
This is long's Home
2.修改配置文件并重启httpd服务
[root@localhost ~]# vim /etc/httpd/conf.d/userdir.conf
将 UserDir disabled 一行前面加#注释掉
将 #UserDir public_html 一行前面#删除取消注释
[root@localhost ~]# systemctl restart httpd
3,验证
在另一台虚拟机中打开浏览器,地址栏输入
http://
自己的
IP
地址
/~long/
可以看到
long
用户独有
的主页
实验三、虚拟目录
在
Apache
服务器中,创建名为
/test/
的虚拟目录,它对应的物理路径是
/virdir/
,并在客户端测试。
1.创建相关目录、文件并设置权限
[root@localhost ~]# mkdir /virdir
[root@localhost ~]# echo "VR Test" >> /virdir/home.html
[root@localhost ~]# chmod -R 705 /virdir
2.修改配置文件并重启httpd服务
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
在文件结尾添加如下语句:
Alias /test "/virdir"
<Directory "/virdir">
AllowOverride NOne
Require all granted
</Directory>
[root@localhost ~]# systemctl restart httpd
3.验证
在虚拟机
2
中打开浏览器
,
地址栏输入
192.168.100.3:8080/test/index.html
后,能看到自己的主页
实验五、配置基于端口的虚拟主机
要求:假设
Apache
服务器
IP
地址为
192.168.100.3
。现需要创建基于
8088
和
8089
两个不同端口号的虚拟主机,要求不同的虚拟主机对应的主目录不同,默认页面的内容也不同,如何配置?
1.
创建目录、文件
[root@localhost ~]# mkdir /home/www/8088
[root@localhost ~]# mkdir /home/www/8089
# 8088 对应的页面
[root@localhost ~]# echo "8088 test" >> /home/www/8088/index.html
# 8089 对应的页面
[root@localhost ~]# echo "8089 test" >> /home/www/8089/index.html
2.修改配置文件并重启httpd服务
恢复原来的主配置文件为默认,所有的虚拟主机配置,保存在专门的文件中
[root@localhost ~]# cp /etc/httpd/conf/httpd.conf.bac /etc/httpd/conf/httpd.conf
# 根据主配置文件的设置,在conf.d目录下保存新的配置文件
[root@localhost ~]# touch /etc/http/conf.d/myvhost.conf
[root@localhost ~]# vim /etc/http/conf.d/myvhost.conf
下面的内容全部新添加
[root@localhost ~]# cat /etc/httpd/conf.d/mhost.conf
Listen 8088
<VirtualHost *:8088>
DocumentRoot "/vhost/8088"
ServerName localhost
ErrorLog "/var/log/httpd/host8088-error_log"
CustomLog "/var/log/httpd/host8088-access_log" combined
</VirtualHost>
<Directory "/vhost/8088">
AllowOverride None
Require all granted
</Directory>
Listen 8089
<VirtualHost *:8089>
DocumentRoot "/vhost/8089"
ServerName localhost
ErrorLog "/var/log/httpd/host8089-error_log"
CustomLog "/var/log/httpd/host8089-access_log" combined
</VirtualHost>
<Directory "/vhost/8089">
AllowOverride None
Require all granted
</Directory>
[root@localhost ~]# systemctl restart httpd
3.验证
打开浏览器,地址栏输入:
192.168.100.3:8088
可以看到
8088
端口对应的主页
192.168.100.3:8089
可以看到
8089
端口对应的主页
实验六:基于主机名的虚拟主机配置
1.创建目录、文件
[root@webserver ~]# mkdir -p /vhost/server{a,b}
# servera.example.com 对应的页面
[root@webserver ~]# echo servera > /vhost/servera/index.html
# serverb.example.com 对应的页面
[root@webserver ~]# echo serverb > /vhost/serverb/index.html
2.配置主机名解析记录!!!!非常重要,注意替换自己的IP地址
[root@webserver ~]# echo '192.168.110.131 servera.example.com servera' >>
/etc/hosts
[root@webserver ~]# echo '192.168.110.131 serverb.example.com serverb' >>
/etc/hosts
[root@webserver ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
192.168.110.131 servera.example.com servera
192.168.110.131 serverb.example.com serverb
3.修改配置文件、重启服务
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
# 在文件中查找包含该内容为ServerName www.example.com:80注释行,在注释行的下一行添加下
面的内容
ServerName localhost
[root@webserver ~]# cat /etc/httpd/conf.d/mhost.conf
<VirtualHost servera.example.com:80>
DocumentRoot "/vhost/servera"
ServerName servera.example.com # HTTP 请求的路由依据是VirtualHost 配置中的
ServerAlias servera # ServerName 或 ServerAlias 指令
ErrorLog "/var/log/httpd/servera-error_log"
CustomLog "/var/log/httpd/servera-access_log" combined
</VirtualHost>
<Directory "/vhost/servera">
AllowOverride None
Require all granted
</Directory>
<VirtualHost serverb.example.com:80>
DocumentRoot "/vhost/serverb"
ServerName serverb.example.com
ErrorLog "/var/log/httpd/serverb-error_log"
CustomLog "/var/log/httpd/serverb-access_log" combined
</VirtualHost>
<Directory "/vhost/serverb">
AllowOverride None
Require all granted
</Directory>
[root@webserver ~]# systemctl restart httpd
4.验证
在任何一个配置了主机名解析记录的系统上,测试访问
打开浏览器,地址栏输入:
servera.example.com
可以看到
servera.example.com
对应的主页
serverb.example.com
可以看到
serverb.example.com
对应的主页