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" \
"$@"
[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" \
"$@"
编辑回复