選單

CentOS 7 編譯安裝最新版 httpd 2.4.43

APR:Apache portable Run-time libraries,Apache可移植執行庫,主要為上層的應用程式提供一個可以跨越多作業系統平臺使用的底層支援介面庫。在早期的Apache版本中,應用程式本身必須能夠處理各種具體作業系統平臺的細節,並針對不同的平臺呼叫不同的處理函式隨著Apache的進一步開發,Apache組織決定將這些通用的函式獨立出來並發展成為一個新的專案。這樣,APR的開發就從Apache中獨立出來,Apache僅僅是使用 APR而已。目前APR主要還是由Apache使用,由於APR的較好的移植性,因此一些需要進行移植的C程式也開始使用APR,開源專案:比如用於伺服器壓力測試的Flood loader tester,專案站點:http://httpd。apache。org/test/flood

APR官網:http://apr。apache。org

說明:安裝 httpd-2。4,依賴於apr-1。4+, apr-util-1。4+

編譯安裝httpd-2.4準備

#安裝相關包:[root@centos7 ~]#yum -y install gcc make pcre-devel openssl-devel expat-devel#下載原始碼並解壓縮: [root@centos7 ~]#wget https://downloads。apache。org//apr/apr-1。7。0。tar。bz2[root@centos7 ~]#wget https://downloads。apache。org//apr/apr-util-1。6。1。tar。bz2[root@centos7 ~]#wget https://downloads。apache。org//httpd/httpd-2。4。43。tar。bz2[root@centos7 ~]#lshttpd-2。4。43。tar。bz2,apr-1。7。0。tar。bz2,apr-util-1。6。1。tar。bz2[root@centos7 ~]#tar xvf apr-1。7。0。tar。bz2[root@centos7 ~]#tar xvf apr-util-1。6。1。tar。bz2[root@centos7 ~]#tar xvf httpd-2。4。43。tar。bz2

編譯安裝兩種主法:

方法一

1. 編譯安裝apr

cd apr-1。7。0。/configure ——prefix=/app/aprmake && make install

2. 編譯安裝apr-util

cd 。/apr-util-1。6。1。/configure ——prefix=/app/apr-util ——with-apr=/app/apr/make -j 2 && make install

3. 編譯安裝 httpd-2.4

cd 。。/httpd-2。4。43。/configure ——prefix=/app/httpd24 \——enable-so \——enable-ssl \——enable-cgi \——enable-rewrite \——with-zlib \——with-pcre \——with-apr=/app/apr/ \——with-apr-util=/app/apr-util/ \——enable-modules=most \——enable-mpms-shared=all \——with-mpm=preforkmake -j 4 && make install

方法二

1. 將apr 和apr-util原始碼與httpd 原始碼合併

mv apr-1。7。0 httpd-2。4。43/srclib/aprmv apr-util-1。6。1 httpd-2。4。43/srclib/apr-util​ls httpd-2。4。43/srclib/apr apr-util Makefile。in

2. 將三者一併編譯並安裝

cd httpd-2。4。43/。/configure \——prefix=/app/httpd24 \——enable-so \——enable-ssl \——enable-cgi \——enable-rewrite \——with-zlib \——with-pcre \——with-included-apr \——enable-modules=most \——enable-mpms-shared=all \——with-mpm=prefork  make -j 4 && make install

編譯安裝後配置

Httpd編譯過程:/app/httpd24/build/config。nice 自帶的服務控制指令碼:/app/httpd24/bin/apachectl

建立專用使用者

useradd -s /sbin/nologin -r apache

指定執行httpd的使用者

vim /app/httpd24/conf/httpduser apachegroup apache

配置環境變數

vim /etc/profile。d/httpd24。shPATH=/app/httpd24/bin:$PATH

配置幫助

vim /etc/man_db。confMANDATORY_MANPATH           /app/httpd24/man

設定開機自動啟動

vim /etc/rc。d/rc。local/app/httpd24/bin/apachectl startchmod +x /etc/rc。d/rc。local

建立service unit檔案(CentOS 7 以上版本)

vim /usr/lib/systemd/system/httpd24。service[Unit]Description=The Apache HTTP ServerAfter=network。target remote-fs。target nss-lookup。targetDocumentation=man:httpd(8)Documentation=man:apachectl(8)[Service]Type=forking#EnvironmentFile=/etc/sysconfig/httpdExecStart=/app/httpd24/bin/apachectl start#ExecStart=/app/httpd24/bin/httpd $OPTIONS -k startExecReload=/app/httpd24/bin/apachectl graceful#ExecReload=/app/httpd24/bin/httpd $OPTIONS -k gracefulExecStop=/app/httpd24/bin/apachectl stopKillSignal=SIGCONTPrivateTmp=true[Install]WantedBy=multi-user。target