源代码安装apache流程
一、 首先下载apache、 zlib
apache地址: http://www.apache.net
zlib地址: http://www.zlib.net
下载目录: /usr/local/src
二、 确认机器中是否已经安装了apache 和 zlib 命令: rpm -qa | grep httpd
如果已经安装, 卸载掉低版本的apache
命令: rpm -r {softname}
由于下载的源码使用C语言编写的, 安装之前需要确认是否系统中是否已经安装了编译工具gcc
使用命令: gcc -v 确认是否已经安装。
三、 下载apache依赖的apr, 防止安装apache时出现【apr not found问题】
下载目录: /usr/local/src
命令: cd /usr/local/src
wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
安装具体步骤:
a:解决apr not found问题>>>>>>
tar -zxf apr-1.4.5.tar.gz
cd apr-1.4.5
./configure --prefix=/usr/local/apr
make
make install
b:解决APR-util not found问题>>>>
tar -zxf apr-util-1.3.12.tar.gz
cd apr-util-1.3.12
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install
c:解决pcre问题>>>>>>>>>
unzip -o pcre-8.10.zip
cd pcre-8.10
./configure --prefix=/usr/local/pcre
make
make install
四、 安装apache2依赖的zlib库
tar xvf zlib-1.2.3.tar.gz
-1.2.3
./configure --prefix=/usr/local/zlib
make
make install
notice1: 如果中间编译或者安装时出错, 可以执行命令: make clean 清除掉已安装的文件,重新进行安装
notice2: 可以用 ./configure help 来查看可以进行的配置项, 该命令需要在安装文件的base目录下执行
五、 安装apache, 该过程花费的时间稍微长一些
注意事项:
安装apache时, 根据自己的网站定制安装功能:
指定安装的位置 /usr/local/apache2
指定配置文件安装 /etc/httpd/
指定zlib库的位置
请求的映象到用户特定目录
以动态共享对象(DSO)编辑**
基于规则的url操作
步骤:
cd /usr/local/apache2
./configure \
--prefix=/usr/local/apache2 \
--sysconfdir=/etc/httpd \
--with-z=/usr/local/zlib \
--with-included-apr \ 使用捆绑apr的副本(可以不装)
--disable-userdir \ 请求的映象到用户特定的目录
--enable-so \ 以动态共享对象编译(必须安装)
--enable-rewrite=shared \ 基于规则的url操控
--enable-deflate=shared \ 缩小传输编码的支持
--enable-expires=shared \ 期满头控制
--enable-static-support \建立一个静态链接版本的支持
--with-apr=/usr/local/apr \ 依赖的apr
--with-apr-util=/usr/local/apr-util \ 依赖的apr-util
--with-pcre=/usr/local/pcre 依赖的pcre
make
make install
六、 以上步骤执行完之后, 安装成功,如下:
需要下载的源代码放在: /usr/local/src 下, 有 apche zlib apr apr-uril pcre 五个源文件
安装目录分别在
/usr/local/apache2
/usr/local/zlib
/usr/local/apr
/usr/local/apr-util
/usr/local/pcre
七、启动apache
需要先修改http.conf 文件, 将被注释掉的#ServerName www.example.com:80放开,
即:ServerName www.example.com:80,防止在启动的时候出现以下错误:
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
然后:
cd /usr/local/apache2/bin
./apachectl start 启动服务
./apachectl stop 停止服务
用netstat -ntl | grep httpd 查看是否已经被启动。
浏览器中敲入 http://127.0.0.1, 出现 It works 代表成功。
八、启动参数可以灵活使用,可以参考使用,如下:
httpd [ -d serverroot ] [ -f config ] [ -C directive ] [ -c directive] [ -D parameter ] [ -e level ] [ -E file ] [ -k start|restart|graceful|stop ] [ -R directory ] [ -h ] [ -l ] [ -L ] [-S] [ -t ] [ -v ] [ -V ] [ -X ]
参数说明:
-d serverroot
为ServerRoot指令设置初始值为serverroot。它可以被配置文件中的ServerRoot指令所覆盖。其默认值是/usr/local/apache2.
-f config
在启动中使用config文件的指令。如果config不是以/开头的文件名, 则它是相对于ServerRoot的一个路径。其默认值是conf/httpd.conf.
-k start|restart|graceful|stop
发送信号使httpd启动、重新启动或停止。更多信息请参见停止Apache.
-C directive
在读取配置文件之前,先处理directive的配置。
-c directive
在读取配置文件之后,再处理directive的配置。
-D parameter
设置参数parameter ,它配合配置文件中的<IfDefine>段,用于在服务器启动和重新启动时,有条件地跳过或处理某些命令。
-e level 在服务器启动时,设置LogLevel为level。它用于在启动时,临时增加出错信息的详细程度,以帮助排错。
-E file 将服务器启动过程中的出错信息发送到文件file。
-R directory 当在服务器编译中使用了SHARED_CORE规则时,它指定共享目标文件的目录为directory。
-h 输出一个可用的命令行选项的简要说明。
-l 输出一个编译在服务器中的模块的列表。它不会列出使用LoadModule指令动态加载的模块。
-L 输出一个指令的列表,并包含了各指令的有效参数和使用区域。
-S 显示从配置文件中读取并解析的设置结果(目前仅显示虚拟主机的设置).
-t 仅对配置文件执行语法检查。程序在语法解析检查结束后立即退出,或者返回0(Syntax OK),或责返回非0的值(Syntax Error)。如果还指定了-D DUMP_VHOSTS ,会显示虚拟主机配置的详细信息。
-v 显示httpd的版本,然后退出。
-V 显示httpd的版本和编译参数, 然后退出。
-X 以调试模式运行httpd。仅启动一个工作进程,并且服务器不与控制台脱离。