☛安裝必要套件。

Apache 伺服器在 CentOS 中的套件名稱是 httpd,主機應先安裝以下兩個套件:

① httpd。

Apache 伺服器主要套件,提供主要的設定檔、模組、執行檔等。

② httpd-tools。

權限驗證的帳號密碼工具。

利用 rpm 指令檢查以上套件是否已安裝,若已安裝則應顯示二個套件:

[root@localhost ~ ]# rpm -qa | grep httpd
httpd-2.4.6-45.el7.centos.x86_64
httpd-tools-2.4.6-45.el7.centos.x86_64

若無上述套件,以 yum 指令安裝:

[root@localhost ~ ]# yum -y install httpd httpd-tools

httpd 套件有幾個重要的目錄與檔案,針對伺服器管理工作有關的檔案與其功能,描述如下:

① 主目錄 /etc/httpd

apache 主要安裝目錄,目錄下有設定檔目錄 conf/ 、記錄檔目錄等,實際放置的目錄並不一定在此目錄下,像記錄檔目錄 logs/ 是個連結,實際記錄檔目錄是 /var/log/httpd/ 。

② 設定檔 /etc/httpd/conf/httpd.conf

apache 的主要設定檔,所有和伺服器運作有關的設定值都放在這個文字檔中。

③ 附加設定檔放置目錄 /etc/httpd/conf.d/

除了主設定檔 httpd.conf 之外,此目錄下副檔名為 .conf 的設定檔的內容都會被引入主設定檔,這個設計強化了設定檔的模組化,不用在主設定檔的眾多設定值中搜尋,反之可以更容易找到相關功能的設定值。

④ 記錄檔 /etc/http/logs/

此目錄是一個連結, 儲存 apache 的記錄檔 ( 日誌 log ) ,實際存放位置是 /var/log/httpd/ 目錄,主要紀錄檔有存取記錄 access_log 與錯誤記錄檔 error_log 。

⑤ 模組目錄 /etc/httpd/modules/

編譯好的模組檔會放在 modules 目錄下,當 apache 啟動時,會依照設定檔 ( httpd.conf ) 的 LoadModule 指令將這目錄下的模組載入至 apache 中,並提供模組特定的功能 。

⑥ 網頁根目錄 /var/www/html/

網頁檔案放置目錄,此目錄下的檔案與目錄會對應為公開網址上的根目錄。

☛ 啟動 Apache

Apache 安裝完成後,會將其服務執行程式放在 /usr/sbin/ 中,成為系統的服務之一,服務名稱為 httpd 。 雖然已經放置服務程式了,但系統在開機時並不會自動啟動 httpd 服務,因此,除啟動服務外,也要利用 systemctl 指令設定系統開機時,自動啟動 httpd 。

利用 systemctl 指令啟動 httpd 服務:

[root@localhost ~ ]# systemctl start httpd.service

系統設定開機時啟動 httpd 服務:

[root@localhost ~]# systemctl enable httpd.service
ln -s '/usr/lib/systemed/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

☛ 防火牆允許網頁伺服器通過

CentOS 安裝完成後預設是開啟防火牆功能,且只允許 SSH 連線 ( TCP , port 22 ) 進入主機,要讓外部電腦使用瀏覽器可連入主機,要先將防火牆功能關閉,或者保留防火牆啟用但自訂讓網頁連線限制通過。

[root@localhost ~ ]# firewall-cmd --add-service=http --permanent
success
[root@localhost ~ ]# firewall-cmd --reload
success

關閉 SELinux 有關使用者家目錄網頁伺服器的存取限制:

setsebool -P httpd_enable_homedirs=1

☛ 伺服器的行程限制

CentOS 7 開始即使用 Apache 2.4 版為它的預設網頁伺服器套件,在其設定檔中並未設定這些有關伺服器調校的設定值,可在 /etc/httpd/conf.modules.d/00-mpm.conf 檔的最後加入設定。 伺服器調校設定參考如下:

<IfModule mpm_prefork_module>
   StartServers            8
   MinSpareServers         5
   MaxSpareServers        20
   ServerLimit           256
   MaxClients            256
   MaxRequestsPerChild  4000
</IfModule>

說明:

當伺服器啟動時產生 8 個行程來服務,服務過程中,最少保持 5 個行程,最多不超過 20 個行程。 伺服器在同一時間最多服務 256 個使用者連線要求,由使用者端衍生出的最高總要求數為 4000 個要求。

變更設定檔後,需重新啟動 httpd 服務:

[root@localhost ~ ]# systemctl restart httpd