一、Apache默認(rèn)登錄用戶是daemon,如何修改登錄用戶?

新建一個(gè)用戶Zhangsan和一個(gè)組httpd,修改httpd主配置文件。我是存放在/usr/local/apache2/conf/http.conf的。

將User daemon改為User ZhangSan
Group daemon改為Group httpd

重啟httpd,查看進(jìn)程用戶

二、加密
為網(wǎng)站設(shè)置加密,需提供賬號(hào)和密碼才能訪問(wèn)
修改httpd主配置文件。
vim?/usr/local/apache2/conf/http.conf
將AllowOverride none改為AllowOverride all
將Require all denied改為Require all granted


然后在htdocs目錄下新建隱藏配置文件.htaccess
cd /usr/local/apache2/htdocs
vim .htaccess ?//內(nèi)容如下

重啟httpd,然后用htpasswd(可以先用whereis htpasswd查看一下命令所在目錄,直接用絕對(duì)路徑,這樣不會(huì)出現(xiàn)命令找不到的問(wèn)題)命令生成上圖中的/usr/local/apache2/bin/a.psd文件
/usr/local/apache2/bin/apachectl restart ?//重啟httpd
/usr/local/apache2/bin/htpasswd -c /usr/local/apache2/bin/a.psd web //生成web用戶,并為其設(shè)置密碼
進(jìn)瀏覽器訪問(wèn),發(fā)現(xiàn)是需要賬號(hào)密碼登錄的了
如果想要去掉加密功能,可以直接將配置文件里的AllowOverride設(shè)為none
三、本機(jī)開(kāi)啟httpd服務(wù)后,局域網(wǎng)內(nèi)其他用戶不能訪問(wèn)網(wǎng)站
經(jīng)查是防火墻的原因
重新設(shè)置防火墻


重啟防火墻

成功
四、限制訪問(wèn)網(wǎng)站的客戶機(jī)地址
修改主配置文件
將Require all granted修改為
<requireall>
? ? Require all granted
? ? ? ? require ip 192.168.252.128 ?//設(shè)置此網(wǎng)站只能被192.168.252.128訪問(wèn),如果設(shè)置這個(gè)地址不能訪問(wèn),則在前面加not
</requireall>
按照上面的設(shè)置后,我再用本機(jī)訪問(wèn)網(wǎng)站地址,被拒絕了,用搭建這個(gè)網(wǎng)站的虛擬機(jī)來(lái)訪問(wèn)是可以的。


五、首頁(yè)文件缺失
首頁(yè)文件在主配置文件的設(shè)置模塊為
<IfModule dir_module>
? ? DirectoryIndex index.html
</IfModule>
如果首頁(yè)文件index.html被刪除的話,訪問(wèn)網(wǎng)站會(huì)直接顯示出網(wǎng)站上的其他文件,方便但是可能不太安全。

如果想要關(guān)閉這個(gè)功能,在首頁(yè)文件缺失的時(shí)候不暴露內(nèi)容,
用參數(shù)Options Index FollowSynlinks來(lái)控制,修改主配置文件。去掉Indexes參數(shù)

重新進(jìn)網(wǎng)站,已經(jīng)不會(huì)顯示其他文件了。

六、vhosts實(shí)現(xiàn)虛擬主機(jī)訪問(wèn)
vhosts功能開(kāi)關(guān)在主配置文件中,所以先修改主配置文件,使得httpd-vhosts.conf文件生效,在httpd-vhosts.conf文件中配置虛擬機(jī)信息,然后配置主機(jī)的hosts,重啟httpd,使配置生效。

vim /usr/local/apache2/conf/httpd.conf ? //修改主配置文件

?vim /usr/local/apache2/conf/extra/httpd-vhosts.conf ? //配置虛擬主機(jī)信息

vim /etc/hosts ?//修改hosts

為兩個(gè)虛擬主機(jī)添加首頁(yè)文件。

重啟httpd服務(wù)后,成功


七、本機(jī)可以訪問(wèn)虛擬主機(jī)域名,局域網(wǎng)內(nèi)其他用戶不可以
分析:
????設(shè)定虛擬主機(jī)后,發(fā)現(xiàn)只能在本機(jī)輸入域名訪問(wèn)才有效,在局域網(wǎng)內(nèi)的其他用戶都是無(wú)效的,仍然只能通過(guò)訪問(wèn)ip來(lái)進(jìn)行。這個(gè)問(wèn)題困擾了我好久,通過(guò)修改防火墻和vhosts配置問(wèn)價(jià)多次仍不得要領(lǐng)。所以仔細(xì)把ip和域名的關(guān)系縷了一遍,終于給我找到了問(wèn)題。因?yàn)槲覄倓傇诒緳C(jī)上的hosts文件添加了ip和域名的對(duì)應(yīng)關(guān)系,所以本機(jī)輸入域名是可以找到ip,并進(jìn)行解析的。但是在局域網(wǎng)內(nèi)的其他主機(jī)上并沒(méi)有這個(gè)對(duì)應(yīng)關(guān)系,所以我在windows系統(tǒng)的hosts文件中增加了對(duì)應(yīng)關(guān)系。windows系統(tǒng)的hosts文件存在這里:


成功!
八、設(shè)置網(wǎng)頁(yè)文件存放目錄
Apache的網(wǎng)頁(yè)文件存放目錄默認(rèn)為htdocs,在主配置文件中修改目錄權(quán)限。
[root@www htdocs]# vim /usr/local/apache2/conf/httpd.conf
? ??DocumentRoot "/usr/local/apache2/htdocs"
????<Directory "/usr/local/apache2/htdocs">
????Options Indexes FollowSymLinks? ? ? ? ? //Options指令通知Apache禁止使用目錄索引,F(xiàn)ollowSymLinks表示不允許使用符號(hào)鏈接
????AllowOverride None? ? ? ? ? //禁止用戶對(duì)目錄配置文件(.htaccess)進(jìn)行重載 (修改)
????Order deny,allow? ? ? ? ? //更改訪問(wèn)權(quán)限的優(yōu)先順序,禁止默認(rèn)訪問(wèn)的存在
????Allow from all?
</Directory>
