前言:
Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,可以在大多數計算機操作系統中運行,由於其多平台和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠並且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。
環境介紹
系統環境:CentOS6.5
所需軟件包:apr-1.5.1.tar.gz、apr-util-1.5.4.tar.gz、httpd-2.4.12.tar.gz
注意:httpd2.4需要依賴apr和arp-util 1.4以上版本
CentOS編譯安裝Apache准備:確保開發包組已安裝(Development tools、Server Platform Development)
# yum groupinstall Development tools Server Platform Development
0、查詢舊版apache的包名,卸載舊版的apache
rpm -q httpd rpm -e httpd-2.2.15-31.el6.centos.x86_64 --nodeps
1、下載官方源碼包並解壓:
wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.12.tar.gz wget http://mirror.bit.edu.cn/apache/apr/apr-1.5.1.tar.gz wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.5.4.tar.gz
2、解壓
tar -xvf httpd-2.4.12.tar.gz
tar -xf apr-1.5.1.tar.gz tar -xf apr-util-1.5.4.tar.gz
3、解決依賴關系:
mv apr-1.5.1 httpd-2.4.12/srclib/apr mv apr-util-1.5.4 httpd-2.4.12/srclib/apr-util
2、切換至源碼目錄:
cd httpd-2.4.12
3、執行configue腳本:
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd/ --enable-so
1 編譯參數詳解: 2 3 --prefix:#安裝路徑 4 5 --sysconfdir:#指定配置文件路徑 6 7 --enable-so:#DSO兼容,DSO=Dynamic Shared Object,動態共享對象,可實現模塊動態生效 8 9 --enable-ssl:#支持SSL/TLS,可實現https訪問 需已安裝openssl-devel 10 11 --enable-cgi:#支持CGI腳本(默認對非線程的MPM模式開啟) 12 13 --enable-rewrite:#啟用Rewrite功能,URL重寫 14 15 --enable-deflate:#支持壓縮功能 16 17 --with-zlib:#使用指定的zlib庫,不指定路徑會自動尋找 18 19 --with-pcre:#使用指定的PCRE庫,不指定路徑會自動尋找 需已安裝pcre-devel 20 21 --with-apr:#指定apr安裝路徑 22 23 --with-apr-util:#指定apr-util安裝路徑 24 25 --enable-mpms-shared:#支持動態加載的MPM模塊,可選參數:all 26 27 --with-mpm:#設置默認啟用的MPM模式,{prefork|worker|event} 28 29 --enable-modules:#支持動態啟用的模塊,可選參數:all,most,few,reallyall 30 31 #編譯之前可使用./configure --help查看各項參數
4、make and make install
make && make install
5、為了方便命令使用需要添加環境變量,編輯二進制程序如何讓系統找到:
# cat /etc/profile.d/apache.sh PATH=/usr/local/apache/bin:$PATH export PATH
6、頭文件輸出給系統:
#ln -sv /usr/local/apache/include /usr/local/include/httpd
7、讓系統重新生成庫文件路徑緩存
#ldconfig -v |grep "^[^[:space:]]"
8、啟動apache服務:
# apachectl start
9、查看80端口是否被監聽:
netstat -ntl
第一次遇到的情況是80端口未被監聽,於是打開安裝目錄下:/usr/local/apache/logs/error_log出現如下提示:

google了一下原因可能,資源受限,不能分配內存
解決方法:
# ulimit -u unlimited #修改 用戶最大進程數
# echo ulimit -u unlimited >>/etc/profile #保存修改到自啟動文件
再次查看80端口已被監聽:

瀏覽器訪問測試:

編譯安裝成功!
