1.3.1 apache的配置(下)
(1)httpd.conf的配置
使用文字編輯工具(推薦使用Editplus、UltraEdit等工具),開啟httpd.conf。
其中,行首為#的部分為註釋部分,不會被apache伺服器程式進行讀取和執行,沒有#部分為正式配置部分,會被伺服器讀取並執行。
首先為上圖中的“Define SRVROOT "/Apache24"”,此處為伺服器的根目錄,應根據你的實際配置進行修改,前文所述,我們將apache的目錄apache24放置於C盤的根目錄下了,因此,此處應該為為“Define SRVROOT "C:/Apache24"”,如下圖
(約67行),此行數根據apache具體版本不同,可能區別,但順序一致,下同)我們向下閱讀該配置檔案,,有一處
這是配置apache的伺服器監聽埠,按照HTTP協議,預設埠就是80。因此,此處如無特殊需要,不需修改。注意:有關網路協議和埠相關知識,有興趣的讀者可以參考計算機網路相關書籍,這裡不做詳細介紹。
(約190行左右)再向下閱讀此配置檔案,是有關載入哪些動態庫物件部分,此處先安裝預設即可。但是,在動態庫物件最後,我們要加入對php的支援,因為php解析器本身也是一個動態庫物件。
在最後一行“#LoadModule”的後面加入下面的程式碼:
# php7 support LoadModule php7_module "D:/php7/php7apache2_4.dll" AddType application/x-httpd-php .php .html .htm # configure the path to php.ini PHPIniDir "D:/php7"
這裡,我們使用的是php7.4.15(下載地址:https://windows.php.net/download#php-7.4-nts-vc15-x64),該php庫與apache伺服器所依賴的執行庫均為VC15(VS2017),不必重複安裝執行庫。截至目前,php的最高版本為8.0,依賴執行庫為VS2017/2019,讀者們也可以下載使用,配置方法與此相同,這裡的庫檔案和ini路徑按照php實際存放路徑仿照上述填寫即可。
有關php7配置、特性細節,我們下一個小節進行描述。
(約223行左右)再向下看該配置檔案,配置管理員郵箱,apache伺服器遇到錯誤時,會向用戶顯示錯誤頁面,上面會有管理員的郵箱地址,這個地方改為你的郵箱,有助於使用者將錯誤資訊及時通過郵件發給你(當然不改也可以,不影響使用)。
(約232行左右)向下看配置檔案,此處需要配置伺服器名和埠,伺服器名是伺服器識別自身的一個屬性,需要根據實際情況進行配置,如果你前面已經申請了域名,你可以使用域名+埠的形式進行配置,如果沒有域名,需要使用IP地址+埠的形式配置。
(約240行左右)此處開始配置網站目錄,首先,這裡給出了一個全部許可權禁止訪問的目錄配置,而且說明了,你需要在其他目錄明確的寫出該目錄可被訪問的許可權。這是一個安全配置,即先禁用全部,然後按照需要逐個放開許可權,此處無需修改。
(約256行)此處為網站根目錄及其訪問許可權配置,按下圖配置即可。
如果還有其他目錄,比如虛擬主機中另外埠對應其他目錄,對那個目錄也需要按上述方法配置許可權。(不配置許可權也可以在虛擬主機中使用,但可能由於許可權太大,導致不可預料的安全問題。)有關此處配置的詳細詳細,讀者可以參考apache相應文件,此處不再贅述。
(約289行)此處是配置apache伺服器預設執行檔案,即如果使用者直接通過瀏覽器輸入一個路徑,而不指定具體的訪問檔案,apache應該解析該路徑下的哪個檔案呢?
下面兩個配置是客戶端無法顯示*.ht*檔案以及錯誤日誌輸入路徑,按其配置即可(此處注意,如果在虛擬主機配置中配置了錯誤日誌輸出檔案,則此處對虛擬主機無效,按虛擬主機配置執行)。
(約482行之前)這部分配置主要是錯誤級別配置、外部路徑訪問許可權配置、壓縮檔案的支援、錯誤頁面的自定義等,這些保持預設配置即可,並不影響本文所討論的應用。
(約482行)從這裡開始,為apache伺服器增強能力配置,配置這部分內容,需要配合conf/extra/目錄中其他檔案配置。我們在此處需要為配置兩個重要的能力:虛擬主機能力和SSL安全連結能力。(此處不做配置,apache伺服器執行http協議已經沒有問題了)。
虛擬主機主要是解決一個apache伺服器執行多個網站的問題,這些網站(即多個網站空間路徑)可以使用不同埠、不同地址、不同的域名,我們這裡使用的不同的埠。
(約509行)虛擬主機需要增強能力httpd-vhosts的支援,如下圖,將httpd-vhosts開啟。
虛擬主機檔案conf/extra/httpd-vhosts.conf檔案的配置本文下面再做詳細介紹。
(約525行)這裡是這部分要詳細介紹的SSL安全連結增強能力的支援。在微信服務號開發中,尤其是自定義選單的連結,很多時候是需要安全連結的(也就是https連結),因此,這部分是必須要配置的。
請在此處加入下列配置程式碼,完成SSL能力配置,關於conf/extra/httpd-ssl.conf有關設定細節,在本文後面會有詳細描述。
<IfModule ssl_module> Include conf/extra/httpd-ssl.conf SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> <IfModule http2_module> ProtocolsHonorOrder On Protocols h2 h2c http/1.1 </IfModule> <IfModule mod_headers.c> Header set Access-Control-Allow-Origin: "*" Header set Access-Control-Allow-Methods: "GET,POST,PUT,DELETE,OPTIONS" Header set Access-Control-Allow-Headers: "Content-Type" </IfModule>
該檔案最後是關於Fast-CGI的配置,按照預設配置即可,至此,httpd.conf檔案講解和配置完成!
小結:本章詳細描述了httpd.conf檔案的組成和配置過程,之所以描述的如此詳細,就是因為這個檔案太重要了,它是apache伺服器最重要的配置檔案,沒有之一!很多apache伺服器出現問題,甚至安全問題,都與該檔案配置問題相關。本書既然面向0基礎的讀者,有必要對這個檔案進行詳細描述,請讀者務必數量掌握該檔案的配置和重要屬性的意義,後期網站出現問題時,可能需要從此處著手排除問題。
(2)extra/httpd-vhosts.conf的配置
extra/httpd-vhosts.conf是apache伺服器的增強配置,主要用於配置多個網站空間時,虛擬主機的配置方案。要使extra/httpd-vhosts.conf生效,在前文中提及的httpd.conf必須解除Include conf/extra/httpd-vhosts.conf註釋,使其生效。
(如果讀者的網站至執行一個網站空間,則不必接觸Include conf/extra/httpd-vhosts.conf註釋,extra/httpd-vhosts.conf也無需配置也是可以的)
這裡我們看一下extra/httpd-vhosts.conf檔案的具體內容。
上圖中是一個實體伺服器上配置兩個虛擬主機的例子,按照埠(一個是80埠-預設,一個是5094埠-自定義)不同進行分別配置,在每一個虛擬主機中寫明各自的根目錄地址,其他資訊按照實際填寫即可。
(3)extra/httpd-ssl.conf的配置
SSL作為安全連結傳輸協議,在微信服務號設定時,經常需要用到的。我們將網站配置成為SSL連結,有利於增強資料傳輸的安全性,這在敏感資料傳輸時尤為重要。
SSL也是apache伺服器增強功能之一,在extra/httpd-ssl.conf進行配置。配置前,需在httpd.conf中開啟Include conf/extra/httpd-ssl.conf。
我們下面詳細介紹下extra/httpd-ssl.conf。
(約37行)這裡是SSL連結預設的監聽埠,按照協議要求,預設是443埠,這裡無需修改。
(約63行開始)這個配置檔案剩下部分是對SSL虛擬主機的配置,與上一個部分虛擬主機的配置相同,根目錄、主機名稱、錯誤日誌、執行日誌的路徑是需要配置的,如下
(約74行)開啟SSL引擎。
以上配置結束後,其餘預設配置即可,你的https網站就可以訪問了,但訪問時瀏覽器會出現下列提示:
從英文的錯誤可以看出,是無效的授權證書錯誤,因此,我們必須還要配置正確的證書。
證書的獲取,可以從騰訊雲控制檯來獲取,具體為“雲產品”中,“域名與網站”中選擇“SSL證書”。
在“SSL證書”介面選擇切換到“我的證書”,選擇“申請免費證書”。
下面是最重要的三個檔案路徑的配置,這
彈出的介面中,選擇預設的“亞洲誠信”的免費證書即可,然後點選確定。
分步驟填寫必要的資訊。
驗證成功後,在“我的證書”介面,可以檢視已申請完成的證書。
點選已經申請完成的證書後面的“下載”將證書下載至本地。下載至本地的檔案是一個以網站域名命名的zip壓縮檔案,將該檔案解壓後得到1個文字檔案和4個資料夾,我們用的是apache伺服器,所以我們要使用apache資料夾下的3個證書相關檔案進行部署。
將這3個檔案放置於伺服器中的某個檔案路徑下,如放置於“C:/MyPHPSite/conf-on1BsW6mX0d/”路徑(路徑名由讀者自定義,在配置檔案下一致即可)下,
則
(約94行)將SSL證書檔案的路徑寫成
(約104行)將SSL金鑰檔案的路徑寫成
(約116行)將CA認證檔案的路徑寫成
最後,對網站路徑訪問許可權進行配置
(約182行)
此處配置與前述httpd.conf中相應配置相同,請參考本文上述內容。
該配置檔案其餘部分,從其預設配置即可,至此,檔案配置完成。
上述檔案配置完成後,在伺服器端瀏覽器中,輸入http://127.0.0.1或 https://127.0.0.1 可以訪問C:\MyPHPSite\ 下的網頁index.php。
本章小結:請熟練掌握apache的配置檔案和配置方法,尤其是根目錄、訪問許可權、虛擬主機、安全連結等的定義和配置技巧,從某種程度上來講,這並不比編寫程式要簡單。我們不但要會使用工具,我們也要熟悉我們的工具,常見的工具問題,我們應能及時排除,這就是我們花很大篇幅來介紹apache相關配置的意義所