天天看點

安裝Apache2.4.23

一、Apache2.4新增特性

1.新增子產品

mod_proxy_fcgi(可提供fcgi代理)

mod_ratelimit(限制使用者帶寬)

mod_request(請求子產品,對請求做過濾)

mod_remoteip(比對用戶端的IP位址)

對于基于IP的通路控制做了修改,不再支援allow,deny,order機制,而是統一使用require進行。

2.MPM支援在運作時裝載;不過要開啟這種特性,在編譯安裝要啟用這三種功能;

--enable-mpms-shared=all  --with-mpm=event

3.支援event,這是Apache最新的工作模式。

4.支援異步讀寫

5.在每個子產品及每個目錄上指定日志級别

6.增強版的表達式分析器

7.每請求配置:<If>, <Elseif>

8.毫秒級别的keepalive timeout

9.基于FQDN的虛拟主機不再需要NameVirtualHost指令

10.支援使用自定義變量

二、編譯安裝Apache2.4.23

系統環境:Centos7.3,關閉selinux

需要的源碼包:

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

這裡提前将這些包下載下傳下來,并存放到了/root/目錄下。

注:apr(Apache Portable Runtime)Apache可移植運作庫,它是一個對作業系統調用的抽象庫,用來實作Apache内部元件對作業系統的使用,提高系統的可移植性。

下面通過腳本實作Apache2.4.23的安裝:

#install apr

tar zxf apr-1.5.2.tar.gz

cd apr-1.5.2/

./configure --prefix=/usr/local/apr

make

make install

#install apr-util

cd /root/

tar zxf apr-util-1.5.4.tar.gz

cd apr-util-1.5.4/

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

#install zlib

tar zxf zlib-1.2.8.tar.gz

cd zlib-1.2.8/

./configure --prefix=/usr/local/zlib

#install pcre

tar zxf pcre-8.39.tar.gz

cd pcre-8.39/

./configure --prefix=/usr/local/pcre

#install openssl

tar zxf openssl-1.0.1u.tar.gz

cd openssl-1.0.1u/

./config -fPIC --prefix=/usr/local/openssl enable-shared

mv /usr/bin/openssl /usr/bin/openssl.1.0.1e

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

#install httpd

tar zxf httpd-2.4.23.tar.gz

cd httpd-2.4.23/

./configure --prefix=/usr/local/http-2.4.23 --enable-so --enable-cgi --enable-cgid --enable-ssl --with-ssl=/usr/local/openssl --enable-rewrite  --with-pcre=/usr/local/pcre --with-z=/usr/local/zlib --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-fcgi --enable-expires --enable-deflate

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

#Automatic startup after switch on

cp /usr/local/http-2.4.23/bin/apachectl /etc/init.d/httpd

sed -i '1i # chkconfig: 35 85 15\n# description: apache 2.4.23' /etc/init.d/httpd

chkconfig --add httpd

chkconfig httpd on

#startup httpd

sed -i '1i ServerName www.test.com'  /usr/local/http-2.4.23/conf/httpd.conf

/etc/init.d/httpd -t

/etc/init.d/httpd start

netstat -utpln | grep httpd

firewall-cmd --permanent --add-service=http

firewall-cmd --reload

注意:centos7自帶版本openssl-1.0.1e對于apache2.4.23來說版本過低,需要下載下傳安裝openssl-1.0.1u

httpd配置的相關參數解釋:

--enable-so:支援動态共享子產品(即打開DSO支援)

--enable-rewrite:支援url重寫

--enable-ssl:支援ssl

--with-ssl=/usr/local/openssl:指定ssl安裝位置

--enable-cgi:啟用cgi

--enable-cgid:MPM使用的是event或worker要啟用cgid

--enable-modules=most:明确指明要靜态編譯到httpd二進制檔案的子產品,<MODULE-LIST>為空格分隔的子產品名清單、all或者most,all表示包含所有子產品,most表示包含大部分常用子產品

--enable-mods-shared=most:明确指明要以DSO方式編譯的子產品,<MODULE-LIST>為空格分隔的子產品名清單、all或者most,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調優的一個重要選項之一。

二、安裝完成後出現的問題及及解決方法

安裝Apache2.4.23

可以看到80端口處于監聽狀态,說明httpd服務正常。但是,檢視其狀态時報錯,說是”lynx”這個指令沒有找到。下面,就這個問題說明一下解決的思路和方法。

安裝Apache2.4.23

“lynx”是一種純文字模式的網頁浏覽器,”lynx”指令找不到可能是因為該軟體包并沒有安裝。

安裝Apache2.4.23

安裝”lynx”之後,再檢視httpd的狀态,提示說請求的URL中”/server-status”找不到,那麼我們可以看一下httpd啟動腳本中關于”/server-status”的資訊:

安裝Apache2.4.23

從注釋中可以看出這個URL連結的是mod_status這個子產品的狀态頁,之前的報錯資訊說明這個狀态頁找不到,那有可能是主配置檔案中并沒有該資源的配置資訊。

安裝Apache2.4.23

通過以上步驟,可以确定”/server-status”這個狀态頁資訊是定義在httpd-info.conf這個配置檔案中的,那麼我們便需要在主配置檔案中加載httpd-info.conf,去掉配置行”Include conf  /extra/httpd-info.conf”之前的”#”即可。

安裝Apache2.4.23

優雅啟動httpd服務,再次檢視其狀态,發現沒有權限檢視該狀态頁,那就修改httpd-info.conf,賦予檢視該狀态頁的權限:

安裝Apache2.4.23
安裝Apache2.4.23

優雅啟動httpd,檢視其狀态成功!