Apache 服务器搭建 Web 网站服务器之前的环境搭建(二)

777 阅读4分钟

实现 Apache 打开软链接功能-禁止显示目录列表-用户认证

当一个目录下没有默认首页时,访问 禁止显示目录列表显示目录的效果:

:Apache实战

[root@xuegod63 ~]# cp -r /boot/grub/ /var/www/html/bbs/
[root@xuegod63 ~]# ll /var/www/html/bbs/
总用量 16
drwxr-xr-x. 2 root root 27 22 2018 grub
-rw-r--r-- 1 root root 26 1119 10:22 index.html
[root@xuegod63 ~]# rm -rf /var/www/html/bbs/index.html
[root@xuegod63 ~]# vim /etc/httpd/conf/httpd.conf
 # Require all granted #取消注释
 <RequireALL> #注释以下 4 行
 Require ip 192.168.1.63
 Require not ip 192.168.1.103
 </RequireALL>

在这里插入图片描述

[root@xuegod63 ~]# systemctl restart httpd

当网站没有默认的首页的时候,直接访问显示网站更目录下的文件夹资源 在这里插入图片描述 注意:以上的操作实际上是恢复了 Apache 的原来配置,Apache 默认为网站目录下可以浏览文件 夹资源。 取消网站目录下浏览文件夹资源 修改配置文件:

[root@xuegod63 ~# vim /etc/httpd/conf/httpd.conf # 修改红色标记内容
改:144 Options Indexes FollowSymLinks
为:144 # Options Indexes FollowSymLinks
[root@xuegod63 ~]# systemctl restart httpd

在这里插入图片描述

通过用户认证的方式,对网站下/usr/local/phpdata/目录进行保护

设置/usr/local/phpdata/目录,只能通过用户名密码方式访问。

[root@xuegod63 ~]# vim /etc/httpd/conf/httpd.conf

#在需要使用用户验证的目录的相关 Directory 段落添加以内容:

Alias /phpdata/ "/usr/local/phpdata /"
<Directory "/usr/local/phpdata /">
Options Indexes FollowSymLinks
AllowOverride None
#Require all granted #注释此行,并加入以下 4 行内容
authtype basic
 authname "my web site"
authuserfile /etc/httpd/conf/passwd.secret
require valid-user
</Directory>

在这里插入图片描述 参数说明: authtype basic

#authtype 命令:指定认证类型为:basic。 authname "my web site "

#AuthName 命令:指定认证区域名称。区域名称是在提示要求认证的对话框中显示给用户的。 authuserfile /etc/httpd/conf/passwd.secret

#AuthUserFile 命令:指定一个包含用户名和密码的文本文件,每行一对。

require 命令 #指定哪些用户或组才能被授权访问。如:require user user1 user2 (只有用户 user1 和user2 可以访问)

require valid-user (在 AuthUserFile 指定的文件中任何用户都可以访问)

利用 Apache 附带的程序 htpasswd,生成包含用户名和密码的文本文

命令格式:htpasswd –cm 存放用户名和密码的文件名 用户名
[root@xuegod63 ~]# htpasswd -cm /etc/httpd/conf/passwd.secret tom
New password: 123456
Re-type new password: 123456
Adding password for user tom

注意: #第一个生成用户名和密码,需要创建文件,因此需要加-c 参数 #第二次创建用户,不能用-c,否则会把前面的用户覆盖了

[root@xuegod63 phpdata]# htpasswd -h #查看参数
-c:创建新文件(Create a new file.)
-m:强制对密码进行 MD5 加密(Force MD5 encryption of the password.)
[root@xuegod63 conf]# htpasswd -m /etc/httpd/conf/passwd.secret bob
New password: 123456
Re-type new password: 123456
Adding password for user bob
[root@xuegod63 conf]# cat /etc/httpd/conf/passwd.secret #查看密码文件内容
tom:$apr1$WJicnaIz$ejqYMmcqukEMsAVEjLcKf.
bob:$apr1$S8pXfxJh$tletPNMKd33WZXqdkSLFy0

测试:

[root@xuegod63 ~]# systemctl restart httpd
http://192.168.1.63/phpdata/

在这里插入图片描述 在这里插入图片描述

Apache 虚拟主机基于-IP-域名-端口三种搭建方式

配置 Apache 虚拟主机,实现在一台服务器上运行多个网站 Apache 虚拟主机实现有三种方法: 1、通过不同的 IP 地址 2、通过不同的域名 3、通过不同的端口号

三种都需要把虚拟主机功能打开: 方法一: 通过不同的 IP 地址,解析不同域名 给服务器增加 IP(另一个域名解析出来的那个 IP)。

[root@xuegod63 ~]# ifconfig ens33:1 192.168.1.62 netmask 255.255.255.0
[root@xuegod63 ~]# echo "bbs.xuegod.cn"> /var/www/html/bbs/index.html
[root@xuegod63 ~]# cd /etc/httpd/conf.d/
创建虚拟主机的配置文件:
[root@xuegod63 conf.d]# vim bbs.conf
<VirtualHost 192.168.1.63:80>
 ServerAdmin webmaster@dummy-host.example.com
 DocumentRoot /var/www/html/
 ServerName dummy-host.example.com
 ErrorLog logs/dummy-host.example.com-error_log
 CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<VirtualHost 192.168.164:80>
 ServerAdmin webmaster@dummy-host.example.com
 DocumentRoot /var/www/html/bbs/
 ServerName dummy-host.example.com
 ErrorLog logs/dummy-host.example.com-error_log
 CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

测试:

[root@xuegod63 conf]# systemctl restart httpd
[root@xuegod63 conf.d]# curl 192.168.1.63
welcome to www.xuegod.cn!
[root@xuegod63 conf.d]# curl 192.168.1.62
bbs.xuegod.cn

方法二: 通过不同域名:(这种访问在企业比较常见,其他两种访问可以了解下即可) 在域名管理后台,修改 DNS 配置,www.xuegod.com 与 bbs.xuegod.com 解析成相同的 IP。

[root@xuegod63 conf.d]# vim bbs.conf
<VirtualHost *:80>
 ServerAdmin webmaster@dummy-host.example.com
 DocumentRoot /var/www/html/
 ServerName www.xuegod.com
 ErrorLog logs/www.xuegod.com-error_log
 CustomLog logs/www.xuegod.com-access_log common
</VirtualHost>
<VirtualHost *:80>
 ServerAdmin webmaster@dummy-host.example.com
 DocumentRoot /var/www/html/bbs/
 ServerName bbs.xuegod.com
 ErrorLog logs/bbs.xuegod.com-error_log
 CustomLog logs/bbs.xuegod.com-access_log common
</VirtualHost>

配置文件修改最终如图下: 在这里插入图片描述

[root@xuegod63 conf.d]# systemctl restart httpd
[root@xuegod63 conf.d]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.63 www.xuegod.com
192.168.1.63 bbs.xuegod.com

测试:

[root@xuegod63 conf.d]# curl www.xuegod.com
welcome to www.xuegod.cn!
[root@xuegod63 conf.d]# curl bbs.xuegod.com
bbs.xuegod.cn

修改本地 Windows 的 hosts 文件,可以实现在浏览器上用域名访问: 在这里插入图片描述 方法 3:基于端口配置虚拟主机: [root@xuegod63 conf.d]# vim /etc/httpd/conf/httpd.conf 42 Listen 80 #在此行下添加监听 81 号端口 43 Listen 81 [root@xuegod63 conf]# vim /etc/httpd/conf.d/bbs.conf 改:8 <VirtualHost *:80> 为:8 <VirtualHost *:81> #此处修改的端口,在 apache 的主配置文件需要有监听端口 #更改为要添加的多个端口 在这里插入图片描述

[root@xuegod63 conf.d]# systemctl restart httpd
[root@xuegod63 conf.d]# curl bbs.xuegod.com:81
bbs.xuegod.cn
[root@xuegod63 conf.d]# curl www.xuegod.com
welcome to www.xuegod.cn!