编译安装httpd 2.4

编译安装LAMP之:编译安装httpd 2.4

环境介绍:

    系统环境:CentOS6.5

所需软件包:apr-1.5.2.tar.gz、apr-util-1.5.2.tar.gz、httpd-2.4.6.tar.gz


  注意:httpd2.4需要依赖apr和arp-util 1.4以上版本


  CentOS编译安装Apache准备:确保开发包组已安装(Development tools、Server Platform Development) 

yum groupinstall "Development Tools" "Server Platform Development" -y


安装依赖:

1、下载官方源码包并解压:


httpd-2.4需要较新版本的apr(1.4以上)和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。这里选择使用编译源代码的方式进行。


wget http://archive.apache.org/dist/httpd/httpd-2.4.6.tar.bz2

wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz  

wget http://archive.apache.org/dist/apr/apr-util-1.5.2.tar.gz


1.1 安装apr:


    [root@Server src]# tar xf apr-1.5.2.tar.gz 

    [root@Server src]# cd apr-1.5.2.tar.gz

    [root@Server apr-1.5.2]# ./configure --prefix=/usr/local/apr

    [root@Server apr-1.5.2]# make

    [root@Server apr-1.5.2]# make install

说明:编译时报错提示 rm: cannot remove `libtoolT': No such file or directory

      解决:直接打开 configure,把 $RM “$cfgfile” 那行删除掉,重新再运行 ./configure 就可以了。


1.2 安装apr-util


    [root@Server src]# tar xf apr-util-1.5.2.tar.gz

[root@Server src]# cd apr-util-1.5.2

    [root@Server apr-util-1.5.2]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

    [root@Server apr-util-1.5.2]# make

    [root@Server apr-util-1.5.2]# make install



编译说明:


    --prefix指定安装路径;


    --with-apr指定apr的安装路径,apr-util依赖于apr


2、编译安装httpd

2.1 安装依赖:


    [root@Server src]# yum -y install pcre-devel openssl-devel


2.2 编译安装


    [root@Server src]# tar xf httpd-2.4.6.tar.bz2

    [root@Server src]# cd httpd-2.4.6

    [root@Server httpd-2.4.6]# ./configure \

    --prefix=/usr/local/apache \

    --sysconfdir=/etc/httpd \

    --enable-so \

    --enable-rewrite \

    --enable-ssl \

    --enable-cgi \

    --enable-cgid \

    --with-zlib \

    --with-pcre \

    --enable-modules=most \

    --enable-modules-shared=most \

    --enable-mpms-shared=all \

    --with-mpm=event \

    --with-apr=/usr/local/apr \

    --with-apr-util=/usr/local/apr-util


    [root@Server httpd-2.4.6]# make

    [root@Server httpd-2.4.6]# make install


编译说明:


    --prefix=/usr/local/apache :指定安装目标路径

    --sysconfdir=/etc/httpd :指定配置文件安装位置

    --enable-so :支持动态共享模块,如果没有这个模块PHP将无法与apache结合工作;DSO兼容,DSO=Dynamic Shared Object,动态共享对象,可实现模块动态生效

    --enable-rewirte :支持URL重写

    --enable-ssl :启用支持ssl 支持SSL/TLS,可实现https访问 需已安装openssl-devel

    --enable-cgi :启用支持cgi (默认情况下启用非线程MPM)

    --enable-cgid : 启用支持cgid (默认情况下启用线程MPM )

--with-zlib : 支持zlib压缩,传输层的压缩(不指定具体的路径,默认在系统中搜索)

    --with-pcre : 支持正则化(不指定具体的路径,默认在系统中搜索)

    --enable-modules=most :支持动态启用的模块,可选参数:all,most,few,reallyall

    --enable-mods-shared=most :安装大多数共享模块,可选参数:all,most,few,reallyall (可选)

    --enable-mpms-shared=all :支持全部多道处理方式

--with-mpm :#设置默认启用的MPM模式,{prefork|worker|event}

    --with-apr=/usr/local/apr :指定apr路径

    --with-apr-util=/usr/local/apr-util :指定apr-util路径


3、配置httpd 2.4(基于域名的虚拟主机)

[root@Server ~]# vim /etc/httpd/httpd.conf

# DocumentRoot "/usr/local/apache/htdocs"    # 注释掉DocumentRoot关闭主服务配置段

Include /etc/httpd/extra/httpd-vhosts.conf    # 启用虚拟主机功能



4、配置虚拟主机配置文件

[root@Server ~]# vim /etc/httpd/extra/httpd-vhosts.conf

<VirtualHost 192.168.100.11:80>

    ServerAdmin webadmin@parparxy.com

    DocumentRoot "/usr/local/apache/htdocs/test1/"

    ServerName test1.parparxy.com

    ErrorLog "logs/test1-error_log"

    CustomLog "logs/test1-access_log" common

</VirtualHost>

<VirtualHost 192.168.100.11:80>

    ServerAdmin webadmin@parparxy.com

    DocumentRoot "/usr/local/apache/htdocs/test2/"

    ServerName test2.parparxy.com

    ErrorLog "logs/test2-error_log"

    CustomLog "logs/test2-access_log" common

</VirtualHost>



5、生成测试网页

[root@Server ~]# cd /usr/local/apache/htdocs/

[root@Server htdocs]# mkdir test1 && echo "<h1> test1 </h1>" > test1/index.html

[root@Server htdocs]# mkdir test2 && echo "<h1> test2 </h1>" > test2/index.html



6、测试脚本文件语法是否正确

[root@Server ~]# ln -sv /usr/local/apache/bin/httpd /usr/bin/

`/usr/bin/httpd' -> `/usr/local/apache/bin/httpd'

[root@Server ~]# httpd -t

Syntax OK


7、为httpd执行文件创建PATH:


    # vi /etc/profile.d/httpd.sh #添加如下一行


    export PATH=$PATH:/usr/local/apache/bin

8、启动apache服务

[root@Server httpd-2.4.6]# apachectl start

[root@Server httpd-2.4.6]# netstat -tunlp | grep 80

tcp        0      0 :::80                       :::*                        LISTEN      23850/httpd         

[root@Server httpd-2.4.6]# 



9、头文件输出给系统:

# ln -sv /usr/local/apache/include /usr/local/include/httpd


10、为httpd执行文件创建PATH:


    # vi /etc/profile.d/httpd.sh #添加如下一行


    export PATH=$PATH:/usr/local/apache/bin让系统重新生成库文件路径缓存:

    # ldconfig -v |grep "^[^[:space:]]"


11、为httpd执行文件创建PATH:


    # vi /etc/profile.d/httpd.sh #添加如下一行


    export PATH=$PATH:/usr/local/apache/bin为日志文件创建软连接:


    # ln -fs /usr/local/apache/logs /var/log/httpd ##设置软链接以适应init脚本

# apachectl start 默认的启动apache方式


至此,就可以使用service httpd start 命令启动httpd了。



12、配置启动脚本:


[root@Server httpd-2.4.6]# cp build/rpm/httpd.init /etc/init.d/httpd //使用init脚本管理httpd

[root@Server httpd-2.4.6]# chmod 755 /etc/init.d/httpd //增加执行权限

[root@Server httpd-2.4.6]# chkconfig --add httpd //添加httpd到服务开机启动

[root@Server httpd-2.4.6]# ln -sf /usr/local/apache/bin/httpd /usr/sbin/httpd




问题:

Apache启动出现:

[root@Server httpd-2.4.6] service httpd restart

AH00557: httpd: apr_sockaddr_info_get() failed for linux.64.114

AH00558: httpd: Could not reliably determine the server's fully qualified domain


name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this


message


解决:

[root@Server httpd-2.4.6] vi /server/apache/conf/httpd.conf


修改ServerName www.example.com:80 为 ServerName localhost:80



首次启动服务,80端口未被监听:

# cat /usr/local/apache/logs/error_log

  报错提示:Resource Temporarily unavailable

  解决:

# ulimit -u unlimited   #修改 用户最大进程数  

# echo ulimit -u unlimited >>/etc/profile   #保存修改到自启动文件  



本文转自 dengaosky 51CTO博客,原文链接:http://blog.51cto.com/dengaosky/1852827,如需转载请自行联系原作者

上一篇:UDP socket流程(14)——ip_local_out及其调用的函数


下一篇:一个小的日常实践——高速Fibonacci数算法