apache的源碼安裝詳細(xì)過(guò)程全紀(jì)錄
最近要開始學(xué)習(xí)nagios監(jiān)控方面的知識(shí)了,但是nagios與apache結(jié)合的比較緊密,所以本篇文章就先把a(bǔ)pache的源碼安裝學(xué)習(xí)下。
我們現(xiàn)在分以下步驟進(jìn)行安裝apache:
1、 安裝編譯環(huán)境
2、 卸載原有apache
3、 下載解壓源碼包
4、 安裝apache
5、 測(cè)試apache
6、 查看apache安裝生成的目錄
7、 查看apache的配置文件
8、 apache加入系統(tǒng)服務(wù)
一、安裝編譯環(huán)境
在安裝apache之前,我們需要安裝編譯apache時(shí)所需要的相關(guān)軟件包,如下:
yum -y install gcc gcc++ zlib zlib-devel
二、卸載原有Apache
在源碼安裝apache之前,我們要先卸載系統(tǒng)中,已經(jīng)通過(guò)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的源碼包,我們本次實(shí)驗(yàn)以apache的2.2.27版本為例。apache的源碼包建議直接去apache官網(wǎng)下載,如下:
使用如下命令,下載apache源碼包:
wget http://apache.fayea.com/httpd/httpd-2.2.27.tar.gz
解壓下載的源碼包,因?yàn)橄螺d的是tar.gz的源碼包,所以我們有兩種解壓方法。
方法一、利用gunzip進(jìn)行解壓,如下:
gunzip -c httpd-2.2.27.tar.gz>httpd-2.2.27.tar
-c參數(shù)可以不刪除源文件
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,我們首先要編譯,然后進(jìn)行安裝。
我們可以通過(guò)configure命令查看編譯時(shí)的相關(guān)幫助,如下:
./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的安裝路徑,默認(rèn)安裝路徑為/usr/local/apache2
--enable-rewrite提供URL規(guī)則的重寫更嫩那個(gè),即根據(jù)已知的URL地址,轉(zhuǎn)換為其它想要的URL地址
--enable-so激活apache服務(wù)的DSO(Dynamic Shared Objects動(dòng)態(tài)共享目標(biāo)),即在以后可以以DSO的方式編譯安裝共享模塊,這個(gè)模塊本身不能以DSO方式編譯。
--enable-headers提供允許對(duì)HTTP請(qǐng)求頭的控制。
--enable-expires激活荀彧通過(guò)配置文件控制HTTP的“Expires:”和“Cache-Control:”頭內(nèi)容,即對(duì)網(wǎng)站圖片、js、css等內(nèi)容,提供客戶端瀏覽器緩存的設(shè)置。這個(gè)是apache調(diào)優(yōu)的一個(gè)重要選項(xiàng)之一。
--with-mpm=worker選擇apache mpm的模式為worker模式。為worker模式原理是更多的使用線程來(lái)處理請(qǐng)求,所以可以處理更多的并發(fā)請(qǐng)求。而系統(tǒng) 資源的開銷小玉基于進(jìn)程的MPM prefork。如果不指定此參數(shù),默認(rèn)的模式是prefork進(jìn)程模式。這個(gè)是apache調(diào)優(yōu)的一個(gè)重要選項(xiàng)之一。
--enable-deflate提供對(duì)內(nèi)容的壓縮傳輸編碼支持,一般是html、js、css等內(nèi)容的站點(diǎn)。使用此參數(shù)會(huì)打打提高傳輸速度,提升訪問(wèn)者訪問(wèn)的體驗(yàn)。在生產(chǎn)環(huán)境中,這是apache調(diào)優(yōu)的一個(gè)重要選項(xiàng)之一。
make
make install
安裝完畢apache,查看安裝后的目錄,如下:
tree -L 1 /usr/local/apache2/
五、測(cè)試apache
將apache的啟動(dòng)腳本復(fù)制到/etc/rc.d/init.d這個(gè)目錄下,如下:
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
其實(shí)apache的啟動(dòng)是調(diào)用/usr/local/apache2/bin/httpd這個(gè)命令,查看該腳本的內(nèi)容,如下:
cat /etc/init.d/httpd|grep -v ^#|grep -v ^$
啟動(dòng)apache,如下:
/etc/init.d/httpd start
netstat -lntp|grep 80
lsof -i :80
也可以使用/usr/local/apache2/bin/httpd進(jìn)行啟動(dòng)。如下:
/usr/local/apache2/bin/httpd –k start
apache啟動(dòng)完畢后,我們來(lái)查看下,可以使用如下命令:
wget http://192.168.1.213
通過(guò)上圖,我們可以很明顯的看到apache已經(jīng)正常啟動(dòng)。
六、查看apache安裝生成的目錄
apache正常啟動(dòng)后,我們來(lái)查看apache安裝生成的目錄。如下:
bin主要存放程序命令目錄,。
conf主要存放apache配置文件。
htdocs主要存放站點(diǎn)目錄。
logs主要存放默認(rèn)日志文件。
modules主要存放apache的運(yùn)行模塊。例如php、memcache編譯后的模塊存放在這里。
七、查看apache的配置文件
apache的配置文件httpd.conf存放在conf 目錄下,如下:
查看httpd.conf配置內(nèi)容,如下:
egrep -v '^[ ]*#|^$' /usr/local/apache2/conf/httpd.conf | nl
ServerRoot "/usr/local/apache2"表示apache根目錄,該目錄應(yīng)只有root用戶具有訪問(wèn),一般不需要修改。
Listen 80表示apache監(jiān)聽端口,默認(rèn)為80。如果同時(shí)監(jiān)控81端口,可以加一行:Listen 81。
AddType application/x-httpd-php .php LoadModule php5_module modules/libphp5.so用于apache與php進(jìn)行集成時(shí)使用。
User daemon Group daemon表示apache運(yùn)行時(shí)的用戶及組,默認(rèn)為daemon,建議修改,如apache。
DocumentRoot "/usr/local/apache2/htdocs"表示apache默認(rèn)的web站點(diǎn)目錄,路徑結(jié)尾不要添加斜線。
ServerAdmin you@example.com表示系統(tǒng)管理員的郵箱,此項(xiàng)為非重要選項(xiàng)。當(dāng)網(wǎng)站出現(xiàn)問(wèn)題時(shí),面面會(huì)顯示此頁(yè)面地址。
DirectoryIndex index.php index.html配置默認(rèn)的apache首頁(yè)。如果虛擬主機(jī)未配置,默認(rèn)應(yīng)用這里的配置。
ErrorLog "logs/error_log"錯(cuò)誤日志路徑。
LogLevel warn錯(cuò)誤日志級(jí)別。
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"配置cgi別名。
八、apache加入系統(tǒng)服務(wù)
為了讓apache開機(jī)啟動(dòng),我們可以把a(bǔ)pachectl啟動(dòng)腳本加入rc.local文件中,如下:
echo "/usr/local/apache2/bin/apachectl start">>/etc/rc.local
cat /etc/rc.local
我們也可以通過(guò)把a(bǔ)pache加入系統(tǒng)服務(wù),來(lái)啟動(dòng)apache。把a(bǔ)pache添加為系統(tǒng)服務(wù)有兩種方法,第一種是通過(guò)chkconfig進(jìn)行添加,第二種是直接添加系統(tǒng)的各個(gè)啟動(dòng)級(jí)別。
我們先來(lái)介紹第一種方法,修改啟動(dòng)httpd腳本加入如下兩行命令,如下:
#chkconfig: 2345 70 60
#description: apache
說(shuō)明:
chkconfig: 2345 70 60中的2345是指腳本的運(yùn)行級(jí)別,即在2345這4種模式下都可以運(yùn)行,234都是文本界面,5是圖形界面X。
70是指腳本將來(lái)的啟動(dòng)順序號(hào),如果別的程序的啟動(dòng)順序號(hào)比70?。ū热?4、45),則腳本需要等這些程序都啟動(dòng)以后才啟動(dòng)。60是指系統(tǒng)關(guān)閉時(shí),腳本的停止順序號(hào)。
description: apache關(guān)于腳本的簡(jiǎn)短描述。
使用chkconfig進(jìn)行添加,如下:
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開機(jī)啟動(dòng),使用如下命令:
chkconfig httpd on
chkconfig |grep httpd
經(jīng)過(guò)以上操作apache就可以開機(jī)啟動(dòng)。
相關(guān)文章
Linux下設(shè)置防火墻白名單(RHEL 6和CentOS 7)的步驟
下面小編就為大家?guī)?lái)一篇Linux下設(shè)置防火墻白名單(RHEL 6和CentOS 7)的步驟。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11CentOS 5.4 服務(wù)器配置 yum安裝Apache+php+Mysql
Centos 里的 yum 在線安裝很慢.以下是替換為中國(guó)CentOS鏡像服務(wù)器!2010-03-03Centos下配置Redis開機(jī)啟動(dòng)腳本
本篇文章主要介紹了redis之Centos下配置Redis開機(jī)啟動(dòng)腳本,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02Linux服務(wù)器部署JavaWeb項(xiàng)目完整教程
這篇文章主要介紹了Linux服務(wù)器部署JavaWeb項(xiàng)目完整教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09Zabbix基于snmp實(shí)現(xiàn)監(jiān)控linux主機(jī)
這篇文章主要介紹了Zabbix基于snmp實(shí)現(xiàn)監(jiān)控linux主機(jī),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Ubuntu 14.04下安裝Eclipse的經(jīng)驗(yàn)分享
在linux下配置開發(fā)環(huán)境有點(diǎn)麻煩,對(duì)于linux剛?cè)腴T的菜鳥來(lái)說(shuō),命令使用不熟悉,環(huán)境也是朦朦朧朧,今天整理了一下ubnutu14.04下安裝eclipse的步驟,希望對(duì)大家有用。廢話不多說(shuō),進(jìn)入主題2014-09-09