cetos6.8源码安装apache2.4.29

apache官网:http://httpd.apache.org

具体安装步骤:

1 配置安装apache的基础环境
2 下载想要安装的版本源码包
3 解压,预编译,编译,安装
4 启动,停止,测试页面,检验是否安装成功
5 编写启动脚本,将apache添加为系统服务,设置为开机启动

===================================================================

1 配置安装环境:

yum -y install gcc gcc++ zlib zlib-devel

卸载原有的Apache
rpm -qa|grep httpd
删除已经安装的所有httpd包
rpm -e --nodeps httpd-xxx-xxx.el6.xxx.x86_64

2 下载对应版本的包
wget http://mirrors.shuosc.org/apache//httpd/httpd-2.4.29.tar.gz

1)去http://httpd.apache.org/download 下载apache源码包

2)解压到/usr/src,在下载目录执行tar -zxvf httpd-x.x.x.tar.gz -C /usr/src (我用的是httpd-2.4.29.tar.gz)

3)进入目录/usr/src/httpd-2.4.29,

# ./configure --prefix=/usr/local/apache2 --with-mpm=worker --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache --enable-nonportable-atomics --enable-mods-shared=most --enable-so --enable-rewrite --enable-ssl

4)出现configure: error: APR not found。解决办法:

  4.1)去apr下载地址 http://apr.apache.org/ 下载源码
  wget http://mirrors.shuosc.org/apache//apr/apr-1.6.3.tar.gz
  http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz

  4.2)解压到/usr/src,在下载目录执行tar -zxvf apr-x.x.x.tar.gz -C /usr/src/ (我用的是apr- 1.6.3.tar.gz)

  4.3)进入目录/usr/src/apr-1.6.3,执行./configure --prefix=/usr/local/apr;make;make install

5)再次进入目录/usr/src/httpd-2.4.29,增加参数--with-apr=/usr/local/apr/

重新执行:./configure --prefix=/usr/local/apache2 --with-mpm=worker --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache --enable-nonportable-atomics --enable-mods-shared=most --enable-so --enable-rewrite --enable-ssl --with-apr=/usr/local/apr/

6)出现configure: error: APR-util not found .解决办法

  6.1)去apr-util下载地址 http://apr.apache.org/ 下载源码
  wget http://mirrors.shuosc.org/apache//apr/apr-util-1.6.1.tar.gz
  http://archive.apache.org/dist/apr/apr-util-1.5.2.tar.gz

  6.2)解压到/usr/src,在下载目录执行tar -zxvf apr-util-x.x.x.tar.gz -C /usr/src/ (我用的是apr-util-1.6.1.tar.gz)

  6.3)进入目录/usr/src/apr-util-1.6.1,执行./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/;make;make install

  6.4)make的时候出现错误
xml/apr_xml.c:35:19: error: expat.h: No such file or directory
xml/apr_xml.c:66: error: expected specifier-qualifier-list before ‘XML_Parser’
xml/apr_xml.c: In function ‘cleanup_parser’:
xml/apr_xml.c:364: error: ‘apr_xml_parser’ has no member named ‘xp’
xml/apr_xml.c:365: error: ‘apr_xml_parser’ has no member named ‘xp’
  解决办法:可能是缺少expat库
    6.4.1)yum install expat-devel 安装之后再make;make install

7)再次进入目录/usr/src/httpd-2.4.29,增加参数--with-apr-util=/usr/local/apr-util/,重新执行:./configure --prefix=/usr/local/apache2 --with-mpm=worker --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache --enable-nonportable-atomics --enable-mods-shared=most --enable-so --enable-rewrite --enable-ssl --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/

8)出现configure: error: pcre-config for libpcre not found.解决办法:

  8.1)去pcre下载地址 http://pcre.org/ 下载源码(注意:下载的时候一定不要下错了,不是pcre2 )
  wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz

  8.2)解压到/usr/src,在下载目录执行tar -zxvf pcre-x.x.tar.gz -C /usr/src/ (我用的是pcre-8.40.tar.gz)

  8.3)进入目录/usr/src/pcre-8.31,执行./configure --prefix=/usr/local/pcre;make;make install

9)再次进入目录/usr/src/httpd-2.4.29,增加参数--with-pcre=/usr/local/pcre,重新执行:./configure --prefix=/usr/local/apache2 --with-mpm=worker --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache --enable-nonportable-atomics --enable-mods-shared=most --enable-so --enable-rewrite --enable-ssl --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre

10)出现configure: WARNING: OpenSSL version is too old;checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures;解决办法:

  10.1)openssl源码下载地址http://www.openssl.org/source/ 下载源码
  wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz

  10.2)解压到/usr/src,在下载目录执行tar -zxvf openssl-x.x.x.tar.gz -C /usr/src/ (我用的是openssl-1.0.2n.tar.gz)

  10.3)进入目录/usr/src/openssl-1.0.1c,执行./config --prefix=/usr/local/openssl shared;make;make install

注意此处的shared选项,否则在httpd make的时候会报mod_ssl相关错误

11)再次进入目录/usr/src/httpd-2.4.3,增加参数--with-ssl=/usr/local/openssl,重新执行:./configure --prefix=/usr/local/apache2 --with-mpm=worker --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache --enable-nonportable-atomics --enable-mods-shared=most --enable-so --enable-rewrite --enable-ssl --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre --with-ssl=/usr/local/openssl ;预编译没有问题

make出现以下错误:
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_GetErrorCode'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetEntityDeclHandler
collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] Error 1
make[2]: Leaving directory `/usr/local/httpd-2.4.26/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/httpd-2.4.26/support'
make: *** [all-recursive] Error 1

解决办法发:centos6.8的系统使用1.6的apr 和apr-util版本太高了,需要降低版本,将apr和apr-util降为1.5的版本,在重新编译安装即可。下载地址如下:
http://archive.apache.org/dist/apr/apr-util-1.5.2.tar.gz
http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz

12)设置apache开机自动启动

首先拷贝apachectl到目录/etc/init.d/,执行命令sudo cp apachectl /etc/init.d/httpd
vim /etc/init.d/httpd 脚本首行添加以下两行
# chkconfig: 2345 71 71
# description: Apache2.4 is a world wide web server
注意:2345 是指改服务可以随系统的2345启动级别启动和停止,71 71 两个数字分别指启动顺序和停止顺序。
13)将httpd添加为开机启动
chkconfig --add httpd
这行命令的意思是在/etc/rc.d/rc*/ 添加/etc/init.d/httpd这个文件
chkconfig --list |grep httpd 查看是否将httpd添加为系统服务
chkconfig httpd on 开启开机启动httpd服务

14)去浏览器输入127.0.0.1,可以显示apache自带的网页It works。该网页的默认目录是在/usr/local/apache2/htdocs/。apache到此就安装OK了。

Centos6.8 编译安装Apache2.4的更多相关文章

  1. centos6.3编译安装Apache2.4.3+PHP5.4.8+Mysql5.5.8

    以虚拟机VirtualBox 版本是4.1.20(内存设置为512M,centos安装是文本模式下安装),全新以最小化包安装了32位的 CentOS6.3系统,作为本地web环境,上次讲了在windo ...

  2. CentOS6.8编译安装LAMP

    CentOS6.8编译安装Apache2.4.25.MySQL5.7.16.PHP5.6.29 初始化 #固定IP vi /etc/sysconfig/network-scripts/ifcfg-et ...

  3. CentOS6.3 编译安装LAMP(2):编译安装 Apache2.2.25

    所需源码包: /usr/local/src/Apache-2.2.25/httpd-2.2.25.tar.gz 编译安装 Apache2.2.25 #切换到源码目录 cd /usr/local/src ...

  4. CentOS6.3 编译安装LAMP(2):编译安装 Apache2.4.6

    Apache官方说: 与Apache 2.2.x相比,Apache 2.4.x提供了很多性能方面的提升,包括支持更大流量.更好地支持云计算.利用更少的内存处理更多的并发等.除此之外,还包括性能提升.内 ...

  5. 自己编写的:centos6.6上编译安装apache2.4+php5.6+mysql5.6【亲自】

    在centos6.6上安装apache2.4+php5.6+mysql5.6 关于wget的安装 将之前装系统的.iso文件挂载到光驱 由于我在/home/jinnan/下建立了一个cdrom文件夹 ...

  6. CentOS6.3 编译安装LAMP(1):准备工作

    卸载yum或rpm安装的amp软件 #在编译安装lamp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove htt ...

  7. CentOS6.3 编译安装LAMP(3):编译安装 MySQL5.5.25

    所需源码包: /usr/local/src/MySQL-5.5.25/cmake-2.8.8.tar.gz /usr/local/src/MySQL-5.5.25/mysql-5.5.25.tar.g ...

  8. CentOS6.3 编译安装LAMP(4):编译安装 PHP5.2.17

    所需源码包: /usr/local/src/PHP-5.2.17/libmcrypt-2.5.8.tar.gz /usr/local/src/PHP-5.2.17/mhash-0.9.9.9.tar. ...

  9. CentOS6.3 编译安装LAMP(4):编译安装 PHP5.3.27

    所需源码包: /usr/local/src/PHP-5.3.27/libmcrypt-2.5.8.tar.gz /usr/local/src/PHP-5.3.27/mhash-0.9.9.9.tar. ...

随机推荐

  1. Learning-Python【22】:面向对象初识

    一.面向过程:是一种编程思想,核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么,基于该编程思想写程序就好比在设计一条流水线,是一种机械式的思维方式 优点:把复杂问题流程化,进而简 ...

  2. Tampermonkey脚本属性

    新建脚本属性: // ==UserScript== // @name New Userscript 脚本名 // @namespace http://tampermonkey.net/ 脚本主页 // ...

  3. 表单提交:button input submit 的区别

    http://harttle.com/2015/08/03/form-submit.html 最近项目代码中的表单提交的方式已经百花齐放了,现在用这篇文章来整理一下不同表单提交方式的区别,给出最佳实践 ...

  4. 《Blue Flke》团队项目的原型设计与开发

    实验目的: 1.掌握软件原型开发技术 2.学习使用软件原型开发工具 实验过程和步骤: 任务1.针对实验六团队项目选题,采用适当的原型开发工具设计团队项目原型. 任务2.在团队博客发布博文,陈述团队项目 ...

  5. Codeforces 1107 E - Vasya and Binary String

    E - Vasya and Binary String 思路:区间dp + 记忆化搜索 转移方程看上一篇博客. 代码: #pragma GCC optimize(2) #pragma GCC opti ...

  6. Spring中的@Async

    在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3.x之后, ...

  7. Multivariate normal distribution | 多元正态分布

    现在终于需要用到了.

  8. 『PyTorch × TensorFlow』第十七弹_ResNet快速实现

    『TensorFlow』读书笔记_ResNet_V2 对比之前的复杂版本,这次的torch实现其实简单了不少,不过这和上面的代码实现逻辑过于复杂也有关系. 一.PyTorch实现 # Author : ...

  9. hdu6133 Army Formations 线段树合并

    给你一棵有n个节点的二叉树,每个节点有一个权值,对于一棵子树u,将u的子树中的节点权值从大到小排序,令sz[u]为子树u的大小, 则ans[u] = 1 * a[1] + 2 * a[2] + ... ...

  10. JAVA的原子性和可见性,线程同步的理解

    1.原子性 (1)原子是构成物质的基本单位(当然电子等暂且不论),所以原子的意思代表着——“不可分”: (2)原子性是拒绝多线程操作的,不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它 ...