Apache做爲一款開源軟件,是普遍應用的web應用之一,Apache有兩個主要版本1.X和2.X,通常咱們使用2.X版本,比起1.X版本它支持不少新的功能,下載Apache源碼包的地址爲:https://httpd.apache.org ,下載到源碼包後開始準備安裝:html
一、爲避免發生端口衝突,程序衝突等問題,若是有rpm方式安裝的httpd服務,建議將其卸載。
web
二、掛載系統鏡像,切換至系統盤中的Packages目錄,安裝相關依賴包(注意,最好一個一個的依次安裝,由於若是有些安裝包已經安裝了,一次安裝下面的安裝包的話,就會報錯)apache
[root@localhost Packages]# rpm -ivh apr-1.4.8-3.el7_4.1.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-devel-1.4.8-3.el7_4.1.x86_64.rpm [root@localhost Packages]# rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh expat-devel-2.1.0-10.el7_3.x86_64.rpm [root@localhost Packages]# rpm -ivh libdb-devel-5.3.21-24.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh openldap-devel-2.4.44-13.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh pcre-8.32-17.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
三、將httpd源碼包進行解包,並指定釋放目錄,而後切換到展開後的源碼目錄中:vim
[root@localhost media]# tar zxf httpd-2.4.25.tar.gz -C /usr/src [root@localhost media]# cd /usr/src/httpd-2.4.25/
四、配置及編譯安裝:服務器
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi && make && make install
上面配置命令中,各個選項的含義以下:ide
--prefix:指定將httpd服務安裝到哪一個目錄下。工具
--enable-so:啓用動態加載模塊支持,讓httpd具有進一步擴展功能的能力。優化
--enable-rewrite:啓用網頁地址重寫功能,用於網站優化和目錄遷移維護。網站
--enable-charset-lite:啓用字符集支持,以便支持使用各類字符集編碼的網頁。ui
--enable-cgi:啓用CGI腳本程序支持,便於擴展網站的應用訪問能力。
若在上面配置、編譯、安裝過程當中報錯,排除命令錯誤的前提下,那麼通常是少了依賴包,檢查依賴包有沒有少裝吧!
六、安裝完成後,切換至安裝成功的目錄後,會看到如下幾個目錄:
[root@localhost httpd-2.4.25]# cd /usr/local/httpd/ [root@localhost httpd]# ls bin cgi-bin error icons logs manual build conf htdocs include man modules
各個主要子目錄的用途以下:
七、優化執行路徑(根據實際狀況來定,能夠不進行優化):
經過源碼安裝的httpd服務屬於第三方服務,因此程序路徑並不在默認的搜索路徑中,若是如今要啓動Apache的話,須要執行命令:/usr/local/httpd/bin/apachectl start,也就是安裝完成後bin目錄下的程序控制文件的絕對路徑,加上須要進行的操做便可。
那麼,爲了使這個服務使用起來更加方便些,能夠進行執行路徑優化,過程以下:
爲相關程序添加符號連接:
[root@localhost httpd]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
這樣,再執行相關命令時,就不用輸入很長的路徑了,如若想要啓動服務,直接執行/usr/local/bin/apachectl start便可,但這樣依舊沒有控制系統服務那麼方便,那麼,還能夠繼續操做,添加httpd系統服務,有如下兩種方法:
方法1
複製apachectl文件到/etc/init.d/httpd,而後編輯該文件,:
[root@localhost httpd]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd [root@localhost httpd]# vim /etc/init.d/httpd
按照下面進行修改,而後保存退出:
添加系統服務:
[root@localhost httpd]# chkconfig --add httpd
至此,便可跟控制系統服務同樣,使用systemctl start/status/restart httpd來控制apache服務了。
還有一種方法能夠將它添加爲系統服務,不過還要編輯配置文件,比較麻煩,可能能夠對服務進一步的定義,我的以爲了解便可吧,沒有什麼特殊要求的話,採用上面的那種方法便可。
方法2:
創建httpd.service配置文件(注意配置文件的路徑,其中配置文件中寫入的apachectl路徑,需根據實際狀況來定)
配置文件中的各配置項的做用以下所示:
兩種方法各有各的好處,方法2能夠對服務進行詳細的控制定義,而且還可使用systemctl enable httpd.service
來設置httpd服務開機自動啓動,這是方法1沒法實現的。
當服務的控制進行優化後,便可對httpd服務進行基本配置:
一、編輯httpd服務的主配置文件httpd.conf
在末行模式下執行/ServerName,在附近添加一行內容:ServiceName www.aaa.com ,用於設置網站對應的域名。以下:
進入末行模式查找ServerName:
修改httpd.conf文件的配置內容後,可使用命令apachectl -t或httpd -t對配置內容進行語法檢測,如若沒有錯誤,將會顯示以下:
二、部署網頁文檔:
對於新編譯安裝的httpd服務,網站根目錄位於/usr/local/httpd/htdocs
下,須要將web站點的網頁文檔複製或上傳到此目錄下。
三、查看web站點的訪問狀況
httpd服務器使用了兩種類型的日誌:訪問日誌和錯誤日誌。這兩種日誌的文件名分別爲acces_log和error_log,都在/usr/local/httpd/logs目錄下。可使用命令tail -f /usr/local/httpd/logs/access_log來動態查看網站訪問狀況。
四、最爲主要的httpd.conf主配置文件
httpd.conf中的註釋行以「#」開頭,剩下的則是設置行。根據配置所做用的範圍不一樣,設置行又可分爲全局配置、區域配置。每條全局配置都是一項獨立的配置,不須要包含在其餘任務區域中,經常使用的一些全局配置項做用以下:
除了全局配置項之外,httpd.conf文件中的大多數配置時包括在區域內的。區域配置使用一對組合標記,限定了配置項的做用範圍,以下: