CentOS 7配置Web服务-第二篇
接上一个实验dhcp实验已经配置好ip了
这个实验我们来在CentOS 7配置Web服务
一、要求:
1、创建一台虚拟主机网站,满足以下功能:
1)网站页面存放路径为学生用户家目录。
2)网站访问端口为8080
3)可通过ip地址192.168.1.学号访问
4)可通过域名访问,域名为学生姓名。例如www.zhangsan.com 或www.zs.com
2、开启认证式个人网站,开通至少两个用户主页,用户网页存放路径为其家目录下的web目录,访问密码为1234。
3、创建基于多IP的虚拟主机
4、创建基于多域名的虚拟主机
5、创建基于多端口的虚拟主机
二、实验环境
硬件:处理器:Intel® Core™ i3或更高配置
已安装的内存(RAM):8.00 GB或更高配置
系统类型:6 4位操作系统,基于x64的处理器或更高配置
软件:VMware Workstation 16及更高版本或virtual box 6及更高版本
三、安装环境
1)安装Apache服务程序软件包名httpd
sudo yum install -y httpd
2)设置开机自动启动web服务
sudo systemctl start httpd
sudo systemctl enable httpd
3)设置ip
当主机的ip和主机上ip网段不一样时,也是可以访问网站的,但是其他主机就访问不了,要在同一个网段,如下图。
主机ip
查看右下角WiFi的属性,最后查看ip
虚拟机的使用
ip add
查看ip
使用
nmtui
更改ip
选择编辑连接
配置的以太网更改的名字,我的是666
之后在页面进行重启。你的这个网关我的命名是666。所以我是重启666这个端口。
sudo nmcli co down 666;nmcli co up 666;
输入
show ip
进行确认,ip是否改为192.168.1.7。
4)验证
验证Apache默认网站是否成功,在windows浏览器(这里以Firefox浏览器为例)的址栏中输入对应的ip"http://192.168.3.53"并按Enter 键,就可以看到用于提任Web服务的httpd服务程序的默认页面了。
如果没有出现的话就需要关闭防火墙。然而关闭防火墙,每次启动都要关闭。
sudo systemctl stop Firewalld
然后重新启动web服务
sudo systemctl restart httpd
四、实验步骤
1.建立网站数据的保存目录,并创建首页文件。
mkdir /home/wwwroot
echo"Hello Wolrd1"> /home/wwwroot/index.html
2.配置httpd服务程序的主配置文件
打开httpd服务程序的主配置文件
vim /etc/httpd/conf/httpd.conf
在最下面那一行添加下面的代码。
DocumentRoot /home/wwwroot/
<Directory /home/wwwroot/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
关闭防火墙
systemctl stop firewalld
然后重新启动web服务
sudo systemctl restart httpd
然后输入192.168.1.7就会出现如下界面。
备注:如果显示的依然是httpd服务程序的默认首页面,请检查网站的首页面文件是
否不存在或者用户权限不足。如果尝试访问http://127.0. 0.1/index. html页面时,发现
页面中显示“Forbidden, You don’t have permission to access /index. html on this server.
将确定是SELinux的配置问题,可以使用“
setenforce 0
”命令临时关闭SELinux, 然后再访
问。注意,这种修改只是临时的,在系统重启后就会失效。
3.配置接口
打开httpd服务程序的主配置文件
vim /etc/httpd/conf/httpd.conf
在第七行找到Listen 在后面将其改完8080
需要将防火墙配置为允许访问您的网站。您可以使用以下命令打开所需的端口:
sudo firewall-cmd --add-port=学生用户端口号/tcp --permanent
sudo firewall-cmd --reload
然后重新启动web服务
sudo systemctl restart httpd
输入
192.168.1.7:8080
然后就会出现如下界面。
在这里插入图片描述
4.配置DNS域名解析
在对应的windows上配置,配置centos 的ip域名,相当于给别人取外号。
C:\Windows\System32\drivers\etc
在上面那个路径hosts文件用笔记本打开,在最后面添加ip 域名,并保存,如下图所示
192.168.1.7 www.gjy.com
5.配置SELinux
SELinux服务极大地提升了Linux 系统的安全性,将用户权限牢牢地锁在笼子里,
semanage
命令不仅能够像传统chcon命令那样设置文件、目录的策略,还可以管理网络端
口、消息接口。使用semanage命令时,经常用到的几个参数及其功能如下所示。
使用前要下载semanage restorecon 命令
yum provides semanage
yum -y install policycoreutils-python.x86_64
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*
注意,执行上述设置之后,还无法立即访问网站,还需要使用restorecon命令将设置好
的SELinux安全上下文立即生效。在使用restorecon命令时,可以加上-Rv参数对指定的
目录进行递归操作,以及显示SELinux安全上下文的修改过程。最后,再次刷新页面,就可
以正常看到网页内容了。
yum install restorecon
restorecon - Rv /home/wwwroot
6、搭建个人网址
- 开启相关的功能
更改/etc/httpd/conf.d/userdir.conf文件,将UserDir disabled前加上#,UserDir public_html去掉#,将public_html改为web代表网站数据在家目录下,用的web文件下
vim /etc/httpd/conf.d/userdir.conf
如下图所示
2.建立主页文件
先在home目录下建立一个用户根据自己来命名
进入root模式
sudosu
创建用户gjy、gjy207
sudouseradd gjy
sudouseradd gjy207
先进入用户gjy
cd gjy
创建并写入Hello Wolrd到/home/gjy/web/index.html中
echo"Hello Wolrd /home/gjy/web"> /home/gjy/web/index.html
另一个用户gjy207一样的操作
3.修改SElinux策略
setsebool -P httpd_enable_homedirs=on
4.启动服务
重启http服务
sudo systemctl restart httpd
创建多个用户网站也是同样的流程
7.设置密码
使用htpasswd 命令设置密码,验证要用到的用户名称(该用户(gjy)不必是系统中已有的本地账户)
htpasswd -c /etc/httpd/passwd gjy
Newpassword:此处输入用于网页验证的密码
Re-typenewpassword:再输入一遍进行确认
Adding password for user gjy
编辑个人用户主页功能的配置文件。
把第31~35行的参数信息修改成下列内容,如图12-11所示,其中,井号(# )开头的内
容为注释信息,可将其忽略。随后保存并退出配置文件,重启httpd服务程序即可生效。
将public_html改为web其中*代表/home下任意目录
vim /etc/httpd/conf.d/userdir.conf
authuserfile"/etc/httpd/passwd"#刚刚生成出来的密码验证文件保存路径
authname "My privately website"#当用户尝试访问个人用户网站时的提示信息什么都可以
require user gjy #用户进行账户密码登录时需要验证的用户名称 就是刚刚设置的用户名称
如图所示
重启http服务
sudo systemctl restart httpd
如图所示
注意:浏览器会记住你的密码,记得在弹出是否记住密码选择否,否则他会下次直接进入没有密码访问,如果点错了,可以尝试重启服务器.
sudo systemctl restart httpd
或者重新设置密码,
8、创建基于多IP的虚拟主机
(1)设置ip
先设置你要登录的ip
使用
nmtui
打开进入配置网卡,我的是666,继续添加ip
192.168.1.10
192.168.1.20
192.168.1.30
如图所示
之后在页面进行重启。你的这个网关我的命名是666。所以我是重启666这个端口。
sudo nmcli co down 666;nmcli co up 666;
(2)创建网站
在home/root中中创建用于保存不同网站数据的3个目录并向其写入网站首页文件
mkdir -p /home/wwwroot/10
mkdir -p /home/wwwroot/20
mkdir -p /home/wwwroot/30
echo"IP:192.168.1.10">/home/wwwroot/10/index.html
echo"IP:192.168.1.20">/home/wwwroot/20/index.html
echo"IP:192.168.1.30">/home/wwwroot/30/index.html
(3)编辑配置文件
vim /etc/httpd/conf/httpd.conf
解释:
<VirtualHost 192.168.1.7> //主机ip号
DocumentRoot /home/wwwroot //网站数据目录存放的文件夹
ServerName www.gjy.com //网站服务器的域名
<Directory /home/wwwroot> //存放的文件夹
AllowOverride None
Require all granted
</Directory></VirtualHost>
配置如下
<VirtualHost 192.168.1.7>
DocumentRoot /home/wwwroot
ServerName www.gjy.com
<Directory /home/wwwroot>
AllowOverride None
Require all granted
</Directory></VirtualHost><VirtualHost 192.168.1.10>
DocumentRoot /home/wwwroot/10
ServerName www.linux-gjy-10.com
<Directory /home/wwwroot/10>
AllowOverride None
Require all granted
</Directory></VirtualHost><VirtualHost 192.168.1.20>
DocumentRoot /home/wwwroot/20
ServerName bbs.linux-gjy-20.com
<Directory /home/wwwroot/20>
AllowOverride None
Require all granted
</Directory></VirtualHost><VirtualHost 192.168.1.30>
DocumentRoot /home/wwwroot/30
ServerName tech.linux-gjy-30.com
<Directory /home/wwwroot/30>
AllowOverride None
Require all granted
</Directory></VirtualHost>
(4)SElinux
此时就是重启了服务器没有有显示,你需要的要改变SElinux
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30
senanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30/*
restorecon -Rv /home/wwwrooot
(5)验证
现在就可以重启服务器
sudo systemctl restart httpd
在网站上分别输入192.168.1.10:8080 192.168.1.20:8080 192.168.1.30:8080
如图所示
9、创建基于多域名的虚拟主机
(1)配置windos电脑的域名解析文件
C:\Windows\System32\drivers\etc
在上面那个路径hosts文件用笔记本打开,在最后面添加ip 域名,并保存,如下图所示
192.168.1.7 www.gjy.com www.linux-gjy.com bbs.linux-gjy.com tech.linux-gjy.com
(2)在home/root中中创建用于保存不同网站数据的3个目录并向其写入网站首页文件
mkdir -p /home/wwwroot/www
mkdir -p /home/wwwroot/bbs
mkdir -p /home/wwwroot/tech
echo"www.linux-gjy1.com">/home/wwwroot/www/index.html
echo"bbs.linux-gjy1.com">/home/wwwroot/bbs/index.html
echo"tech.linux-gjy1.com">/home/wwwroot/tech/index.html
(3)编辑配置文件
vim /etc/httpd/conf/httpd.conf
<VirtualHost 192.168.1.7>
DocumentRoot /home/wwwroot/www
ServerName www.linux-gjy.com
<Directory /home/wwwroot/www>
AllowOverride None
Require all granted
</Directory></VirtualHost><VirtualHost 192.168.1.7>
DocumentRoot /home/wwwroot/bbs
ServerName bbs.linux-gjy.com
<Directory /home/wwwroot/bbs>
AllowOverride None
Require all granted
</Directory></VirtualHost><VirtualHost 192.168.1.7>
DocumentRoot /home/wwwroot/tech
ServerName tech.linux-gjy.com
<Directory /home/wwwroot/tech>
AllowOverride None
Require all granted
</Directory></VirtualHost>
(4)改变SElinux
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech/*
restorecon -Rv /home/wwwrooot
(5)验证
现在就可以重启服务器
sudo systemctl restart httpd
在网站上分别输入
www.linux-gjy.com:8080
bbs.linux-gjy.com:8080
tech.linux-gjy.com:8080
如图所示
10、创建基于多端口的虚拟主机
(1)在home/root中中创建用于保存不同网站数据的3个目录并向其写入网站首页文件
mkdir -p /home/wwwroot/8111
mkdir -p /home/wwwroot/8222
echo"port:8111">/home/wwwroot/8111/index.html
echo"port:8222">/home/wwwroot/8222/index.html
(2)编辑配置文件
vim /etc/httpd/conf/httpd.conf
在42行的Listen 8080
端口号添加8111、8222如图所示
Listen 8111
Listen 8222
下文件项目填写下面代码
#-------------端口-----#<VirtualHost 192.168.1.7:8111>
DocumentRoot /home/wwwroot/8111
ServerName bbs.linux-gjy.com
<Directory /home/wwwroot/8111>
AllowOverride None
Require all granted
</Directory></VirtualHost><VirtualHost 192.168.1.7:8222>
DocumentRoot /home/wwwroot/8222
ServerName tech.linux-gjy.com
<Directory /home/wwwroot/8222>
AllowOverride None
Require all granted
</Directory></VirtualHost>
(3)改变SElinux
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/8111
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/8111*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/8222
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/8222/*
restorecon -Rv /home/wwwroot
(4)监听端口号8111,8222
命令行输入
semanage port -a -t http_port_t -p tcp 8111
semanage port -a -t http_port_t -p tcp 8222
(5)验证
现在就可以重启服务器
sudo systemctl restart httpd
在网站上分别输入
192.168.1.7:8111
192.168.1.7:8222
当然使用域名加端口号也可以进入
好了这一篇就到此为止了。
Centos7 配置DNS服务-第三篇
版权归原作者 是小咩咩呀 所有, 如有侵权,请联系我们删除。