在網絡環境中,web 服務無疑是最爲流行的應用系統。有了 web 站點,企業能夠充分展現本身的做品,宣傳企業形象。web 站點還爲企業提供了與客戶交流、電子商務交易平臺等豐富的網絡應用。
Apache HTTP Server 是 ASF 旗下著名的軟件項目,其正式名稱是「httpd」,也就是歷史上的 Apache 網站服務器。
那咱們爲何不選擇使用系統盤中的httpd服務呢,由於系統盤中的httpd不方便更新,麻煩。
Apache 的話不論是卸載仍是更新新版本,都很方便。
Apache 的主要特色:
一、開放源代碼
二、跨平臺使用
三、支持各類 Web 編程語言
四、模塊化設計
五、運行穩定
六、良好的安全性
下面是Apache 的源碼編譯安裝包,須要能夠下載,也可自行從網頁上下載:
https://pan.baidu.com/s/1LFabNY2sbFqnPI1lluuV2w
提取碼:olpz html
接下來咱們就能夠來安裝 httpd 服務了
準備工做:node
爲了不發生端口衝突、程序衝突等現象,咱們可使用: rpm -qa | grep httpd (查詢系統中的httpd) 若是有的話 ,使用 :rpm -e httpd --nodeps (nodeps:不檢測依賴關係)
Apache 的配置及運行須要幾個軟件包的支持,所以咱們須要從系統光盤中預先安裝這些軟件及其開發包(devel) 以便提供相應的庫和頭文件。
依賴包都安裝完畢後,咱們將下載得到的 httpd 源碼包解壓並釋放到 /usr/src 中,而後切換到源碼目錄中:web
[root@localhost tmp]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/ #-C 指定解壓到的位置
配置:
根據服務器的實際應用須要,能夠靈活設置不一樣的定製選項(須要的話能夠執行 「./configure --help 獲取」)shell
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --prefix:指定將 httpd 服務程序安裝到那個目錄下 --enable-so:啓用動態加載模塊支持 --enable-rewrite:啓用網頁地址重寫功能 --enable-charset-lite:啓動字符集支持 --enable-cgi:啓用 CGI 腳本程序支持
接下來,編譯及安裝:apache
[root@localhost httpd-2.4.25]# make && make install & make :進行編譯,將源代碼轉換爲可執行的程序 & make install :將編譯完的 httpd 程序及相關目錄、文件複製到預設的安裝目錄(--prefix 選項指定)
確認安裝結果:[root@localhost /]# /usr/local/httpd/bin/apachectl start # 執行此命令啓動服務
啓動以後能夠執行此命令查看 tcp 的80端口有沒有啓用:編程
[root@localhost /]# netstat -anpt | grep 80 tcp6 0 0 :::80 :::* LISTEN 20412/httpd
經過源碼編譯安裝的 httpd 服務,程序路徑並不在默認的搜索路徑中,執行起來比較麻煩,爲了使該服務使用時更加方便,能夠爲相關程序添加符號連接vim
[root@localhost httpd-2.4.25]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ [root@localhost httpd-2.4.25]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl lrwxrwxrwx 1 root root 28 7月 27 17:08 /usr/local/bin/apachectl -> /usr/src/httpd/bin/apachectl lrwxrwxrwx 1 root root 24 7月 27 17:08 /usr/local/bin/httpd -> /usr/src/httpd/bin/httpd
而後再執行的話就不用輸入冗長的路徑了,例如,當執行「httpd -v」 命令(查看程序版本)時,至關於執行「/usr/local/httpd/bin/httpd -v」安全
[root@localhost httpd-2.4.25]# httpd -v Server version: Apache/2.4.25 (Unix) Server built: Jul 27 2019 16:48:44
添加 httpd 爲系統服務:
Centos 7 系統下,將編譯安裝的程序添加爲系統服務有兩種方式:
一、經過 chkconfig 命令添加,而後由 systemctl 進行管理;咱們須要創建可控的服務腳本,例如,可將 apachectl 腳本複製爲 /etc/init.d/httpd 並在文件開頭添加 chkconfig 識別配置bash
[root@www /]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd [root@www /]# vim /etc/init.d/httpd #!/bin/bash // shell環境 #chkconfig: 35 85 21 //服務識別參數 在級別三、5中啓動 啓動和關閉的順序分別是8五、21 #description: Apache HTTP Server //服務描述信息 [root@www /]# chkconfig --add httpd // 將httpd添加爲系統服務
二、在/lib/systemd/system/目錄下,手動編寫以.service結尾的單元 (unit)配置文件。內容以下:服務器
[root@www /]# vim /lib/systemd/system/httpd.service [Unit] Description=The Apache HTTP Server After=network.target [Service] Type=forking PIDFile=/usr/local/httpd/logs/httpd.pid ExecStart=/usr/local/httpd/bin/apachectl $OPTIONS ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=graphical.target
編寫完 httpd.service 文件後,執行以下命令設置 httpd 開機啓動:
[root@www /]# systemctl enable httpd.service Created symlink from /etc/systemd/system/graphical.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. [root@www /]# systemctl is-enabled httpd.service enabled
httpd.conf 是 httpd 服務的主配置文件。
若要向 Internet 中發佈一個 web 站點,須要申請一個合法的 IP地址,並向 DNS服務器提供商註冊一個完整的網站名稱。
配置httpd服務:編輯主配置文件,查找配置項 ServerName,在附近添加內容,用於設置網站名稱
[root@www /]# vim usr/local/httpd/conf/httpd.conf ……//省略部份內容 ServerName www.test.com ……//省略部份內容
修改完畢以後可使用帶「-t 」 選項的 apachectl 命令進行語法檢測,顯示以下表示正確
[root@www /]# apachectl -t Syntax OK
部署網頁文檔:網站根目錄位於 /usr/local/httpd/htdocs 下
[root@www /]# cat /usr/local/httpd/htdocs/index.html <html><body><h1>It works!</h1></body></html>
若想經過域名訪問httpd服務器,須要在客戶機上指定DNS服務器地址或在hosts文件中增長 httpd服務器的 IP解析記錄。
DNS參考文章:https://blog.51cto.com/14227204/2384462
httpd 服務器使用了兩種類型的日誌:訪問日誌和錯誤日誌。這兩種日誌分別爲 access_log 和 error_log ,均位於/usr/localhttpd/logs 目錄下,經過查看訪問日誌,能夠及時瞭解 web站點的訪問狀況。
[root@www /]# tail /usr/local/httpd/logs/access_log 192.168.1.123 - - [27/Jul/2019:18:00:13 +0800] "GET / HTTP/1.1" 200 45 192.168.1.123 - - [27/Jul/2019:18:00:13 +0800] "GET /favicon.ico HTTP/1.1" 404 209 192.168.1.123 - - [27/Jul/2019:18:00:17 +0800] "GET / HTTP/1.1" 304 - 192.168.1.123 - - [27/Jul/2019:18:00:17 +0800] "GET /favicon.ico HTTP/1.1" 404 209 192.168.1.123 - - [27/Jul/2019:18:00:18 +0800] "GET / HTTP/1.1" 304 -
httpd 各主配置項含義以下:
以上只是 httpd中比較主要的全局配置項,還有不少其餘的,在此就不一一列舉了
除了全局配置項之外,httpd.conf 文件中的大多數配置是包括在區域中的。區域配置項使用一對組合標記,限定了配置項的做用範圍,例如,最多見的目錄區域配置的形式以下:在以上區域定義中,設置了一個根目錄的區域配置,其中添加的訪問控制相關配置只對根目錄有效,而不會做用於全局或其餘區域。(注意:這裏的根目錄是指httpd服務器 server root 指定的值,而不是Centos 7 系統的根目錄)