第一篇:Apache的编译安装

一、下载源码包和依赖包

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模式的升级

你可能感兴趣的:(第一篇:Apache的编译安装)