传送门:http://blog.csdn.net/zhangatle/article/details/77416996  小心坑!填完就懂怎么安装了

Note:要从零开始搭建,就不要嫌中间遇到各种问题!

一.下载apache及相关安装包(包括httpd,apr,par-util,pcre等),并上传到服务器上,本人上传到/home/zhangatle/tar目录下

1.下载地址:http://httpd.apache.org/download.cgi 找稳定的最新的版本(Stable Release) 
得到文件 httpd-2.4.27.tar.gz 
2. 上传到你的服务器目录,如:/home/zhangatle/tar

解压:tar zxvf httpd-2.4.27.tar.gz (我们下载的是源代码,所以这一步只是把源代码解压) 

接下来我们需要编译刚才解压的源文件,这是重点

配置编译时的一些参数:

 cd /home/zhangatle/httpd-2.4.  (切换到apache源代码目录下)
./configure --prefix=/usr/local/httpd (设置apache安装目录,这里的 /usr/local/httpd 才是apache真正的安装目录)

二. 到这里时,回车运行命令,报错:

(如果你能正常执行,说明你以前安装过apache环境,请直接make & make install 并请跳过下面一段),报错的按照以下方式解决 

checking for APR… no configure: error: APR not found. Please read
the documentation.

解决方案: 
Apache在安装时需要一些准备环境,这里需要安装另外一个东西 APR(Apache Portable Runtime)。 
下载地址: http://archive.apache.org/dist/apr/ 同样找最新版本 
得到文件:apr-1.6.2.tar.gz 
解压:tar zxvf apr-1.6.2.tar.gz 
编译:

 cd /home/zhangatle/apr-1.6.
./configure --prefix=/usr/local/apr (一堆日志信息)
make (一堆日志信息)
make install (一堆日志信息)

继续报错,是不是很惊喜?这里需要安装apr-devel

 
运行以下命令:

yum install apr-devel

再次make&&make install 以上apr,安装成功,在指定地址生成目录和文件

接着切换到上级目录,进入apache ,装apache,切换到源代码目录设置编译参数: ./configure –prefix=/usr/local/httpd –enable-modules=all –enable-mods-shared=all –enable-so 
还是报上面的错,这是因为上面自定义了apr的安装目录,所以得把这个信息告诉apache。 
正确的运行命令为:

./configure --prefix=/usr/local/httpd --enable-modules=all --enable-mods-shared=all --enable-so --with-apr=/usr/local/apr/  

三. 执行后继续报错

不过这次错误信息变成了:(不要紧,这说明你的apr安装好了,只是又发现少了另外一个环境,慢慢来)

checking for APR-util… no configure: error: APR-util not found.
Please read the documentation.

解决方案: 下载 APR-util 
下载地址:http://archive.apache.org/dist/apr/ 找最新版本 
得到文件:apr-util-1.6.0.tar.gz 
解压: tar -zxvf apr-util-1.6.0.tar.gz 
编译:

 cd /home/zhangatle/tar/apr-util-1.6.
./configure --prefix=/usr/local/apr-util/

这次运行会报错:

checking for APR… no configure: error: APR could not be located.
Please use the –with-apr option.

看到提示你就懂了,不多说:

 ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/
make
make install

意料中的惊喜–>继续报错,居然还是一个致命错误,惊不惊喜?

 
解决方法: 
安装一个依赖包:

yum install expat-devel

安装完成后,继续上面apr-util的make和make install 操作 
apr-util安装成功后 
在你指定的安装地址生成目录就说明安装成功了

四. 再转回去继续安装apache

有了上回的经验,这次就知道运行什么命令了。切到apache源代码目录下运行:

./configure --prefix=/usr/local/httpd --enable-modules=all --enable-mods-shared=all --enable-so  --with-apr=/usr/local/apr/  --with-apr-util=/usr/local/apr-util/

照旧报错: 

checking for pcre-config… false configure: error: pcre-config for
libpcre not found. PCRE is required and available from

解决方案:发现还是少环境,不多说,下载 PCRE 
下载地址: http://jaist.dl.sourceforge.net/project/pcre/pcre/ 找最新版下 
得到文件: pcre-8.41.tar.gz 
解压:tar -zxvf pcre-8.41.tar.gz 
编译:

 cd /home/zhangatle/tar/pcre-8.41
./configure --prefix=/usr/local/pcre/

这次错误信息如下: 

checking for windows.h… no configure: error: You need a C++ compiler
for C++ support.

原来pcre需要用C++编译(我只想说:Why I need C++ while I’m a PHP programmer? Eggache! Holy Shit!)

解决方案:

yum install gcc gcc-c++ gdb autoconf automake

这里会花费很长时间安装东西,中间会让你选择是否安装,输入 y 就行了。 
下载过程完成后会自动安装,最终见到 Complete! 就结束了。 
返回来还得继续安装PCRE啊,Go:

 ./configure --prefix=/usr/local/pcre/
make
make install

安装成功,以最终在目标位置生成相应目录为准。

补充: 可能其中还会报一个小错误,应该是pcre-devel的问题,安装一下,重新执行apache 安装就好

yum install pcre-devel

至此,令人头疼的apache准备环境就算搞定了。

五. 继续apache的安装,一定要在参数中带上以上3种环境配置:

./configure --prefix=/usr/local/httpd --enable-modules=all --enable-mods-shared=all --enable-so  --with-apr=/usr/local/apr/  --with-apr-util=/usr/local/apr-util/  --with-pcre=/usr/local/pcre/  

大块的log,终于没报错(唯有泪千行啊。。。泪千行。。。) 
make 
make install 
六. 最后测试apache:

 cd /usr/local/httpd/bin
./apachectl start

如果不能启动,查下端口冲突之类的问题(一般会与系统自带的httpd服务端口冲突)。 
启动好后,访问你的apache,看到经典 
It works! 
关闭时用:./apachectl stop

七.附录: 
http://apache.jz123.cn/install.html 中文版官方编译与安装教程

码完收功!!!

转: CentOS上安装LAMP之第一步:Apache环境及安装过程报错解决方案(纯净系统环境)的更多相关文章

  1. 转:CentOS上安装LAMP之第三步:MySQL环境及安装过程报错解决方案(纯净系统环境)

    这是AMP运行环境中最后配置的环境: 惯例传送门: 1.编译安装MySQL cd /home/zhangatle/tar tar zxvf mysql-.tar.gz cd mysql- cmake ...

  2. 转: CentOS上安装LAMP之第二步:PHP环境及安装过程报错解决方案(纯净系统环境)

    最近有空就配置CentOS系统上的AMP环境,现在配置到PHP环境了 多话不说上传送门:http://blog.csdn.net/zhangatle/article/details/77447653 ...

  3. Android上掌纹识别第一步:基于OpenCV的6种肤色分割 源码和效果图

    Android上掌纹识别第一步:基于OpenCV的6种肤色分割 源码和效果图 分类: OpenCV图像处理2013-02-21 21:35 6459人阅读 评论(8) 收藏 举报   原文链接  ht ...

  4. Newbe.Claptrap 框架入门,第一步 —— 开发环境准备

    Newbe.Claptrap 框架依托于一些关键性的基础组件和一些可选的辅助组件.本篇我们来介绍一下如何准备一个开发环境. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如 ...

  5. Sybase ASE安装过程报错,无法创建数据库设备[AM fork() failed]

    今天同事要搭建一套测试环境,安装开发版的SYBASE ASE 15.03 Windows平台下的,发现安装过程中到了创建数据库设备的环节就开始报错了,报错信息如下: 03/24/14 09:31:44 ...

  6. Aspen安装过程报错总结

    前几天一直帮朋友安装Aspen v11,因为之前的老版本总是报错,报错内容大概是证书过期了, 一开始朋友电脑上的老版本的Aspen 8卸载了,删除之前的数据库SqlServer 2012 ,然后重新安 ...

  7. Java+Selenium 上传文件,点击选择“浏览文件”按钮,报错invalid argument

    Java+Selenium 上传文件,点击选择"浏览文件"按钮,报错invalid argument 解决代码: Actions action=new Actions(driver ...

  8. 第一步 django的下载安装

    django是python众多web框架中比较有名的一个,以大包大揽功能俱全而著名.但作为重量级的web框架,难免性能上回有所损失,不过由于其封装了各种API,在开发的时候会便利许多.所以也是深受欢迎 ...

  9. FFmpeg在Android上的移植之第一步

    http://blog.sina.com.cn/s/blog_69a04cf40100x1fr.html 从事多媒体软件开发的人几乎没有不知道FFmpeg的,很多视频播放器都是基于FFmpeg开发的. ...

随机推荐

  1. 赛后总结——codeforces round 551 div2

    传送门:QAQQAQ 好歹这次比赛打进前1000了...但第一题WA掉也是醉了... 每次比赛刚开始都是太心急,第一题写的特别快,不经过任何检查,结果最近两次比赛都死在了A题上... A题一上来把n, ...

  2. PHP面向对象魔术方法之__get 和 __set函数

    l 基本的介绍 (1) 当我们去使用不可以访问的属性时,系统就会调用__get方法. (2) 不可以访问的属性指的是(1 . 该属性不存在 2. 直接访问了protected或者private属性) ...

  3. PAT甲级——A1077 Kuchiguse

    The Japanese language is notorious for its sentence ending particles. Personal preference of such pa ...

  4. 运行第一个python程序,python 变量,常量,注释

    一.运行第一个python程序: print('Hello,world') 保存为.py文件 在cmd窗口: python3x:python  py文件路径 回车 python2x:python  p ...

  5. <el-tag></el-tag>部分属性与vue版本的兼容问题

    [01]标签使用按钮样式<el-tag effect="dark" v-if="myhotelinfo.runstatus=='T'" type=&quo ...

  6. 《数据结构与算法分析——C语言描述》ADT实现(NO.05) : 散列(Hash)

    散列(Hash)是一种以常数复杂度实现查找功能的数据结构.它将一个关键词Key,通过某种映射(哈希函数)转化成索引值直接定位到相应位置. 实现散列有两个关键,一是哈希函数的选择,二是冲突的处理. 对于 ...

  7. fastjson循环引用 问题@ManyToOne @OneToOne返回数据中"$ref"问题

    返回数据为 这样前端就无法获取正确数据(至少是不改变代码,不增加代码量的情况下) 所以还是改返回值比较好 根据查阅 https://blog.csdn.net/qq_38487524/article/ ...

  8. Linux 7.X 解锁用户账号

    Linux 7.X 解锁用户账号 使用指令:sudo passwd -u tomcat ,解锁. 但是会有如下提示信息: 因为 55 失败登录而锁定账户 此时,需执行指令:pam_tally2 -u ...

  9. oracel 管理维护

    共享池中的缓存: 绑定变量是一种优化执行的方式. lgwr 重做日志进程dbwr 数据写进程smon 系统监督进程pmon 进程监督进程ckpt 校验点进程 arch 归档日志进程 spool 命令可 ...

  10. PetaPoco 基础操作

    //初始化数据库连接 var db=new PetaPoco.Database("connectionStringName"); //查询单个值 long count=db.Exe ...