二進制編譯Httpd服務器

前言:node

  Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,能夠在大多數計算機操做系統中運行,因爲其多平臺和安全性被普遍使用,是最流行的Web服務器端軟件之一。它快速、可靠而且可經過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。apache

環境介紹centos

  系統環境:CentOS7瀏覽器

  所需軟件包: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

一、下載官方源碼包並解壓:  google

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

二、解壓spa

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 

三、解決依賴關係:

mv apr-1.5.1 httpd-2.4.12/srclib/apr
mv apr-util-1.5.4 httpd-2.4.12/srclib/apr-util

二、切換至源碼目錄:

cd httpd-2.4.12

三、執行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查看各項參數
複製代碼

四、make and make install

make && make install

五、爲了方便命令使用須要添加環境變量,編輯二進制程序如何讓系統找到:

# cat /etc/profile.d/apache.sh
PATH=/usr/local/apache/bin:$PATH
export PATH

六、頭文件輸出給系統:

#ln -sv /usr/local/apache/include /usr/local/include/httpd

七、讓系統從新生成庫文件路徑緩存

#ldconfig -v |grep "^[^[:space:]]"

八、啓動apache服務:

# apachectl start

九、查看80端口是否被監聽:

netstat -ntl

第一次遇到的狀況是80端口未被監聽,因而打開安裝目錄下:/usr/local/apache/logs/error_log出現以下提示:

google了一下緣由可能,資源受限,不能分配內存

解決方法:

 

# ulimit -u unlimited   #修改 用戶最大進程數  
# echo ulimit -u unlimited >>/etc/profile   #保存修改到自啓動文件  

再次查看80端口已被監聽:

瀏覽器訪問測試:

 

相關文章
相關標籤/搜索