编译安装httpd-2.2.29.tar详解

一、编译前准备

1.开源代码包获取

(1)官方自建站点

apache.org (ASF)、mariadb.org…

(2)代码托管站点

SourceForge

Github.com

code.google.com

2.C源代码开发工具及开发环境准备

(1)开发工具:make, gcc等

1)make:C/C++等编译的项目管理工具,用来处理源码到二进制码之间的过程

(configure --> Makefile.in -->
makefile)执行过程

源代码
--> 预处理 --> 编译(gcc) --> 汇编 --> 链接 --> 执行

JAVA的管理工具mavenn

2)gcc(GNU C
Complier):原本仅适用于c/c++,后来增加集成了java等很多其他语言编译功能

(2)开发环境:开发库(glibc:标准库),头文件

可以通过安装“包组”提供开发组件

CentOS 6标准开发组件: "Development Tools", "Server Platform
Development"

二、编译安装

1.解压源码文件

[[email protected] tmp]# tar  xf  httpd-2.2.29.tar.bz2

2.安装前查看INSTALL,README文档

INSTALL,README文件是该程序的安装文档信息等内容,建议安装之前先查看cdc

[[email protected]
httpd-2.2.29]# less INSTALL

[[email protected]
httpd-2.2.29]# less README

3.configure脚本编辑

(1)[[email protected]
httpd-2.2.29]# ./configure --help

通过选项传递参数,指定启用特性、安装路径等

1)安装路径相关

--prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/

--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;

2)System types:系统类型,实现交叉编译(指定编译非宿主机的系统配置)

3)Optional Features: 可选特性

--disable-FEATURE  不可行的

--enable-FEATURE[=ARG]  可行的

4)Optional Packages: 可选包

--with-PACKAGE[=ARG]依赖的包

--without-PACKAGE不依赖什么包,和指定路径的包相关

2)[[email protected] httpd-2.2.29]# ./configure
--prefix=/usr/local/apache2.2/

执行时会参考用户的指定以及Makefile.in文件生成makefile

注意:检查依赖到的外部环境;注意此时的生成报告,error时候不能继续make

4.make:根据makefile文件,构建应用程序

若报错则不能继续make编译,要先检查出错误

5.make
install   复制上面结果相当于install命令

自动创建目录,将所需文件cp到指定位置

三、安装后的配置

自定义编译安装之后,将其整体安装在了/usr/local/*文件下,卸载时只需删除该文件夹即可

但是,此时系统路径是无法读取该配置文件的,所以服务可能无法启动,需要配置其部分文件

1.导出二进制程序目录至PATH环境变量中

编辑文件/etc/profile.d/NAME.sh,输入export
PATH=/PATH/TO/BIN:$PATH

注意:bin路径的放在前面系统在读取配置文件的时候会按照自左向右的顺序读取

[[email protected] apache2.2]# cd   /etc/profile.d/

[[email protected] profile.d]# vim   http2.2.sh

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

2.导出库文件路径

(1)编辑/etc/ld.so.conf.d/NAME.conf,添加新的库文件所在目录至此文件中;

[[email protected] profile.d]# cd   /etc/ld.so.conf.d

[[email protected] ld.so.conf.d]# vim   httpd2.2.conf

(2)让系统重新生成缓存:ldconfig   [-v]

[[email protected] ld.so.conf.d]# ldconfig -v

3.导出头文件

基于链接的方式实现:ln -sv

[[email protected] apache2.2]# ln -sv
/usr/local/include/ 
/usr/include/apache2.2

`/usr/include/apache2.2‘ -> `/usr/local/include/‘

4.导出帮助手册

编辑/etc/man.config文件,添加一个MANPATH

[[email protected] ~]# vim /etc/man.config

四、启动服务及问题报错解决

[[email protected]
ld.so.conf.d]# service httpd start

[[email protected]
ld.so.conf.d]# ps aux | grep httpd

报错:

Starting httpd:
httpd: Syntax error on line 164 of /etc/httpd/conf/httpd.conf: Cannot load
/etc/httpd/modules/mod_authnz_ldap.so into server:
/etc/httpd/modules/mod_authnz_ldap.so: undefined symbol: apr_ldap_url_parse

问题:ldap模块问题

解决方案:编辑 /etc/httpd/conf/httpd.conf 文件,注释掉相关模块

LDAP是轻量目录访问协议,英文全称是Lightweight
Directory Access
Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman
RFC网页中找到。

此处用不到

时间: 2024-08-01 22:44:06

编译安装httpd-2.2.29.tar详解的相关文章

LNMP编译安装之nginx关联php--图文详解

LNMP编译安装之nginx关联php--图文详解 1.前言 之前已经介绍了nginx,php,mysql的编译安装过程,但nginx和php的关联没有涉及,导致网页不能正常使用php功能,所有本编介绍如何将nginx和php进行关联,使*.php文件可以正常在浏览器访问. 2.准备步骤 2.1.修改php-fpm配置文件 cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.confcp /usr/loc

CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin

CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin+cacti+nagios 一.安装环境 Linux系统:CentOS 6.5 Apache版本:http-2.4.12 MySQL版本:MySQL 5.6.24 PHP版本:PHP-5.6.8 基本的安装顺序为:先安装httpd,然后安装mysql,最后安装PHP. 软件包: [[email protected] httpdbao]# ll total 334908 -rwxrw-rw-. 1 root root

编译安装httpd 2.4 ---格式待整理

httpd 2.4 版本需要依赖于apr 1.4版本httpd 依赖于 apr,apr-util    其安装又先后顺序之分:        1.apr        2.apr-util        3.httpd [[email protected] httpd]# rpm -q httpdhttpd-2.2.15-39.el6.centos.x86_64[[email protected] httpd]# service httpd stopStopping httpd:        

编译安装HTTPD 2.4.9版本

编译安装HTTPD 2.4.9版本 ? ?服务脚本:/etc/rc.d/init.d/httpd ? ?脚本配置文件路径:/etc/sysconfig/httpd ? ?运行目录:/etc/httpd ? ?配置文件: ? ? ? ?主配置:/etc/httpd/conf/httpd.conf ? ? ? ?扩展配置:/etc/httpd/conf.d/*.conf ? ?监听的Socket: tcp的80, 443是https/tcp的监听端口 ? ?在内核中使用小于1023的端口的只有管理员

Linux软件包管理之编译安装httpd

为什么要编译安装软件呢? 有人会问,放着制作好的RPM包不用,干嘛费真么大的劲用源码来编译安装呢?其实,源码包安装有如下好处: 1.最大的好处就在于可以根据自身的需求,最大程度上对软件进行定制安装 2.源码安装可以选择最新的软件包 3.源码包安装的软件卸载时极为方便和简单,更重要的是,它比较安全,尤其是对线上的生产环境而言. 4.迁徙也比较方便,如果不涉及系统库文件,复制到另一台机器上也可以使用. 下面我们就来通过源码包的方式来安装httpd 实验环境: VMware Workstation 1

centos7源码编译安装httpd、加入systemctl并设置开机自启动

所需软件: apr-1.6.3.tar.gz (下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.3.tar.gz) apr-util-1.6.1.tar.gz (下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz) httpd-2.4.29.tar.gz (下载地址:http://mirrors.shu.edu.cn/apac

编译安装httpd 2.4

编译安装LAMP之:编译安装httpd 2.4 环境介绍: 系统环境:CentOS6.5 所需软件包:apr-1.5.2.tar.gz.apr-util-1.5.2.tar.gz.httpd-2.4.6.tar.gz 注意:httpd2.4需要依赖apr和arp-util 1.4以上版本 CentOS编译安装Apache准备:确保开发包组已安装(Development tools.Server Platform Development) yum groupinstall "Development

编译安装httpd

CentOS 6默认提供的是httpd 2.2,现尝试在CentOS 6上编译安装httpd 2.4 1.编译安装apr和apr-util httpd程序依赖于apr和apr-util.apr(Apache portable Run-time libraries,Apache可移植运行库)旨在为上层的httpd应用程序提供一个可以跨越多种操作系统平台使用的底层支持接口库,给httpd程序提供了一个虚拟机环境,由此实现了httpd的跨平台性 httpd 2.4依赖apr 1.4以上的版本,因此若a

编译安装httpd服务

首先,编译安装http,需要有它的源码包,这里提供官方下载:http://httpd.apache.org 我使用的是httpd-2.4.4.tar.bz2软件包 在进行源码编译安装之前,我们需要设定一下安装环境 1.安装开发包组: # yum groupinstall "Development tools" "Server Platform Development" "Desktop Platform Development" "Co