Linux下编译安装Apache Http Server

[TOC]

1.下载httpd-2.4.12.tar.bz2

wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.12.tar.bz2

2.解压下载的文件

tar -xjvf httpd-2.4.12.tar.bz2

3.configure配置编译安装条件

./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite 
配置 说明
--prefix=/usr/local/apach2 设置编译安装到的系统目录
--enable-s 使httpd服务能够动态加载模块功能
--enable-rewrite 使httpd服务具有网页地址重写功能

ARP not found 错误

o@o-pc:~/work/Apache-httpd-2.4.12$ ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... no
configure: error: APR not found.  Please read the documentation.

解决办法

下载 arp-1.5.2的源码包

wget http://mirror.bit.edu.cn/apache/apr/apr-1.5.2.tar.bz2

解压后编译安装

o@o-pc:~/work/arp$ tar -xjvf apr-1.5.2.tar.bz2
o@o-pc:~/work/arp/apr-1.5.2$ ./configure --prefix=/usr/local/apr
...
o@o-pc:~/work/arp/apr-1.5.2$ make
...
o@o-pc:~/work/arp/apr-1.5.2$ sudo make install

APR-util not found 错误

o@o-pc:~/work/Apache-httpd-2.4.12$ ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
checking for chosen layout... Apache
...
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... yes
  setting CC to "gcc"
  setting CPP to "gcc -E"
  setting CFLAGS to " -g -O2 -pthread"
  setting CPPFLAGS to " -DLINUX -D_REENTRANT -D_GNU_SOURCE"
  setting LDFLAGS to " "
configure:
configure: Configuring Apache Portable Runtime Utility library...
configure:
checking for APR-util... no
configure: error: APR-util not found.  Please read the documentation.

解决办法

下载 apr-util-1.5.4 源码包

o@o-pc:~/work/arp$ wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.5.4.tar.bz2

解压后编译安装
注意./configure配置的时候需要制定APR路径--with-apr=/usr/local/apr是前面编译安装apr的时候设置的路径。

o@o-pc:~/work/arp$ tar -xjvf apr-util-1.5.4.tar.bz2
o@o-pc:~/work/arp/apr-util-1.5.4$ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
...
o@o-pc:~/work/arp/apr-util-1.5.4$ make
...
o@o-pc:~/work/arp/apr-util-1.5.4$ sudo make install

pcre-config for libpcre not found错误

o@o-pc:~/work/Apache-httpd-2.4.12$ ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --with-apr-util=/usr/local/apr-util
checking for chosen layout... Apache
...
configure:
configure: Configuring Apache Portable Runtime Utility library...
configure:
checking for APR-util... yes
...
checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

解决办法

下载pcre-8.36源码包

wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.36/pcre-8.36.tar.bz2
8.7版本的地址
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.bz2

解压后编译安装

o@o-pc:~/work/arp$ tar -xjvf pcre-8.37.tar.bz2
o@o-pc:~/work/arp/pcre-8.37$ ./configure --prefix=/usr/local/pcre
...
o@o-pc:~/work/arp/pcre-8.37$ make
...
o@o-pc:~/work/arp/pcre-8.37$ sudo make install

上面的错误解决后,再次./configure配置

注意添加的两个--with-...

o@o-pc:~/work/Apache-httpd-2.4.12$ ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre

4.编译安装

o@o-pc:~/work/Apache-httpd-2.4.12$ make
o@o-pc:~/work/Apache-httpd-2.4.12$ sudo make install

5.启动apache服务

o@o-pc:~/work$ /usr/local/apache2/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs

注意,需要root权限

o@o-pc:~/work$ sudo /usr/local/apache2/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

提示错误,无法确定服务名(就是端口号)
切换到目录/usr/local/apache2/conf
vi编辑文件httpd.conf(文件是只读的,修改需要root权限)
o@o-pc:/usr/local/apache2/conf$ sudo vi httpd.conf
添加一行
ServerName localhost:80
然后重新启动服务试试

o@o-pc:~$ sudo /usr/local/apache2/bin/apachectl start
httpd (pid 31083) already running

现在我们可以试试是否生效了
打开浏览器,输入地址localhost回车看看是否显示 Is Work!
显示了就说们Apache Http Server已经在运行了
不方便截图,这里直接用curl来获取下网页的内容

o@o-pc:~$ curl localhost
<html><body><h1>It works!</h1></body></html>

6.停止Apache Http 服务

可以看到停止后再去获取就失败了

o@o-pc:~$ sudo /usr/local/apache2/bin/apachectl stop
o@o-pc:~$ curl localhost
curl: (7) Failed to connect to localhost port 80: 拒绝连接

Linux下编译安装Apache Http Server的更多相关文章

  1. Linux下编译安装Apache及模块

    Apache是时下最流行的Webserver软件之中的一个,支持多平台,可高速搭建web服务,并且稳定可靠.并可通过简单的API扩充.就能够集成PHP/Python等语言解释器. 文章这里解说怎样在l ...

  2. Linux下编译安装Apache 2.4

    Linux一般会自带httpd服务,但是版本一般不是最新,性能也不是最好,生产中建议手动安装官方源码包,安装Apache官方包之前首先要停止之前的httpd服务,停止后也可以卸载之前的版本 准备工作做 ...

  3. Linux下编译安装Apache报APR not found错误的解决办法

    我在编译安装完Nginx.MySQL和PHP(见之前一篇博客:LNMP环境搭建详细教程)之后,进行apache的编译安装: cd /usr/local/src wget http:.tar.gz ta ...

  4. linux下编译安装apache

    在linux(CentOS6.5)上安装Apache,要首先确保以下程序事先安装 apr:The mission of the Apache Portable Runtime (APR) projec ...

  5. linux中编译安装Apache、PHP、MySQL(上)

    1.简介 在阿里云买了个云服务器,一直没时间折腾.过了近十天了吧,才有时间好好玩玩这个云服务器.自己是做Web开发的,所以我需要的开发环境是LAMP.之前打算是采用yum安装,不过yum安装apach ...

  6. 在linux下手动安装 apache, php, mysql--终极版

    在linux下手动安装 apache, php, mysql: 参考: http://www.cnblogs.com/lufangtao/archive/2012/12/30/2839679.html ...

  7. LINUX下编译安装PHP各种报错大集合

    本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. nginx1.6.2-mysql5.5.32二进制,php安装报错解决: 123456 [root@clien ...

  8. linux下编译安装vim7.4并安装clang_complete插件

    linux下编译安装vim7.4并安装clang_complete插件 因为debian里软件仓库中下载安装的vim是不支持python写的插件的(可以打开vim,在命令模式先输入:py测试一下),导 ...

  9. linux下编译安装curl

    linux下编译安装curl 1.下载curl git clone https://github.com/curl/curl.git 2.在curl目录下生成configure文件 ./buldcon ...

随机推荐

  1. Android MultiDex

    出现的原因: 当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt.DexOpt的执行过程是在第一次加载Dex文件的时候执行的.这个过程会生 ...

  2. 转: 什么是REST?

    REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序.它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 ...

  3. eclipse在Ubuntu 13.04下的安装过程及问题小记

    一.eclipse安装过程 首先确保在安装eclipse之前已经安装好Java虚拟机 1. eclipse官网下载压缩包 下载地址:http://www.eclipse.org/downloads/? ...

  4. Linux/Unix shell 脚本监控磁盘可用空间

    Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少.下面是给出的一个监控磁盘空间空间shell脚本的样本,供大家参考. 1.监控磁盘的空闲空间shell脚本 robi ...

  5. Linux makefile教程之隐含规则九[转]

    隐含规则 ———— 在 我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o] 文件,Windows下是[.o ...

  6. NodeJs环境部署

    node cli.js install npm -gf npm install express -gd

  7. [BZOJ 2165] 大楼 【DP + 倍增 + 二进制】

    题目链接:BZOJ - 2165 题目分析: 这道题我读了题之后就想不出来怎么做,题解也找不到,于是就请教了黄学长,黄学长立刻秒掉了这道题,然后我再看他的题解才写出来..Orz 使用 DP + 倍增 ...

  8. Gradle+Jetty实现静态资源的热部署

    本文转自http://www.cnblogs.com/huang0925/p/3302487.html --------------------------------------- 通过Gradle ...

  9. kolla-ansible快速入门

    kolla-ansible快速入门 kolla-ansible是一个结构相对简单的项目,它通过一个shell脚本,根据用户的参数,选择不同的playbook和不同的参数调用ansible-playbo ...

  10. 将博客搬至CSDN https://blog.csdn.net/Fredric_2014

    将博客搬至CSDN https://blog.csdn.net/Fredric_2014