Apache编译安装-

回复 收藏
1,下载
[root@xuexi support-files]# cd /usr/local/src/
[root@xuexi src]# ls
mysql-5.1.73-linux-i686-glibc23.tar.gz
[root@xuexi src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.31.tar.gz(2.2版本)
[root@xuexi src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.18.tar.gz(最新2.4版本)
2,解压
[root@xuexi src]# tar zxvf httpd-2.2.31.tar.gz
3,配置编译参数
[root@xuexi src]# cd httpd-2.2.31
[root@xuexi httpd-2.2.31]# ls
ABOUT_APACHE  config.layout  httpd.spec      LICENSE        README.platforms
acinclude.m4  configure      include         Makefile.in    README-win32.txt
Apache.dsw    configure.in   INSTALL         Makefile.win   ROADMAP
build         docs           InstallBin.dsp  modules        server
BuildAll.dsp  emacs-style    LAYOUT          NOTICE         srclib
BuildBin.dsp  httpd.dep      libhttpd.dep    NWGNUmakefile  support
buildconf     httpd.dsp      libhttpd.dsp    os             test
CHANGES       httpd.mak      libhttpd.mak    README         VERSIONING
[root@xuexi httpd-2.2.31]# cat INSTALL
  APACHE INSTALLATION OVERVIEW
  Quick Start - Unix
  ------------------
  For complete installation documentation, see [ht]docs/manual/install.html or
  http://httpd.apache.org/docs/2.2/install.html
     $ ./configure --prefix=PREFIX
     $ make
     $ make install
     $ PREFIX/bin/apachectl start
[root@xuexi src]# yum install -y gcc  (关键 要不会报错)
[root@xuexi httpd-2.2.31]# ./configure \
> --prefix=/usr/local/apache2 \      (--prefix 指定安装位置)
> --with-included-apr \
> --enable-so \          (启用动态共享目标)
> --enable-deflate=shared \
> --enable-expires=shared \
> --enable-rewrite=shared \
> --with-pcre

4, 编译
[root@xuexi src]# make ; echo $?
5,安装
[root@xuexi src]# make install ; echo $?
6  测试
[root@xuexi httpd-2.2.31]# /usr/local/apache2/bin/apachectl start  (启动服务)
[root@xuexi htdocs]# /usr/local/apache2/bin/apachectl restart    (停止当前服务在启动服务)
[root@xuexi htdocs]# /usr/local/apache2/bin/apachectl graceful   (只加载配置文件)
[root@xuexi httpd-2.2.31]# ps aux | grep httpd
root     20367  0.1  0.1   4396  1696 ?        Ss   18:07   0:00 /usr/local/apache2/bin/httpd -k start
daemon   20368  0.0  0.1   4396  1120 ?        S    18:07   0:00 /usr/local/apache2/bin/httpd -k start
daemon   20369  0.0  0.1   4396  1120 ?        S    18:07   0:00 /usr/local/apache2/bin/httpd -k start
daemon   20370  0.0  0.1   4396  1120 ?        S    18:07   0:00 /usr/local/apache2/bin/httpd -k start
daemon   20371  0.0  0.1   4396  1120 ?        S    18:07   0:00 /usr/local/apache2/bin/httpd -k start
daemon   20372  0.0  0.1   4396  1120 ?        S    18:07   0:00 /usr/local/apache2/bin/httpd -k start
root     20381  0.0  0.0   6056   796 pts/0    S+   18:09   0:00 grep httpd
[root@xuexi httpd-2.2.31]# netstat -lnp |grep 80
tcp        0      0 :::80                       :::*                        LISTEN      20367/httpd
[root@xuexi httpd-2.2.31]# /usr/local/apache2/bin/apachectl -l   (静态模块)
[root@xuexi httpd-2.2.31]# /usr/local/apache2/bin/apachectl -M   (动态模块)
userdir_module (static)
alias_module (static)
so_module (static)     (静态)
deflate_module (shared)  (动态)
expires_module (shared)
rewrite_module (shared)
Syntax OK
[root@xuexi httpd-2.2.31]# ls /usr/local/apache2/modules/     (动态配置文件)
httpd.exp  mod_deflate.so  mod_expires.so  mod_rewrite.so
[root@xuexi httpd-2.2.31]# ls /usr/local/apache2/bin/httpd    (静态配置文件)
/usr/local/apache2/bin/httpd
[root@xuexi httpd-2.2.31]# du -sh /usr/local/apache2/bin/httpd  
1.7M    /usr/local/apache2/bin/httpd
[root@xuexi httpd-2.2.31]# /usr/local/apache2/bin/apachectl -t   (查看配置文件是否有语法错误)
httpd: apr_sockaddr_info_get() failed for xuexi
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK
[root@xuexi httpd-2.2.31]# ls /usr/local/apache2/conf/httpd.conf   (语法配置文件)
/usr/local/apache2/conf/httpd.conf

[root@xuexi httpd-2.2.31]# /usr/local/apache2/bin/apachectl -l
  prefork.c  (工作模式)
[root@xuexi httpd-2.2.31]# ./configure --help |less
  --with-mpm=MPM          Choose the process model for Apache to use.
                          MPM={beos|event|worker|prefork|mpmt_os2|winnt}
(2.2默认是prefork,2.4默认是event) 
event模式由于把服务进程从链接中分离出来,在开启KeepAlive场合下相对worker模式能够承受的了更高的负载。event模式为worker开发的变种模式,配置以及指令与worker完全相同。不过event模式不能很好的支持https的访问,有时还会出现一系列的问题。
worker工作模式(与php配合不好,或者说暂时用不上)
worker模式由于使用线程来进行处理请求。同时worker模式也使用了多进程,每个进程又有着多个线程,以获得基于进程服务器的稳定性。
prefork模式使用进程进行处理,会根据服务器的硬件情况,设定apache最多只能同时建立256个进程


查看apache编译步骤
[root@xuexi ~]# cat /usr/local/apache2/build/config.nice
#! /bin/sh
#
# Created by configure

"./configure" \
"--prefix=/usr/local/apache2" \
"--with-included-apr" \
"--enable-so" \
"--enable-deflate=shared" \
"--enable-expires=shared" \
"--enable-rewrite=shared" \
"--with-pcre" \
"$@"
2016-04-08 19:06 举报
已邀请:
0

zhangyanlong

赞同来自:

111

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: