Linux——web基础实验

发布于:2024-04-25 ⋅ 阅读:(12) ⋅ 点赞:(0)

实验前的安装

[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 对应的主页