更多技術(shù)干貨盡在公眾號(hào)【學(xué)神來(lái)啦】铅乡!
實(shí)現(xiàn) Apache 打開(kāi)軟鏈接功能-禁止顯示目錄列表-用戶(hù)認(rèn)證
當(dāng)一個(gè)目錄下沒(méi)有默認(rèn)首頁(yè)時(shí)续崖,訪(fǎng)問(wèn) http://192.168.1.63/phpdata/禁止顯示目錄列表顯示目錄的效果:
[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 2 月 2 2018 grub
-rw-r--r-- 1 root root 26 11 月 19 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
當(dāng)網(wǎng)站沒(méi)有默認(rèn)的首頁(yè)的時(shí)候畅卓,直接訪(fǎng)問(wèn)顯示網(wǎng)站更目錄下的文件夾資源
注意:以上的操作實(shí)際上是恢復(fù)了 Apache 的原來(lái)配置吮铭,Apache 默認(rèn)為網(wǎng)站目錄下可以瀏覽文件
夾資源谴咸。
取消網(wǎng)站目錄下瀏覽文件夾資源
修改配置文件:
[root@xuegod63 ~# vim /etc/httpd/conf/httpd.conf # 修改紅色標(biāo)記內(nèi)容
改:144 Options Indexes FollowSymLinks
為:144 # Options Indexes FollowSymLinks
[root@xuegod63 ~]# systemctl restart httpd
通過(guò)用戶(hù)認(rèn)證的方式栅表,對(duì)網(wǎng)站下/usr/local/phpdata/目錄進(jìn)行保護(hù)
設(shè)置/usr/local/phpdata/目錄旁钧,只能通過(guò)用戶(hù)名密碼方式訪(fǎng)問(wèn)吸重。
[root@xuegod63 ~]# vim /etc/httpd/conf/httpd.conf
在需要使用用戶(hù)驗(yàn)證的目錄的相關(guān) Directory 段落添加以?xún)?nèi)容:
Alias /phpdata/ "/usr/local/phpdata /"
<Directory "/usr/local/phpdata /">
Options Indexes FollowSymLinks
AllowOverride None
#Require all granted #注釋此行,并加入以下 4 行內(nèi)容
authtype basic
authname "my web site"
authuserfile /etc/httpd/conf/passwd.secret
require valid-user
</Directory>
參數(shù)說(shuō)明:
authtype basic
authtype 命令:指定認(rèn)證類(lèi)型為:basic歪今。
authname "my web site "
AuthName 命令:指定認(rèn)證區(qū)域名稱(chēng)嚎幸。區(qū)域名稱(chēng)是在提示要求認(rèn)證的對(duì)話(huà)框中顯示給用戶(hù)的。
authuserfile /etc/httpd/conf/passwd.secret
AuthUserFile 命令:指定一個(gè)包含用戶(hù)名和密碼的文本文件寄猩,每行一對(duì)鞭铆。
require 命令
指定哪些用戶(hù)或組才能被授權(quán)訪(fǎng)問(wèn)。如:require user user1 user2 (只有用戶(hù) user1 和user2 可以訪(fǎng)問(wèn))
require valid-user (在 AuthUserFile 指定的文件中任何用戶(hù)都可以訪(fǎng)問(wèn))
利用 Apache 附帶的程序 htpasswd焦影,生成包含用戶(hù)名和密碼的文本文
命令格式:htpasswd –cm 存放用戶(hù)名和密碼的文件名 用戶(hù)名
[root@xuegod63 ~]# htpasswd -cm /etc/httpd/conf/passwd.secret tom
New password: 123456
Re-type new password: 123456
Adding password for user tom
注意:
第一個(gè)生成用戶(hù)名和密碼车遂,需要?jiǎng)?chuàng)建文件,因此需要加-c 參數(shù)
第二次創(chuàng)建用戶(hù)斯辰,不能用-c舶担,否則會(huì)把前面的用戶(hù)覆蓋了
[root@xuegod63 phpdata]# htpasswd -h #查看參數(shù)
-c:創(chuàng)建新文件(Create a new file.)
-m:強(qiáng)制對(duì)密碼進(jìn)行 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 #查看密碼文件內(nèi)容
tom:$apr1$WJicnaIz$ejqYMmcqukEMsAVEjLcKf.
bob:$apr1$S8pXfxJh$tletPNMKd33WZXqdkSLFy0
測(cè)試:
[root@xuegod63 ~]# systemctl restart httpd
http://192.168.1.63/phpdata/
Apache 虛擬主機(jī)基于-IP-域名-端口三種搭建方式
配置 Apache 虛擬主機(jī),實(shí)現(xiàn)在一臺(tái)服務(wù)器上運(yùn)行多個(gè)網(wǎng)站
Apache 虛擬主機(jī)實(shí)現(xiàn)有三種方法:
1彬呻、通過(guò)不同的 IP 地址
2衣陶、通過(guò)不同的域名
3、通過(guò)不同的端口號(hào)
三種都需要把虛擬主機(jī)功能打開(kāi):
方法一:
通過(guò)不同的 IP 地址闸氮,解析不同域名
給服務(wù)器增加 IP(另一個(gè)域名解析出來(lái)的那個(gè) 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/
創(chuàng)建虛擬主機(jī)的配置文件:
[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>
測(cè)試:
[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
方法二:
通過(guò)不同域名:(這種訪(fǎng)問(wèn)在企業(yè)比較常見(jiàn),其他兩種訪(fǎng)問(wèn)可以了解下即可)
在域名管理后臺(tái),修改 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
測(cè)試:
[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 文件,可以實(shí)現(xiàn)在瀏覽器上用域名訪(fǎng)問(wèn):
方法 3:基于端口配置虛擬主機(jī):
[root@xuegod63 conf.d]# vim /etc/httpd/conf/httpd.conf
42 Listen 80 #在此行下添加監(jiān)聽(tīng) 81 號(hào)端口
43 Listen 81
[root@xuegod63 conf]# vim /etc/httpd/conf.d/bbs.conf
改:8 <VirtualHost *:80>
為:8 <VirtualHost *:81> #此處修改的端口,在 apache 的主配置文件需要有監(jiān)聽(tīng)端口
更改為要添加的多個(gè)端口
[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!