Chinaunix首页 | 论坛 | 博客
  • 博客访问: 185045
  • 博文数量: 33
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 552
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-14 14:02
文章分类
文章存档

2015年(1)

2014年(24)

2013年(8)

我的朋友

分类: LINUX

2013-11-20 11:22:42

今天准备在CentOS上通过源码安装apache,并开启服务。遇到了很多的问题,接下来就和大家分享一下经验。

一、Apache安装

  1. 首先确定系统上是否装有yum软件包管理器(一般安装系统时会自动安装)

  2. 登陆到Apache官网下载相应的软件包:

    apache httpd源码包:  

    apache apr源码包:    

    apache apr-util源码包:

  3. 先解压apache apr源码包

    #tar -jxvf apr-1.4.8.tar.bz2

    #cd apr-1.4.8

    #./configure --prefix=/usr/local/apr     (/usr/local/apr自定义路径,安装apache时需要配置的路径)

    #make   //编译

    #make install

  4. 再解压apache apr-util源码包

    #tar -jxvf apr-util-1.5.2.tar.bz2

    #cd apr-util-1.5.2

    #./configure --prefix=/usr/local/apr

    #make   //编译

    #make install

    :安装过程可能会遇到错误rm: cannot remove `libtoolT': No such file or directory

    如果遇到以上问题,则编辑configure文件,找到$RM "$cfgfile"行,将此行注释掉,重新执行./configure --prefix=/usr/local/apr即可。

  5. 以上两个安装完毕后,解压apache源码包

    #tar -jxvf httpd-2.4.6.tar.bz2

    #cd httpd-2.4.6

    #./configure -pprefix=/usr/local/apache --enable-track-vars --enable-cgi --enable-so

                                            --enable-mods-shared=most --enable-proxy-balancer=shared

                                            --enable-proxy-httpd=shared  --enable-proxy-ajp

                                            --enable-rewrite  --wiht-config-file-path=/usr/local/apr(apr安装路径)

  6. 执行完以上步骤,可能会提示遇到缺少各种依赖包的问题或依赖包版本过低的问题,我遇到的是缺少pcre包,随即到网上下载,步骤同上进行解压,编译过程。

    通过后,再次执行


    #./configure -pprefix=/usr/local/apache --enable-track-vars --enable-cgi --enable-so

                                            --enable-mods-shared=most --enable-proxy-balancer=shared

                                            --enable-proxy-httpd=shared  --enable-proxy-ajp

                                            --enable-rewrite  --wiht-config-file-path=/usr/local/apr(apr安装路径)

                                            --with-config-file-path=/usr/local/pcre(pcre安装路径)

    #make

    #make install

    执行完以上步骤,apache应该已经安装在电脑中。

  7. 如果遇到编译错误,可能原因是未安装gcc

    #yum install gcc

    #yum install gcc-c++

  8. 解释第6步中,"="后边编译的含义:--enable-track-vars为启动cookie的get/post等追踪功能差不多编译好了

                                    --enable-cgi支持CGI    --enable-so支持DOS模式

                                    --enable-mods-shared=most动态编译大部分模块

                                    --enable-proxy-balancer=shared支持负载均衡功能,动态编译apache的负载均衡模块

                                    --enable-proxy-httpd=shared动态编译httpd代理模块

                                    --enable-proxy-ajp动态编译proxy-ajp模块

                                    --enable-rewrite支持地址重写功能

                                    --wiht-config-file-path=/usr/local/apr需要加载的依赖包安装文件

二、Apache服务启动

  1. 首先查看系统中是否已启动自带的apache服务

    #ps -ef|grep httpd               结果:root 325 1 0 07:37 ? 00:00:00 /sbin/httpd  此路非我们安装的apache路径

  2. 卸载系统自带的apache

    #service httpd stop   //关闭httpd服务

    #rpm -qa|grep httpd  //查找与httpd有关的包罗列出来   结果:httpd-2.0.52-25.ent 由于系统版本不同,此处结果不一定相同,我们按由下到上的顺序卸载即可

    #rpm -e httpd 卸载httpd-2.0.52-25.ent相关包,-2.0.52-25.ent后面的版本号可以忽略不写

    对于实在卸载不掉的依赖包,可以使用#rpm -e httpd ——nodeps强制卸载(如果安装了nodeps包)

    #ps -ef|grep httpd   //校验是否卸载成功

  3. 如果系统里没有apache或者httpd服务,每次启动都要执行 /usr/local/apache/bin/apachectl start 比较麻烦,所以要将服务添加到系统服务中。

    将apachectl文件拷贝到/etc/rc.d/init.d 中,然后在/etc/rc.d/rc5.d/下加入链接即可。
    #cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd  //如果有其他的版本的Apache存在,也可以直接覆盖掉
    #ln -s /etc/init.d/httpd /etc/rc.d/rc5.d/S85httpd      //建立链接(85的意义后面介绍)

    此时Apache就可以自动启动了。

  4. 运行chkconfig –list,发现没有linux服务列表中httpd,通过chkconfig –add httpd来添加,但是提示:httpd服务不支持 chkconfig。需要编辑/etc/rc.d/init.d/httpd,添加以下注释信息:
    # chkconfig: 345 85 15
    #  description: Activates/Deactivates Apache Web Server
    第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关闭序号(15)。
    保存后执行:chkconfig –add httpd,成功添加。
    在rc3.d、rc4.d、rc5.d路径中会出现S85httpd的链接文件,其他运行级别路径中会出现K61httpd的链接文件。

  5. 运行chkconfig –list,发现linux服务列表中存在httpd,表示添加成功;

  6. 运行service httpd start启动服务;

  7. 以上动作可能产生错误

    httpd:httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

    这是apache配置文件内的错误,需要使用本机的IP作为服务地址。找到apache的配置文件(/usr/local/apache/conf/httpd.conf)进行修改,将ServerName改为127.0.0.1,并去掉行注释。

  8. 重启服务#service httpd restart。

  9. 校验是否启动成功

    #ps -ef|grep httpd         结果:daemon 330 325 0 08:22 ? 00:00:00 /usr/local/apache/bin/httpd -k start

    启动成功!

阅读(1277) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~