最近要開始學習nagios監控方面的知識了,但是nagios與apache結合的比較緊密,所以本篇文章就先把apache的源碼安裝學習下。
我們現在分以下步驟進行安裝apache:
1、安裝編譯環境
2、卸載原有apache
3、下載解壓源碼包
4、安裝apache
5、測試apache
6、查看apache安裝生成的目錄
7、查看apache的配置文件
8、apache加入系統服務
一、安裝編譯環境
在安裝apache之前,我們需要安裝編譯apache時所需要的相關軟件包,如下:
yum-yinstallgccgcc++zlibzlib-devel
二、卸載原有Apache
在源碼安裝apache之前,我們要先卸載系統中,已經通過rpm包安裝的apache。如下:
rpm-qa|grephttpd
rpm-e--nodepshttpd-2.2.15-29.el6.centos.x86_64
rpm-e--nodepshttpd-tools-2.2.15-29.el6.centos.x86_64
三、下載解壓源碼包
下載apache的源碼包,我們本次實驗以apache的2.2.27版本為例。apache的源碼包建議直接去apache官網下載,如下:
使用如下命令,下載apache源碼包:
wgethttp://apache.fayea.com/httpd/httpd-2.2.27.tar.gz
解壓下載的源碼包,因為下載的是tar.gz的源碼包,所以我們有兩種解壓方法。
方法一、利用gunzip進行解壓,如下:
gunzip-chttpd-2.2.27.tar.gz>httpd-2.2.27.tar
-c參數可以不刪除源文件
tar-xfhttpd-2.2.27.tar
方法二、直接使用tar解壓,如下:
tar-zxfhttpd-2.2.27.tar.gz
或者tar-xfhttpd-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(DynamicSharedObjects動態共享目標),即在以后可以以DSO的方式編譯安裝共享模塊,這個模塊本身不能以DSO方式編譯。
--enable-headers提供允許對HTTP請求頭的控制。
--enable-expires激活荀彧通過配置文件控制HTTP的“Expires:”和“Cache-Control:”頭內容,即對網站圖片、js、css等內容,提供客戶端瀏覽器緩存的設置。這個是apache調優的一個重要選項之一。
--with-mpm=worker選擇apachempm的模式為worker模式。為worker模式原理是更多的使用線程來處理請求,所以可以處理更多的并發請求。而系統資源的開銷小玉基于進程的MPMprefork。如果不指定此參數,默認的模式是prefork進程模式。這個是apache調優的一個重要選項之一。
--enable-deflate提供對內容的壓縮傳輸編碼支持,一般是html、js、css等內容的站點。使用此參數會打打提高傳輸速度,提升訪問者訪問的體驗。在生產環境中,這是apache調優的一個重要選項之一。
make
makeinstall
安裝完畢apache,查看安裝后的目錄,如下:
tree-L1/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/httpdstart
netstat-lntp|grep80
lsof-i:80
也可以使用/usr/local/apache2/bin/httpd進行啟動。如下:
/usr/local/apache2/bin/httpd–kstart
apache啟動完畢后,我們來查看下,可以使用如下命令:
wgethttp://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用戶具有訪問,一般不需要修改。
Listen80表示apache監聽端口,默認為80。如果同時監控81端口,可以加一行:Listen81。
AddTypeapplication/x-httpd-php.phpLoadModulephp5_modulemodules/libphp5.so用于apache與php進行集成時使用。
UserdaemonGroupdaemon表示apache運行時的用戶及組,默認為daemon,建議修改,如apache。
DocumentRoot"/usr/local/apache2/htdocs"表示apache默認的web站點目錄,路徑結尾不要添加斜線。
ServerAdminyou@example.com表示系統管理員的郵箱,此項為非重要選項。當網站出現問題時,面面會顯示此頁面地址。
DirectoryIndexindex.phpindex.html配置默認的apache首頁。如果虛擬主機未配置,默認應用這里的配置。
ErrorLog"logs/error_log"錯誤日志路徑。
LogLevelwarn錯誤日志級別。
ScriptAlias/cgi-bin/"/usr/local/apache2/cgi-bin/"配置cgi別名。
八、apache加入系統服務
為了讓apache開機啟動,我們可以把apachectl啟動腳本加入rc.local文件中,如下:
echo"/usr/local/apache2/bin/apachectlstart">>/etc/rc.local
cat/etc/rc.local
我們也可以通過把apache加入系統服務,來啟動apache。把apache添加為系統服務有兩種方法,第一種是通過chkconfig進行添加,第二種是直接添加系統的各個啟動級別。
我們先來介紹第一種方法,修改啟動httpd腳本加入如下兩行命令,如下:
#chkconfig:23457060
#description:apache
說明:
chkconfig:23457060中的2345是指腳本的運行級別,即在2345這4種模式下都可以運行,234都是文本界面,5是圖形界面X。
70是指腳本將來的啟動順序號,如果別的程序的啟動順序號比70小(比如44、45),則腳本需要等這些程序都啟動以后才啟動。60是指系統關閉時,腳本的停止順序號。
description:apache關于腳本的簡短描述。
使用chkconfig進行添加,如下:
chkconfig--addhttpd
chkconfig|grephttpd
chkconfig--addhttpd命令的作用是把/etc/init.d/httpd加入到/etc/rc.d/rc0.d到/etc/rc.d/rc6.d目錄下。如下:
find/etc-name*httpd
開啟apache開機啟動,使用如下命令:
chkconfighttpdon
chkconfig|grephttpd
經過以上操作apache就可以開機啟動。