1. 程式人生 > >lLinux學習筆記之apache及論壇的釋出

lLinux學習筆記之apache及論壇的釋出

    Apache HTTP Server(簡稱Apache)是Apache軟體基金會的一個開放原始碼的網頁伺服器,可以在大多數計算機作業系統中執行,由於其多平臺和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。它快速、可靠並且可通過簡單的API擴充套件,將Perl/Python等直譯器編譯到伺服器中。
    Apache HTTP伺服器是一個模組化的伺服器,源於NCSAhttpd伺服器,經過多次修改,成為世界使用排名第一的Web伺服器軟體。一: apache的基礎資訊

**主配置目錄:/etc/httpd/conf

主配置檔案:/etc/httpd/conf/httpd.conf

子配置目錄:/etc/httpd/conf.d

子配置檔案:/etc/httpd/conf.d/*.conf

以上這些配置檔案的名字可以通過"rpm -qc httpd"檢視

預設偵聽埠:80

預設釋出頁:/var/www/html/index.html

預設釋出目錄:/var/www/html

預設安全上下文:httpd_sys_content_t

程式開啟預設使用者:apache**

二:apache的配置
1,安裝及設定開機自啟動
yum install -y httpd 安裝
systemctl start hpptd 啟動
systemctl enable httpd 設定開機自動啟動
2,新增防火牆信任
1)命令方式
firewall-cmd --permanet --add-service=http
firewall-cmd --permanet --add-service=https
firewall-cmd --reload 重新載入,使配置生效
2)圖形方式
輸入firewall-config命令,進入防火牆配置的圖形化介面,進行配置
配置過程:Configuration選擇為permanent;在Zones的區域選擇public;在Services的區域選擇http,https;Options選擇Reload Firewalld。
lLinux學習筆記之apache及論壇的釋出


用firewall-cmd --list-all檢視是否新增成功
lLinux學習筆記之apache及論壇的釋出
3,httpd的幫助手冊
httpd的幫助手冊在下載服務時並不會自動下載,須手動安裝,並只能在瀏覽器中檢視
輸入yum install httpd-manual -y命令,下載完成後重啟httpd服務,在瀏覽器中輸入IP/manual即可檢視
lLinux學習筆記之apache及論壇的釋出
若想用中文方式檢視,選擇zh-cn即可
4,httpd服務的預設埠及修改
httpd服務的預設偵聽埠是80。
輸入netstat -antulpe | grep httpd命令檢視httpd的偵聽埠。
lLinux學習筆記之apache及論壇的釋出
編輯etc/httpd/conf/httpd.conf配置檔案中第42行,將80改為8080,重啟服務後修改生效
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
但是此時在瀏覽器中輸入:IP:8080是看不到預設釋出頁內容的。這是因為防火牆允許通過的httpd服務的埠是
80。 此時,就需要對防火牆進行配置
firwall-cmd --permanet --add-port=8080/tcp 新增8080埠
firewall-cmd --reload 重新載入防火牆配置
此時在瀏覽器中輸入:IP:8080是可以看到預設釋出頁的內容。
lLinux學習筆記之apache及論壇的釋出

重複上面的編輯步驟,將偵聽埠改為6666,此時發現,httpd服務重啟失敗。這是因為防火牆添加了6666埠,但是selinux並不允許httpd服務的6666埠通過。
輸入semanage port -a -t http_port_t -p tcp 6666命令,王selinux中新增httpd的6666埠
lLinux學習筆記之apache及論壇的釋出
測試,在瀏覽器中輸入ip:6666
lLinux學習筆記之apache及論壇的釋出
5,httpd服務的預設釋出檔案及目錄的修改
1)httpd服務的預設釋出檔案修改

httpd服務的預設釋出頁為"/var/www/html/index.html",剛開始這個檔案是不存在的。
例如在目錄"/var/www/html/"下的"index.html"寫入下圖所示內容。在瀏覽器中輸入IP就可以看見該內容。
lLinux學習筆記之apache及論壇的釋出(其中<h1><h1>為字型大小)
lLinux學習筆記之apache及論壇的釋出
在檔案"/etc/httpd/conf/httpd.conf"中的第164行,可以更改預設釋出頁,如下圖所示,將預設釋出頁改
為"xin.html"(有先後順序),如果"xin.html"不存在,就訪問"index.html"。之後重啟服務
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
vim /var/www/html/we.html 在檔案中編輯內容
lLinux學習筆記之apache及論壇的釋出
完成後重啟服務。在瀏覽器中輸入IP測試
lLinux學習筆記之apache及論壇的釋出
2)httpd預設釋出目錄的修改
httpd服務的預設釋出目錄是"/var/www/html"。
修改httpd服務的預設釋出目錄
1)"mkdir /xin/www/html -p"。建立一個目錄作為預設釋出目錄。
lLinux學習筆記之apache及論壇的釋出
2)"vim /xin/www/html/xin.html"。在檔案"xin.html"中寫入下圖所示內容
lLinux學習筆記之apache及論壇的釋出
3)"vim /etc/httpd/conf/httpd.conf"。在配置檔案中編輯如下內容,將119行註釋,如下圖第120行至第123行所示:
lLinux學習筆記之apache及論壇的釋出
4) 輸入semanage fcontext -a -t httpd_sys_content_t '/xin(/.*)?'命令修改"/xin"目錄中所有內容的安全上下文,並
通過"restorecon -RvvF /xin"重新整理生效。(也可以設定selinux為警告或關閉模式)
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
配置完成後重啟服務,在瀏覽器當中輸入IP,就可以看見(4)中編輯的檔案內容。
lLinux學習筆記之apache及論壇的釋出
三:apache的虛擬主機及配置
1)"mkdir /var/www/xin.com/news/html 建立虛擬釋出目錄
2)vim /var/www/xin.com/news/html/index.html 編輯news.xin.com"的釋出頁
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
3)進入/etc/httpd/conf.d這個目錄,輸入vim default.conf命令,編輯預設釋出頁的檔案
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
輸入vim news.conf編輯"news.xin.com"的檔案
lLinux學習筆記之apache及論壇的釋出
重啟服務,在測試主機上新增解析,並進行測試
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
在瀏覽器中測試
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
四,apache內部的訪問控制
基於ip的訪問控制
1,如果有apache服務的主機,可以在/etc/httpd/conf.d目錄下的檔案default.conf中進行編輯。編輯內容如下,重啟服務後生效。
編輯的內容有兩種:
方法1:通過ip控制訪問
1)lLinux學習筆記之apache及論壇的釋出
"Order Allow,Deny"表示開啟允許或者禁止訪問功能,且哪個在前哪個先生效,此處"Allow"先生效。"Allow from all"表示允許所有使用者訪問。"Deny from 172.25.254.183"表示禁止IP為"172.25.254.183"的使用者訪問。根據上述前後順序,則IP 為"172.25.254.183"的使用者不可以訪問。news.conf,music.conf檔案的訪問控制同理。
2)lLinux學習筆記之apache及論壇的釋出
"Order Deny,Allow",此處"Deny"先生效。"Deny from all"表示禁止所有使用者訪問。"Allow from 172.25.254.183"表示允許IP為"172.25.254.183"的使用者訪問。根據上述前後順序,則只有IP 為"172.25.254.183"的使用者可以訪問。
方法二:通過認證使用者名稱密碼進行控制
輸入vim /etc/httpd/conf.d/default.conf 命令,進入編輯內容如下:
lLinux學習筆記之apache及論壇的釋出
news檔案的訪問控制同理
如果沒有apache服務的主機,
通過編輯配置檔案"etc/httpd/conf/httpd.conf",可以設定禁止或允許一些使用者訪問。在120行-124行編輯,編輯內容同上
編輯檔案完成後,重啟服務
2,測試
對方法1的1)進行測試:在是172.25.254.183主機上訪問(172.25.254.183不能訪問)
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
連線成功,但是並不能看到檔案中的內容
對方法2的2)進行測試:在不是172.25.254.183主機上訪問(只有172.25.254.183可以訪問)
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
同樣,連線成功,但是並不能看到檔案中的內容
對方法二測試:
新增使用者名稱並設定密碼
lLinux學習筆記之apache及論壇的釋出
在瀏覽器中輸入ip
lLinux學習筆記之apache及論壇的釋出
顯示輸入使用者名稱和密碼,輸入正確的使用者名稱和密碼之後,可以看到檔案中的內容
五:apache支援的語言
1.html語言(一般以".html"結尾),apache預設支援該語言。
2.php語言(一般以".php結尾")。
要使apache支援php語言,步驟如下:
1)首先安裝php
lLinux學習筆記之apache及論壇的釋出
2)"vim /var/www/html/index.php",編寫index.php檔案
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
3)重啟服務,並在瀏覽器輸入IP/index.php進行測試
lLinux學習筆記之apache及論壇的釋出
3.cgi語言(通用網管介面,處理表單,比如說註冊時的表單)(一般以".cgi"結尾),其實是一種perl語言,apache也是預設支援此語言的。
在預設釋出目錄(/var/www/cgi-bin)下:
1)"vim index.cgi",編寫index.cgi指令碼檔案(該指令碼檔案的來源:apache的幫助手冊),該檔案的名字任意給定。
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
2)"chmod +x index.cgi",給改指令碼檔案新增可執行的許可權
lLinux學習筆記之apache及論壇的釋出

3)重啟服務,輸入IP/cgi-bin/index.cgi進行測試
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
在非預設釋出目錄下:
(1)"mkdir /var/www/html/cgi -p",建立/var/www/html/cgi目錄
lLinux學習筆記之apache及論壇的釋出
(2)在"/var/www/html/cgi"目錄裡
lLinux學習筆記之apache及論壇的釋出
"vim index.cgi",編輯cgi的指令碼檔案

(3)"chmod +x index.cgi",給指令碼檔案增加可執行的許可權
lLinux學習筆記之apache及論壇的釋出
(4)"semanage fcontext -a -t httpd_sys_script_exec_t /var/www/html/cgi(/.*)?",修改/var/www/html/cgi目錄本身,及其內部內容的安全上下文
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
此時重啟服務進行測試,發現,顯示出來的不是該指令碼檔案執行出來的結果,而是該指令碼檔案本身,這是因為,網頁不認識這些指令碼檔案,所以需要編輯配置檔案,
5)編輯配置檔案:
如果配置了apache的虛擬主機
在"/etc/httpd/conf.d"目錄下的default.conf檔案的中,編輯如下內容
lLinux學習筆記之apache及論壇的釋出
如果沒有apache服務的虛擬主機,在etc/httpd/conf/httpd.conf檔案中進行編輯,在120-123行進行編輯,編輯內容如下
lLinux學習筆記之apache及論壇的釋出
6)編輯完成,重啟服務後在瀏覽器中輸入ip/cgi/index.cgi進行測試
注意:如果釋出檔案不在預設釋出目錄中,需要修改安全上下文或者將xelinux設定為警告模式或關閉
4.python語言(python指令碼語言需要網路伺服器閘道器介面即WSGI)
1)"yum search wsgi","yum install mod_wsgi"。安裝支援wsgi的軟體
lLinux學習筆記之apache及論壇的釋出
2)"vim /var/www/cgi-bin/webapp.wsgi"。編輯指令碼檔案
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
3)"chmod +x /webapp.wsgi"。給該指令碼檔案增加可執行的許可權,
lLinux學習筆記之apache及論壇的釋出
因為該目錄不是python語言的預設釋出目錄,所以要編輯配置檔案,新增信任,並修改安全上下文或將selinux設定為警告模式或者關閉selinux。

4)在"/etc/httpd/conf.d"目錄下編輯"webapp.conf"檔案
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
重啟服務,在客戶主機上編寫本地解析檔案,在瀏覽器,輸入webapp.xin.com進行測試。
lLinux學習筆記之apache及論壇的釋出
六,apache的加密訪問(https)
https是http的安全版,常用於密碼登陸等頁面,實現客戶端和服務端之間的資料的加密傳輸。https的配置步驟如下所示:
1)"yum install mod_ssl.x86_64 -y"。下載加密模組ssl。
lLinux學習筆記之apache及論壇的釋出
2)"yum install crypto-utils.x86_64 -y"。安裝認證證書和key的生成軟體。
lLinux學習筆記之apache及論壇的釋出
3)設定防火牆策略允許https(前面的實驗,已經做過這一步),https的預設埠為443(通過/etc/httpd/conf.d/ssl.conf檢視)
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
4)輸入命令genkey www.xin.com,為www.xin.com生成證書和key,其生成為圖形介面,步驟如下圖所示。
lLinux學習筆記之apache及論壇的釋出
進入介面,提示證書和key的存放位置,點選next。
lLinux學習筆記之apache及論壇的釋出
進入選擇加密長度介面。選定後點擊next。
lLinux學習筆記之apache及論壇的釋出
進入檔案檢查介面
lLinux學習筆記之apache及論壇的釋出
完成後進入key生成介面,需要在另外一個shell上隨便輸入一些東西,可加速key生成
lLinux學習筆記之apache及論壇的釋出
完成後進入如下介面,點選no,因為yes是需要錢的,是官方認證,如果是企業需要,則點選yes
lLinux學習筆記之apache及論壇的釋出
完成後進入如下介面,直接點選next
lLinux學習筆記之apache及論壇的釋出
完成後進入如下介面,輸入認證證書的資訊。完成後點選next。
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
5)"vim /etc/httpd/conf.d/ssl.conf"。編輯配置檔案,配置內容如下,輸入生成的證書和key所在的檔案位置。如圖第100行和第107行所示:
lLinux學習筆記之apache及論壇的釋出
6)加密頁的配置已經完成,重啟服務後生效。在瀏覽器中輸入https:172.25.254.183測試,
lLinux學習筆記之apache及論壇的釋出
點選Confirm Security Exception,檢視網頁資訊
點選View檢視證書資訊
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
點選鎖的樣式,檢視證書資訊
檢視該認證證書,和之前設定證書時輸入的一樣
lLinux學習筆記之apache及論壇的釋出
七,設定https虛擬主機並設定網頁重寫
上述配置完成後在訪問網頁時需要輸入"https",顯然這是不合理的,需要在訪問域名時直接跳轉至https頁面。還需要做如下配置:
1)"mkdir /var/www/xin.com/login/html -p"。建立一個虛擬釋出目錄。
lLinux學習筆記之apache及論壇的釋出
2)"vim /var/www/xin.com/login/html/index.html"。配置虛擬釋出頁,內容如下圖所示。
lLinux學習筆記之apache及論壇的釋出
3)"vim /etc/httpd/conf.d/login.conf"。配置虛擬釋出頁的檔案。內容如下,如圖所示:
lLinux學習筆記之apache及論壇的釋出
其中第2行,第6行和第7行摘自(/etc/httpd/conf.d/ssl.conf檔案)
第14,15行摘自apache的幫助手冊
lLinux學習筆記之apache及論壇的釋出
其中":443"表示將埠改為443。"SSLEngine on"表示加密開啟,在後面輸入證書和key的位置。"RewriteEngine on"表示,重寫功能開啟。"RewriteRule ^(/.)$ https://%{HTTP_HOST}$1 [redirect=301]"表示重寫規則,"^(/.)$"是客戶端上輸入的字元,"%{HTTP_HOST}"表示客戶請求主機,"$1"表示在這裡代表"^(/.)$","redirect=301",表示重定向等級是永久重定向,如果是302表示臨時重定向。
4)重啟服務生效後,測試時,在客戶主機的"/etc/hosts"本地解析檔案中加入"login.xin.com",在瀏覽器中輸入"login.xin.com"測試

可以看出,網頁自https://login.126.com 獲取認證證書後即可看到頁面內容。
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出
lLinux學習筆記之apache及論壇的釋出