Linux下编译安装Apache Http Server

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. CentOS 下编译安装Apache

    CentOS 下编译安装Apache 卸载原有的apache 首先从 http://httpd.apache.or 下载apache源码包httpd-2.4.4.tar.gz然后从 http://ap ...

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

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

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

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

  8. (转)Linux下编译安装log4cxx

    Linux下编译安装log4cxx 一个项目的服务器端在Linux平台下,用到了开源日志库log4cxx,这个库是apache项目的一个子库.功能很不错.下面记录下它的编译和安装过程. log4cxx ...

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

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

随机推荐

  1. winSocket数据传输

    服务器端: #include <WINSOCK2.H> #include <stdio.h> #pragma comment(lib,"ws2_32.lib" ...

  2. Spring入门_04_注解注入

    applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...

  3. Mysql函数:Last_insert_id()语法讲解

    Mysql函数可以实现许多我们需要的功能,下面介绍的Mysql函数Last_insert_id()就是其中之一,希望对您学习Mysql函数能有所帮助. 自动返回最后一个INSERT或 UPDATE 查 ...

  4. [asp.net core]project.json(2)

    摘要 上篇文章介绍了project.json中的一部分属性.属性真的比较多,所以分开了,考虑到其中的英文比较简单,也不再进行翻译了,从英文原文中,直接粘贴过来了. project.json(1) pr ...

  5. VMnet1和V8

    vmware默认使用了两个虚拟网卡: vmnet1 v1 vmnet8 v8 vmnet1是host-only,也就是说,选择用vmnet1的话就相当于VMware给你提供了一个虚拟交换机,仅将虚拟机 ...

  6. C语言动态内存分配

    考虑下面三段代码: 片段1 void GetMemory(char *p) { p = (); } void Test(void) { char *str = NULL; GetMemory(str) ...

  7. PHP 线程安全与非线程安全版本的区别深入解析

    Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍 ...

  8. AD域服务器|两台DC无法进行复制同步

    注:本文由Colin撰写,版权所有!转载请注明原文地址,谢谢合作! 说明:前段时间公司两台域控出现了一些问题导致数据无法相互进行同步,DC之间也无法进行共享访问,网络用户无法通过计算机名映射的共享访问 ...

  9. Android应用如何监听自己是否被卸载及卸载反馈功能的实现

    一个应用被用户卸载肯定是有理由的,而开发者却未必能得知这一重要的理由,毕竟用户很少会主动反馈建议,多半就是用得不爽就卸,如果能在被卸载后获取到用户的一些反馈,那对开发者进一步改进应用是非常有利的.目前 ...

  10. PHP封装一个通用好用的文件上传处理类

    封装一个文件上传类完成基本功能如下: 1.可上传多个或单个文件 2.上传成功返回一个或多个文件名 3.上传失败则返回每个失败文件的错误信息 上传类中的基本功能: 1.构造参数,用户可以自定义配置参数, ...