CentOS7下编译安装Apache

在Linux中通过编译源代码进行安装软件,需要GCC(GNU Compiler Collection,GNU编译器套件)的支持。
通过yum安装GCC

[root@localhost ~]# yum install gcc

C程序源码编译安装三个步骤:
第一步:./configure
  (1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile;
   –help:获取其支持使用的选项
   选项分类:
    安装路径设定:
     –prefix=/PATH/TO/SOMEWHERE:指定默认安装位置;默认为/usr/local/
     –sysconfdir=/PATH/TO/SOMEWHERE:指定配置文件安装位置

    System types:交叉编译时,指定目标系统类型

    Optional Features: 可选特性
     –disable-FEATURE
     –enable-FEATURE[=ARG]

    Optional Packages: 可选包
     –with-PACKAGE[=ARG]
     –without-PACKAGE       
  (2)检查依赖到的外部环境
 第二步:make
  根据makefile文件,构建应用程序
 第三步:make install

在Apache官网下载源码包进行编译安装,下载地址:http://httpd.apache.org/download.cgi

[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.23.tar.bz2
[root@localhost ~]# tar xf httpd-2.4.23.tar.bz2
[root@localhost ~]# cd httpd-2.4.23
[root@localhost httpd-2.4.23]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/conf/apache2.conf
configure: error: APR not found.  Please read the documentation.

Apache在安装时需要依赖一些环境,这里报错提示需要安装APR(Apache Portable Runtime),下载地址:http://apr.apache.org/download.cgi

[root@localhost ~]# wget http://mirror.bit.edu.cn/apache//apr/apr-1.5.2.tar.bz2
[root@localhost ~]# tar xf apr-1.5.2.tar.bz2
[root@localhost ~]# cd apr-1.5.2
[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.5.2]# make
[root@localhost apr-1.5.2]# make install
[root@localhost apr-1.5.2]# cd ../httpd-2.4.23/
[root@localhost httpd-2.4.23]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/conf/apache2.conf
configure: error: APR not found.  Please read the documentation.

依旧报上面错误,这是因为编译安装自定义了APR的安装目录,所以需要通过–with-apr手动指定APR安装目录

[root@localhost httpd-2.4.23]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/conf/apache2.conf --with-apr=/usr/local/apr
configure: error: APR-util not found.  Please read the documentation.

这次报错提示缺少APR-util环境,下载地址:http://apr.apache.org/download.cgi

[root@localhost ~]# wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.5.4.tar.bz2
[root@localhost ~]# tar xf apr-util-1.5.4.tar.bz2
[root@localhost ~]# cd apr-util-1.5.4
[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util
configure: error: APR could not be located. Please use the --with-apr option.

报错提示编译APR-util需要指定APR路径

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

有了以上经验,再次编译Apache时指定APR-util路径

[root@localhost httpd-2.4.23]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/conf/apache2.conf --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

此处报错提示缺少PCRE环境,下载地址:https://sourceforge.net/projects/pcre/files/pcre
注意:此处应安装PCRE;如果安装PCRE2会报如下错误:

configure: error: Did not find pcre-config script at /usr/local/pcre.

[root@localhost ~]# wget https://sourceforge.net/projects/pcre/files/pcre/8.39/pcre-8.39.tar.bz2
[root@localhost ~]# tar xf pcre-8.39.tar.bz2
[root@localhost ~]# cd pcre-8.39
[root@localhost pcre-8.39]# ./configure --prefix=/usr/local/pcre
configure: error: You need a C++ compiler for C++ support.

此处报错提示需要C++编译器,通过yum安装gcc-c++

[root@localhost pcre-8.39]# yum install gcc-c++
[root@localhost pcre-8.39]# ./configure --prefix=/usr/local/pcre
[root@localhost pcre-8.39]# make
[root@localhost pcre-8.39]# make install

再次编译Apache,指定PCRE路径

[root@localhost httpd-2.4.23]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/conf/apache2.conf --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
[root@localhost httpd-2.4.23]# make
[root@localhost httpd-2.4.23]# make install

至此,Apache编译安装完成了,接下来进行安装后的配置:
(1)导出二进制程序目录至PATH环境变量中:
  编辑文件/etc/profile.d/apache.sh
   export PATH=$PATH:/usr/local/apache2/bin
(2)导出头文件:
  基于符号链接的方式实现:
   ln -sv /usr/local/apache2/include/ /usr/include/apache
(3)导出库文件路径:
  编辑文件/etc/ld.so.conf.d/NAME.conf,添加新的库文件所在目录至此文件中
   让系统重新生成缓存:ldconfig [-v]
(4)导出帮助手册:
  编辑/etc/man_db.conf文件,添加一个MANPATH(CentOS7下自动识别man手册)

启动Apache服务命令:apachectl start

使用ss -tnl命令查看系统是否监听于80端口,使用iptables -F命令临时清除防火墙规则,最后使用浏览器访问服务器ip,若出现

It works!

则表示Apache服务启动成功,安装到此结束。

原创文章,作者:萝卜,如若转载,请注明出处:http://www.178linux.com/43274

(0)
萝卜萝卜
上一篇 2016-09-05 08:52
下一篇 2016-09-05 08:52

相关推荐

  • 分区块基本知识点及侧重点 — 上

        我们需要熟练了解磁盘分区原理。元数据及块设备对应inode是最重要也是最基本的原理。后面分区很多地方都和inode有关系。    一个磁盘片有63扇区,1024存储位,256个磁头,每个扇区只有前512字节是有效存储单元。所以后面磁盘清零都是跟512这个数字有关。    数据分数据区和元数据…

    Linux干货 2016-08-24
  • locate与find不得不说的事

    本文内容: locate与find 练习     locate与find是linux中最常用的两种查找方式,二者各有优缺点,locate查找迅速,却由于数据库非实时更新,导致可能查找不全,而find由于是从指定路径开始遍历,速度相对较慢,却更为准确,而且用法也更加灵活,因此find运用更加广泛,也是本文的重点。 文件查找: locate搜…

    Linux干货 2016-08-18
  • 第八周

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switch…

    Linux干货 2016-09-19
  • grep的使用,正则表达式

    文本处理grep     grep :根据模式去搜索文本,并将匹配到的文本显示出来 pattern(模式):文本字符和正则表达式的元字符组合而成的匹配条件 正则表达式:(REGular EXPression)正则表达式就是处理字符串的方法,通过一些特殊字符的辅助,让用户轻松方便的达到查找、删除、修改特定字符串的处理程序 grep 的用法     name: …

    Linux干货 2017-11-25
  • 认识DNS

    DNS全称是Domain Name System的简称,即域名系统。因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP/TCP协议之上,使用端口号53。 认识DNS 安装 创建一台DN…

    Linux干货 2016-12-07
  • shell脚本之数组

    认识数组:    变量是存储单个元素的内存空间,而数组就是多个变量的合集,是一串连续的空间,但是,整个数组只能有一个名字。    数组内的数据都有指定的索引,以找到数组内指定的数据。索引的编号是从0开始,依次递增(0,1,2,3…),属于数值索引。索引也支持自定义的格式,而不仅是数值格式的索引,即为关联索引…

    Linux干货 2016-08-26