安装环境:CentOS Linux release 7.0.1406 (Core)

0x01

到官网http://httpd.apache.org/download.cgi#apache24下载apache http最新版

tar zxf httpd-2.4.18.tar.gz

[root@localhost httpd-2.4.18]# rpm -qa | grep apr          查看当前主机上是否安装apr/apr-util,这个库为apache提供跨平台的支持

[root@localhost httpd-2.4.18]# yum install apr apr-util   这两个包在光盘镜像都有,配置和yum源即可

使用yum安装的apr位置信息

[root@localhost httpd-2.4.18]# rpm -ql apr
/usr/lib64/libapr-1.so.0
/usr/lib64/libapr-1.so.0.4.8
/usr/share/doc/apr-1.4.8
/usr/share/doc/apr-1.4.8/CHANGES
/usr/share/doc/apr-1.4.8/LICENSE
/usr/share/doc/apr-1.4.8/NOTICE
[root@localhost httpd-2.4.18]# rpm -ql apr-util
/usr/lib64/apr-util-1
/usr/lib64/libaprutil-1.so.0
/usr/lib64/libaprutil-1.so.0.5.2
/usr/share/doc/apr-util-1.5.2
/usr/share/doc/apr-util-1.5.2/CHANGES
/usr/share/doc/apr-util-1.5.2/LICENSE
/usr/share/doc/apr-util-1.5.2/NOTICE

0x02 Apache编译选项

--prefix=/usr/local/apache 
--sysconfdir=/etc/httpd 
--with-apr=/usr/local/apr
--with-apr-util=/usr/local/apr-util

--enable-so             //打开 so 模块,so 模块是用来提 DSO 支持的,提供动态共享模块与php协作
--enable-ssl             //https使用
--enable-cgi            //为非线程方式工作的mpm使用
--enable-rewrite     //支持 URL 重写
--enable-zlib          //通用压缩机制
--with-pcre            //支持pcre
--enable-module=most      //启用大多数常用的模块
--enable-mpms-shared=most        //启用MPM支持的模式,启用哪种mpm(prefork,worker,event),使用worker或event时要另外一种方式编译php(编译时使用了–enable-maintainer-zts选项)
--with-mpm=MPM          //指定默认的mpm

--enable-deflate       //传输压缩机制,节约带宽
--enable-cgid         //以线程工作(worker/event)的mpm使用

更多的选项可以通过./configure --help 了解

官方的编译选项文档http://httpd.apache.org/docs/current/programs/configure.html

0x03 安装

[root@localhost httpd-2.4.18]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-zlib --enable-module=most --enable-mpms-shared=most --with-mpm=event

使用以上编译选项进行编译,编译的时候发现报错,难道使用yum安装的apr就不行了吗?还是因为版本问题导致的。其实这里说明apr-config文件,但是apr的rpm包并未包含,所以应该安装apr-devel的rpm包。这里用源码安装解决

checking for APR... configure: error: the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file.

1、到官网下载apr和apr-util源码安装。

[root@localhost httpd-2.4.18]# tar zxf /mymnt/mnt/apr-1.5.2.tar.gz -C /usr/local/src/
[root@localhost httpd-2.4.18]# tar zxf /mymnt/mnt/apr-util-1.5.4.tar.gz -C /usr/local/src/

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

[root@localhost httpd-2.4.18]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-zlib --enable-module=most --enable-mpms-shared=most --with-mpm=event --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

2、安装完apr后还需要安装pcre,打算到官网下载的,很简洁的网页,但是下载页面打不开。在yum源中找到了

configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

[root@localhost httpd-2.4.18]# yum install pcre-devel

3、继续执行checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures,这是因为缺少openssl

[root@localhost httpd-2.4.18]# yum install openssl-devel

4、最后出现的一个报错是configure: error: MPM most does not support dynamic loading.

从字面上可以了解,此时将--enbale-mpm-shared改为all即可

make && make install

0x04  如何启动

没有做任何设置尝试启动时 [root@localhost apache2]# bin/apachectl start

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

更改下主机名即可或者直接忽略

Apache 没有带服务脚本,所以需要自己编写一个用来实现开机启动。当然这里临时使用的就略过了

附:编译安装后一般设置

1、导出头文件;以目录链接的形式来实现

[root@localhost]# ln -sv /usr/local/apache2/include/ /usr/include/httpd

2、输出二进制程序

[root@localhost]# vim /etc/profile.d/httpd24.sh

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

[root@localhost]#. /etc/profile.d/httpd24.sh

3、导出man文件

[root@localhost]# vim /etc/man.config

MANPATH /usr/local/apache2/man

[root@localhost]# man -M /usr/local/apache2/man httpd

4、导出库文件

把lib目录路径输出到/etc/ld.so.conf.d

[root@localhost]#echo “/usr/local/apache2/lib” > /etc/ld.so.conf.d/httpd

5、服务脚本

写个启动脚本放置在/etc/init.d/目录即可用service启动

Centos7 Apache 2.4.18编译安装的更多相关文章

  1. Centos7 搭建LAMP环境(编译安装)

    1.查看系统版本 [niemx@localhost ~]$ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 2.安装软件准备 ...

  2. Centos7 php 5.6.19编译安装

    0x01  前言 在php官网下载php-5.6.19.tar.gz源代码(php7虽然说性能提升很大,但是小菜菜还是先用着这个先吧),解压后根目录有个INSTALL文件,里面有安装教程了,目录如下: ...

  3. 在 CentOS7最小化 下的编译安装:Nginx 1.5.2 + PHP 5.5.7 + MySQL 5.6.10

    1.安装Nginx: 安装包目录 mkdir -p /Data/tgzcd /Data/tgz 安装编译依赖 yum install wget yum install pcre yum install ...

  4. centos7下比特币源码编译安装

    今天我们介绍比特币的源码安装过程,是利用编译安装的 首先安装依赖 1 yum install -y boost-devel qt-devel protobuf-devel qrencode-devel ...

  5. Apache Mesos1.0.1 编译安装部署教程(ubuntu)

    参考资料 官方文档:http://mesos.apache.org/documentation 中文翻译:http://mesos.mydoc.io/ GitHub:https://github.co ...

  6. centos7下vim8.1的编译安装教程

    之前安装YouCompleteMe的时候遇到vim版本不兼容的问题,看网上说是需要将vim版本提升到8.0及以上,然后就开始安装最新版本的vim,安装过程中的遇到了不少问题主要集中在配置方面和缺少插件 ...

  7. CentOS7 Hadoop 3.1.0 编译安装

    1.配置环境变量 JAVA_HOME=/jdk1..0_131 ANT_HOME=/apache-ant- MAVEN_HOME=/apache-maven- FINDBUGS_HOME=/findb ...

  8. 以Apache模块的方式编译安装php-5.4.27

    为什么要安装低版本的php? 由于apc,xcache的更新版本跟不上php版本的速度,所以,我们需要安装比较稳定的php低版本程序,再安装其它与之相匹配的扩展. 开工: 新建用户及用户组 group ...

  9. 以Apache模块的方式编译安装php-5.5.4

    新建用户及用户组 groupadd webuser useradd -g webuser webuser 下载php-5.5 下载地址:http://pan.baidu.com/s/1o6I6Lnk ...

随机推荐

  1. ClientAbortException 异常解决办法

    http://blog.sina.com.cn/s/blog_43eb83b90102ds8w.html ClientAbortException 异常解决办法 当我们用Servlet导出图片,或用J ...

  2. iOS沙盒机制介绍,Block 的介绍

    一.iOS沙盒机制介绍 (转载) 1)概念:每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 系统隔离,ios系统不允许访问 其他应用的应用沙盒,但在ios8中已经开放访 ...

  3. TCP/UDP的接收包方式

    UDP udp不是流式的,每次接收一个包,长度不超过(65535-28,总包长65535字节,包头28字节).所以UDP方式下不需要填写任何参数直接调用 $client->recv() 即可.注 ...

  4. 1 、Linux-Rhel6终端介绍-Shell提示符

    1.Linux 终端介绍 tty-控制台终端: RHEL6 tty1-tty6  tty就是图形界面 从图形界面切换到字符界面: ctrl+shift+alt +F2~F6 从字符界面切换图形或字符: ...

  5. SpringBoot之springfox(Swagger) (ApiDoc接口文档)

    Springfox的前身是swagger-springmvc,是一个开源的API doc框架,可以将我们的Controller的方法以文档的形式展现,基于Swagger. 官网地址:http://sp ...

  6. Zerojudge解题心得

    我进入娄山中学已经有1年多了,也就是说我学习编程也有1年多了,在这一年多的时间中,我已经对编程有了初步的了解.其实只要抓住平时的空闲时间加以利用,哪怕每个星期就做那么三四题,经过了一段时间沉淀,也会有 ...

  7. JAVA 新手问题: Request 编码编译出错,Unhandled exception type UnsupportedEncodingException

    新手: 编写如下代码 private void Exec(HttpServletRequest Req,HttpServletResponse Response) //throws ServletEx ...

  8. 解决eclipse中安装AIX2插件问题

    为了做webservice,查了下,需要用到AXIS2(当然也有别的方法,貌似更复杂,详情可以参看:java开发webservice的几种方式).可试了N次,下载的codegen和service插件始 ...

  9. Fping

    (十大特色功能) Ping是最常用的网络测试工具,ping的测试功能其实比较多,xp系统的ping有12个选项.但是,fping测试工具有25个选项,在ping的基础上增加了许多专业的功能,可用于更深 ...

  10. Python-1 IDLE(Python GUI)

    #1 运行Python: 开始 -> 程序 -> Python -> IDLE(Python GUI) 或 开始 -> 输入IDLE #2 各个菜单项及基本用法的帮助: Hel ...