一、下载源码包和依赖包
http://apr.apache.org/download.cgi
1、apache编译参数
-prefix=/usr/local/apache2 //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录。
–enable-module=so //打开 so 模块,so 模块是用来提 DSO 支持的 apache 核心模块
–enable-deflate=shared //支持网页压缩
–enable-expires=shared //支持 HTTP 控制
–enable-rewrite=shared //支持 URL 重写
–enable-cache //支持缓存
–enable-file-cache //支持文件缓存
–enable-mem-cache //支持记忆缓存
–enable-disk-cache //支持磁盘缓存
–enable-static-support //支持静态连接(默认为动态连接)
–enable-static-htpasswd //使用静态连接编译 htpasswd – 管理用于基本认证的用户文件
–enable-static-htdigest //使用静态连接编译 htdigest – 管理用于摘要认证的用户文件
–enable-static-rotatelogs //使用静态连接编译 rotatelogs – 滚动 Apache 日志的管道日志程序
–enable-static-logresolve //使用静态连接编译 logresolve – 解析 Apache 日志中的IP地址为主机名
–enable-static-htdbm //使用静态连接编译 htdbm – 操作 DBM 密码数据库
–enable-static-ab //使用静态连接编译 ab – Apache HTTP 服务器性能测试工具
–enable-static-checkgid //使用静态连接编译 checkgid
–disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本
–disable-cgi //禁止编译 CGI 版本的 PHP
–disable-userdir //禁止用户从自己的主目录中提供页面
–with-mpm=worker // 让apache以worker方式运行
–enable-authn-dbm=shared // 对动态数据库进行操作。Rewrite时需要
```
1.1、Apache官方文档地址
http://httpd.apache.org/docs/2.4/programs/configure.html#installationdirectories
1.2、此次使用的编译参数为:
-prefix=/chengang/server/apache2 --enable-MODULE=shared
1.3、查看iptables运行状态
service iptables status
1.4、添加iptables规则
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
1.5、apache httpd的启动、停止和重启命令
官方文档地址: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
![image.png](http://upload-images.jianshu.io/upload_images/1414809-0dc0c8a902d6fa36.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
======================================================================
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命令查看当前运行工作模式
三种工作模式:--prefork
./configure enable-MODULE=shared --with-mpm=prefork
apache2.2默认是prefork
prefork没有线程的概念,是多进程,一个进程处理一个连接:稳定、响应快。其缺点是在连接数比较大时就非常消耗内存
worker模式
多进程多线程,一个进程有多个线程,每个线程处理一个连接。这种模式开销更小,处理的请求更海量
缺点是一旦某个线程出了问题,其所有线程也会受影响
event模式
worker模式的升级