实验前的安装
[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.bac2、准备服务器主页目录
[root@localhost ~]# mkdir -p /home/www
[root@localhost ~]# echo “Welcome To My Home” >> /home/www/home.html3、修改配置文件
[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.html4、重启Apache 服务
[root@localhost ~]# systemctl restart httpd5、浏览器访问地址(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 Home2.修改配置文件并重启httpd服务
[root@localhost ~]# vim /etc/httpd/conf.d/userdir.conf
将 UserDir disabled 一行前面加#注释掉
将 #UserDir public_html 一行前面#删除取消注释
[root@localhost ~]# systemctl restart httpd3,验证
 
  在另一台虚拟机中打开浏览器,地址栏输入 
  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 /virdir2.修改配置文件并重启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.html2.修改配置文件并重启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 httpd3.验证
 
    打开浏览器,地址栏输入:  
   
 
    
    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.html2.配置主机名解析记录!!!!非常重要,注意替换自己的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 serverb3.修改配置文件、重启服务
[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 httpd4.验证
 
    在任何一个配置了主机名解析记录的系统上,测试访问  
   
 
    
    打开浏览器,地址栏输入:  
   
 
    
    servera.example.com  
    可以看到 
    servera.example.com 
    对应的主页  
   
 
    
    serverb.example.com  
    可以看到 
    serverb.example.com 
    对应的主页 
   
 
    
  


















