apache的源碼安裝詳細過程全紀錄_Linux

來源:互聯網
上載者:User

最近要開始學習nagios監控方面的知識了,但是nagios與apache結合的比較緊密,所以本篇文章就先把apache的源碼安裝學習下。

我們現在分以下步驟進行安裝apache:

1、 安裝編譯環境

2、 卸載原有apache

3、 下載解壓源碼包

4、 安裝apache

5、 測試apache

6、 查看apache安裝產生的目錄

7、 查看apache的設定檔

8、 apache加入系統服務

一、安裝編譯環境

在安裝apache之前,我們需要安裝編譯apache時所需要的相關軟體包,如下:

yum -y install gcc gcc++ zlib zlib-devel

二、卸載原有Apache

在源碼安裝apache之前,我們要先卸載系統中,已經通過rpm包安裝的apache。如下:

rpm -qa |grep httpd

rpm -e --nodeps httpd-2.2.15-29.el6.centos.x86_64

rpm -e --nodeps httpd-tools-2.2.15-29.el6.centos.x86_64

三、下載解壓源碼包

下載apache的源碼包,我們本次實驗以apache的2.2.27版本為例。apache的源碼包建議直接去apache官網下載,如下:

使用如下命令,下載apache源碼包:

wget http://apache.fayea.com/httpd/httpd-2.2.27.tar.gz

解壓下載的源碼包,因為下載的是tar.gz的源碼包,所以我們有兩種解壓方法。

方法一、利用gunzip進行解壓,如下:

gunzip -c httpd-2.2.27.tar.gz>httpd-2.2.27.tar

-c參數可以不刪除源檔案

tar -xf httpd-2.2.27.tar

方法二、直接使用tar解壓,如下:

tar -zxf httpd-2.2.27.tar.gz

或者tar -xf httpd-2.2.27.tar.gz

四、安裝apache

安裝apache,我們首先要編譯,然後進行安裝。

我們可以通過configure命令查看編譯時間的相關協助,如下:

./configure --help

具體編譯如下:

./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so --enable-headers --enable-expires --with-mpm=worker --enable-modules=most --enable-deflate

--prefix=/usr/local/apache2表示指定apache的安裝路徑,預設安裝路徑為/usr/local/apache2

--enable-rewrite提供URL規則的重寫更嫩那個,即根據已知的URL地址,轉換為其它想要的URL地址

--enable-so啟用apache服務的DSO(Dynamic Shared Objects動態共用目標),即在以後可以以DSO的方式編譯安裝共用模組,這個模組本身不能以DSO方式編譯。

--enable-headers提供允許對HTTP要求標頭的控制。

--enable-expires啟用荀彧通過設定檔控制HTTP的“Expires:”和“Cache-Control:”頭內容,即對網站圖片、js、css等內容,提供用戶端瀏覽器緩衝的設定。這個是apache調優的一個重要選項之一。

--with-mpm=worker選擇apache mpm的模式為worker模式。為worker模式原理是更多的使用線程來處理請求,所以可以處理更多的並發請求。而系統 資源的開銷小玉基於進程的MPM prefork。如果不指定此參數,預設的模式是prefork進程模式。這個是apache調優的一個重要選項之一。

--enable-deflate提供對內容的壓縮傳輸編碼支援,一般是html、js、css等內容的網站。使用此參數會打打提高傳輸速度,提升訪問者訪問的體驗。在生產環境中,這是apache調優的一個重要選項之一。

make

make install

安裝完畢apache,查看安裝後的目錄,如下:

tree -L 1 /usr/local/apache2/

五、測試apache

將apache的啟動指令碼複製到/etc/rc.d/init.d這個目錄下,如下:

cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

其實apache的啟動是調用/usr/local/apache2/bin/httpd這個命令,查看該指令碼的內容,如下:

cat /etc/init.d/httpd|grep -v ^#|grep -v ^$

啟動apache,如下:

/etc/init.d/httpd start

netstat -lntp|grep 80

lsof -i :80

也可以使用/usr/local/apache2/bin/httpd進行啟動。如下:

/usr/local/apache2/bin/httpd –k start

apache啟動完畢後,我們來查看下,可以使用如下命令:

wget http://192.168.1.213

通過上圖,我們可以很明顯的看到apache已經正常啟動。

六、查看apache安裝產生的目錄

apache正常啟動後,我們來查看apache安裝產生的目錄。如下:

bin主要存放程式命令目錄,。

conf主要存放apache設定檔。

htdocs主要存放網站目錄。

logs主要存放預設記錄檔。

modules主要存放apache的運行模組。例如php、memcache編譯後的模組存放在這裡。

七、查看apache的設定檔

apache的設定檔httpd.conf存放在conf 目錄下,如下:

查看httpd.conf配置內容,如下:

egrep -v '^[ ]*#|^$' /usr/local/apache2/conf/httpd.conf | nl

ServerRoot "/usr/local/apache2"表示apache根目錄,該目錄應只有root使用者具有訪問,一般不需要修改。

Listen 80表示apache監聽連接埠,預設為80。如果同時監控81連接埠,可以加一行:Listen 81。

AddType application/x-httpd-php .php LoadModule php5_module modules/libphp5.so用於apache與php進行整合時使用。

User daemon Group daemon表示apache運行時的使用者及組,預設為daemon,建議修改,如apache。

DocumentRoot "/usr/local/apache2/htdocs"表示apache預設的web網站目錄,路徑結尾不要添加斜線。

ServerAdmin you@example.com表示系統管理員的郵箱,此項為非重要選項。當網站出現問題時,面面會顯示此頁面地址。

DirectoryIndex index.php index.html配置預設的apache首頁。如果虛擬機器主機未配置,預設應用這裡的配置。

ErrorLog "logs/error_log"錯誤記錄檔路徑。

LogLevel warn錯誤記錄檔層級。

ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"配置cgi別名。

八、apache加入系統服務

為了讓apache開機啟動,我們可以把apachectl啟動指令碼加入rc.local檔案中,如下:

echo "/usr/local/apache2/bin/apachectl start">>/etc/rc.local

cat /etc/rc.local

我們也可以通過把apache加入系統服務,來啟動apache。把apache添加為系統服務有兩種方法,第一種是通過chkconfig進行添加,第二種是直接添加系統的各個啟動層級。

我們先來介紹第一種方法,修改啟動httpd指令碼加入如下兩行命令,如下:

#chkconfig: 2345 70 60

#description: apache

說明:

chkconfig: 2345 70 60中的2345是指指令碼的運行層級,即在2345這4種模式下都可以運行,234都是文本介面,5是圖形介面X。

70是指指令碼將來的啟動順序號,如果別的程式的啟動順序號比70小(比如44、45),則指令碼需要等這些程式都啟動以後才啟動。60是指系統關閉時,指令碼的停止順序號。

description: apache關於指令碼的簡短描述。

使用chkconfig進行添加,如下:

chkconfig --add httpd

chkconfig |grep httpd

chkconfig --add httpd命令的作用是把/etc/init.d/httpd加入到/etc/rc.d/rc0.d到/etc/rc.d/rc6.d目錄下。如下:

find /etc -name *httpd

開啟apache開機啟動,使用如下命令:

chkconfig httpd on

chkconfig |grep httpd

經過以上操作apache就可以開機啟動。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.