1. 程式人生 > >【Linux】Centos7.4安裝Apache2.4.23(詳細步驟)

【Linux】Centos7.4安裝Apache2.4.23(詳細步驟)

(yankerp-你不努力,未來沒人替你買單!)

一、安裝apache2.4.23
Apache官網:http://www.apache.org/
apache2.4新功能概述:

執行時可載入MPM

現在可以在編譯時將多個MPM 構建為可載入模組。選擇的MPM可以在執行時通過LoadModule指令進行配置。

事件MPM
該事件MPM的實驗階段,但現在完全支援。

非同步支援
更好地支援非同步讀/寫以支援MPM和平臺。

每個模組和每個目錄的LogLevel配置
在LogLevel現在可以按模組和每目錄配置。新的水平trace1 ,以trace8已經在上面新增debug日誌級別。
每請求配置部分


<If>, <ElseIf>和<Else> 段可以用來設定基於每個請求標準的配置。
通用表示式解析器
一個新的表示式分析器允許指定 複合物的條件在像指示使用共同的語法 SetEnvIfExpr, RewriteCond, Header, <If>,和其他。
KeepAliveTimeout以毫秒為單位
現在可以指定KeepAliveTimeout以毫秒為單位。
NameVirtualHost指令
不再需要,現已被棄用。
覆蓋配置
新AllowOverrideList 指令允許更精細的控制.htaccess檔案中允許的指令。
配置檔案變數
現在Define ,配置中的變數是可能的,如果在配置中的許多地方使用相同的值,則允許更清楚的表示。
減少記憶體使用量

儘管有許多新功能,2.4.x往往比2.2.x使用更少的記憶體。

apache2.4新模組

mod_proxy_fcgi
FastCGI協議後端 mod_proxy
mod_proxy_scgi
SCGI協議後端為 mod_proxy
mod_proxy_express
提供動態配置的質量反向代理 mod_proxy
mod_remoteip
用代理或負載均衡器通過請求頭提交的IP地址列表替換請求的明顯客戶端遠端IP地址和主機名。
mod_heartmonitor, mod_lbmethod_heartbeat
允許mod_proxy_balancer基於後端伺服器上活動連線的數量進行負載平衡決策。
mod_proxy_html


以前是第三方模組,它支援在反向代理情況下修復HTML連結,後端生成對代理客戶端無效的URL。
mod_sed
一個先進的替代mod_substitute,允許編輯與sed的全部力量的響應身體。
mod_auth_form
啟用基於表單的身份驗證。
mod_session
為客戶端啟用會話狀態,使用cookie或資料庫儲存。
mod_allowmethods
新的模組來限制某些HTTP方法,而不會干擾認證或授權。
mod_lua
將Lua語言嵌入到httpd中,用於配置和小型業務邏輯功能。(實驗)
mod_log_debug
允許在請求處理的不同階段新增可定製的除錯日誌記錄。
mod_buffer
提供緩衝輸入和輸出過濾器堆疊
mod_data
將響應正文轉換為RFC2397資料URL
mod_ratelimit
為客戶端提供頻寬限制
mod_request
提供過濾器來處理和提供HTTP請求體
mod_reflector
通過輸出過濾器堆疊提供對請求體的反射作為響應。
mod_slotmem_shm
提供基於槽的共享記憶體提供程式(ala記分板)。
mod_xml2enc
以前是第三方模組,它支援基於libxml2(標記感知)過濾器模組的國際化。
mod_macro (從2.4.5開始可用)
在配置檔案中提供巨集。
mod_proxy_wstunnel (從2.4.5開始可用)
支援網路套接字隧道。
mod_authnz_fcgi (從2.4.10開始可用)
啟用FastCGI授權人應用程式來驗證和/或授權客戶端。
mod_http2 (自2.4.17起可用)
支援HTTP / 2傳輸層。
mod_proxy_hcheck (自2.4.21起可用)

支援遠端proxiy後端伺服器的獨立動態健康檢查

正式安裝Apache2.4 作業系統:Centos7.4,(需要關閉Selinux)
1.在每安裝一個服務都要養成檢視是否安裝,如果安裝則需要解除安裝:

#[[email protected] ~]# rpm -qa | grep httpd

以下是如果之前系統已經安裝httpd解除安裝方法:

2.安裝apache2.4.23 (是編譯安裝那麼就會需要用到原始碼包)在安裝apache2.4.23需要的原始碼包如下:
httpd-2.4.23.tar.gz      apr-1.5.2.tar.gz      apr-util-1.5.4.tar.gz      zlib-1.2.8.tar.gz      pcre-8.39.tar.gz
以上包中apr是可移植的執行庫,它是一個對作業系統呼叫的抽象庫,用來實現apache內部元件對系統的使用,提高系統的可移植性,pcre zlib想必大家都很瞭解,這裡不在概述。


1)下載安裝apr和apr-util 在安裝之前這些包我已經下載好了,同時大家可以使用以下連結來進行下載

#[[email protected] ~]# wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.gz

安裝:

# tar zxf apr-1.5.2.tar.gz 
[[email protected] ~]# cd apr-1.5.2/
[[email protected] apr-1.5.2]# ./configure --prefix=/usr/local/apr && make && make install


如果出現了以上情況,需要安裝gcc編譯器。。。

# yum install gcc gcc-c++ -y


再次安裝:

安裝結束後使用echo $?來判斷以上操作是否又報錯,非0則不成功,若沒有繼續安裝下一個包



2)安裝apr-util(安裝的方法和上邊安裝apr都是一樣的) 最後make && make install

# wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
# wget http://www.zlib.net/fossils/zlib-1.2.8.tar.gz
tar zxf zlib-1.2.8.tar.gz 
[[email protected] ~]# cd zlib-1.2.8/
[[email protected] zlib-1.2.8]# ./configure --prefix=/usr/local/zlib && make && make install
# wget https://ftp.pcre.org/pub/pcre/pcre-8.39.tar.gz


4.安裝openssl(在安裝apache2.4中它會提示openssl版本過於低,所以需要安裝openssl)
openssl官網:https://www.openssl.org/

#wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz

make && make install


安裝完的調整

#mv /usr/bin/openssl /usr/bin/openssl.1.0.1e
[[email protected] openssl-1.0.1u]# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl


5.以上操作都是為apache2.4準備的,接下來正式安裝apache2.4

#tar zxf httpd-2.4.23.tar.gz
cd httpd-2.4.23/

make && make install
引數解釋:
./configure --prefix=/usr/local/http-2.4.23      //指定apache的安裝路徑
--enable-so  //這個是支援動態共享模組
--enable-rewrite  //支援URL重寫
--enable-ssl   //支援ssl
--with-ssl=/usr/local/openssl  //這個是指定openssl的安裝位置
--enable-cgi   //啟用cgi
--enable-modules=most 指明要靜態編譯到httpd二進位制檔案的模組 all或者most,all代表包含所有的模組 most代表大部分的模組
--enable-mods-shared=most 指明要以DSO方式編譯的模組,all代表全部,most代表大部分
--enable-mpms-shared=all  啟用MPM所有支援的模式,這樣event,worker,prefork就會以模組化的方式安裝,要用哪個就在httpd.conf裡面配置就好了
--with-mpm=event   指定啟用mpm模式,預設使用enevt模式,在apache的早期版本2.0預設prefork,2.2版本是worker 2.4版本是event.
--with-pcre=/usr/local/pcre 支援 pcre
--with-z=/usr/local/zlib  使用 zlib 壓縮庫
--with-apr=/usr/local/apr   指定 apr 的安裝路徑
--with-apr-util=/usr/local/apr-util 指定 apr-util 的安裝路徑
--enable-expires:啟用彧通過配置檔案控制 HTTP 的“Expires:”和“Cache-Control:”頭內容,即對網站圖片、js、css 等內容,提供客戶端瀏覽器緩
存的設定。這個是 apache 調優的一個重要選項之一。
--enable-deflate:提供對內容的壓縮傳輸編碼支援,一般是 html、js、css 等內容的站點。使用此引數會打打提高傳輸速度,提升訪問者訪問的體驗。在生產環境中,這是 apache 調優的一個重要選項之一

到這裡必須要知道Apache的三種工作模式:event,worker,prefork !!!

在make && make install完成之後我們一定要echo $?來確保安裝沒過程中沒有錯誤

此時我們的apache2.4已經正式的安裝成功!!!


6.優化http程式執行路徑

# ln -s /usr/local/http-2.4.23/bin/* /usr/local/bin/

修改配置檔案設定ServerName
我們在安裝apache的時候安裝路徑指定到了/usr/local/http2.4下面,我們進去http的安裝位置檢視有什麼目錄。

我們看到了一個conf目錄,也就是說這個目錄下面存放的就是我們apache的主配置檔案,httpd.conf(修改servername)

7.開啟apache服務

設定apache為開機自啟動

#cp /usr/local/http-2.4.23/bin/apachectl /etc/init.d/httpd
sed -i '1a # chkconfig: 35 85 21' /etc/init.d/httpd 
sed -i '2a # description: apache 2.4.23' /etc/init.d/httpd 

新增為系統服務並自啟動

修改網頁根目錄,client訪問測試

以下是apache網頁根目錄(我們可以在裡面更改想要的內容)

注意:如果做到這裡httpd已經啟動但是無法訪問可能造成原因有以下幾種:
1.清除瀏覽器快取後再次訪問。
2.沒有關閉selinux會出現訪問不到的情況
3.沒有關閉防火牆,則需要新增80埠,或者可以選擇關閉防火牆



2017年倒計時。。。
希望對您有所幫助,後續繼續更新,再見~~