一、下載源碼包和依賴包
http://apr.apache.org/download.cgi
1、apache編譯參數(shù)
-prefix=/usr/local/apache2 //體系無關(guān)文件的頂級(jí)安裝目錄PREFIX ,也就Apache的安裝目錄。
–enable-module=so //打開 so 模塊,so 模塊是用來提 DSO 支持的 apache 核心模塊
–enable-deflate=shared //支持網(wǎng)頁(yè)壓縮
–enable-expires=shared //支持 HTTP 控制
–enable-rewrite=shared //支持 URL 重寫
–enable-cache //支持緩存
–enable-file-cache //支持文件緩存
–enable-mem-cache //支持記憶緩存
–enable-disk-cache //支持磁盤緩存
–enable-static-support //支持靜態(tài)連接(默認(rèn)為動(dòng)態(tài)連接)
–enable-static-htpasswd //使用靜態(tài)連接編譯 htpasswd – 管理用于基本認(rèn)證的用戶文件
–enable-static-htdigest //使用靜態(tài)連接編譯 htdigest – 管理用于摘要認(rèn)證的用戶文件
–enable-static-rotatelogs //使用靜態(tài)連接編譯 rotatelogs – 滾動(dòng) Apache 日志的管道日志程序
–enable-static-logresolve //使用靜態(tài)連接編譯 logresolve – 解析 Apache 日志中的IP地址為主機(jī)名
–enable-static-htdbm //使用靜態(tài)連接編譯 htdbm – 操作 DBM 密碼數(shù)據(jù)庫(kù)
–enable-static-ab //使用靜態(tài)連接編譯 ab – Apache HTTP 服務(wù)器性能測(cè)試工具
–enable-static-checkgid //使用靜態(tài)連接編譯 checkgid
–disable-cgid //禁止用一個(gè)外部 CGI 守護(hù)進(jìn)程執(zhí)行CGI腳本
–disable-cgi //禁止編譯 CGI 版本的 PHP
–disable-userdir //禁止用戶從自己的主目錄中提供頁(yè)面
–with-mpm=worker // 讓apache以worker方式運(yùn)行
–enable-authn-dbm=shared // 對(duì)動(dòng)態(tài)數(shù)據(jù)庫(kù)進(jìn)行操作。Rewrite時(shí)需要
```
1.1、Apache官方文檔地址
http://httpd.apache.org/docs/2.4/programs/configure.html#installationdirectories
1.2、此次使用的編譯參數(shù)為:
-prefix=/chengang/server/apache2 --enable-MODULE=shared
1.3、查看iptables運(yùn)行狀態(tài)
service iptables status
1.4、添加iptables規(guī)則
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
1.5、apache httpd的啟動(dòng)、停止和重啟命令
官方文檔地址:http://httpd.apache.org/docs/2.4/programs/apachectl.html
$ PREFIX/bin/apachectl -k start
$ PREFIX/bin/apachectl -k stop
$ PREFIX/bin/apachectl -k restart
$ PREFIX/bin/apachectl -v status
$ PREFIX/bin/apachectl -V status

======================================================================
add for chkconfig
chkconfig:35 80 10
description:i am god
processname:myhttp
PID_FILE="/etc/myhttp.pid"
start()
{
/usr/local/myapache/bin/apachectl start
}
stop()
{
/usr/local/myapache/bin/apachectl stop
}
restart()
{
/usr/local/myapache/bin/apachectl restart
}
/home/god/bin/god_me
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "unknown"
;;
esac
========================================================
Apache的工作模式
1、通過apachectl -l命令查看當(dāng)前運(yùn)行工作模式
三種工作模式:--prefork
./configure enable-MODULE=shared --with-mpm=prefork
apache2.2默認(rèn)是prefork
prefork沒有線程的概念,是多進(jìn)程,一個(gè)進(jìn)程處理一個(gè)連接:穩(wěn)定、響應(yīng)快。其缺點(diǎn)是在連接數(shù)比較大時(shí)就非常消耗內(nèi)存
worker模式
多進(jìn)程多線程,一個(gè)進(jìn)程有多個(gè)線程,每個(gè)線程處理一個(gè)連接。這種模式開銷更小,處理的請(qǐng)求更海量
缺點(diǎn)是一旦某個(gè)線程出了問題,其所有線程也會(huì)受影響
event模式
worker模式的升級(jí)