程序包的安装可以通过rpm来安装rpm包,也可以通过yum来安装rpm包,也可以通过直接编译二进制的方式来安装程序包,本文主要讲解通过编译二进制源码来安装http,并且能够修改其环境变量,库文件,头文件等相关信息,

一、环境准备

   如果以前安装过http软件包,请先使用rpm -e http --nodeps 进行卸载,在进行下面操作

   源码包下载:可以通过wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.2.26.tar.gz

   系统环境:可以通过uname -a 和/etc/issue

[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
CentOS release 6.5 (Final)
Kernel \r on an \m

二、源码安装

  1.系统开发环境的安装

        通过yum命令来安装开发包组“Server Platform Development”和“Development tools”  

yum install -y "Development tools"
yum install -y "Server Platform Development"

  2.解压源码包,会生成一个http-2.2.26的文件夹

[root@localhost ~]# tar -xf httpd-2.2.26.tar.gz

  3.切换到http-2.2.26

[root@localhost ~]# cd httpd-2.2.26

  4.查看./configure的选项,可以通过./configure --help 也可以通过查看INSTALL来获取帮助信息,本文主要将的是通过./configure --help来获取,并讲解几个主要选项的使用

[root@localhost httpd-2.2.26]# ./configure --help
`configure' configures this package to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local/apache2]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]
Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

   其中:

     --perfix表示文件的安装目录

     --bindir和--sbindir表示二进制文件的安装路径

     --sysconfdir表示配置文件的安装路径

     --libdir表示库文件安装路径

     --includedir表示头文件的安装路径

     --mandir表示帮助文件的安装路径

     --htmldir表示网页文件的存放路径

  4.编译源码包,本文只设置文件的安装路径为/use/local/httpd,配置文件的安装路径为/etc/httpd/conf,其余选项为默认安装

[root@localhost httpd-2.2.26]# ./configure --prefix=/usr/local/httpd --sysconfdir=/etc/httpd/conf

  由于过程时间太长,本处不粘贴编译过程,如果没有出现error表示编译成功,如果出现error,请根据详细信息进行安装依赖包

  5.编译源码包生成的makefile文件

[root@localhost httpd-2.2.26]# make

  由于过程时间太长,本处不粘贴过程

 6.安装,即在指定的目录中生成指定的文件。

[root@localhost httpd-2.2.26]# make install

 7.启动httpd服务

[root@localhost bin]# ./apachectl start
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName

  安装完成以后,系统会在/usr/local/httpd/bin/apachectl文件,可以通过启动该文件来启动文件

三、验证

  1.通过查看80端口是否打开


[root@localhost ~]# netstat -ntl |grep 80
tcp        0      0 :::80                       :::*                        LISTEN

  2.通过网页的形式来查看,在httpd服务安装成功系统会指定生成一个网页文件

源码安装程序包_源码安装 httpd

四、修改一些配置文件

1.修改环境变量,可以不进入httpd的安装文件即可通过apachectl来启动或关闭httpd


 1)只是当前系统生效  

[root@localhost ~]# PATH=$PATH:/usr/local/httpd/bin

 2) 重启以后也可生效,在/etc/profile.d/httpd.sh插入如下代码

[root@localhost bin]# vi /etc/profile.d/httpd.sh
PATH=$PATH:/usr/local/httpd/bin
export PATH
使配置文件立即生效
[root@localhost ~]# source /etc/profile.d/httpd.sh

  现在可以在任何目录下可通过apachectl来启动或关闭httpd

[root@localhost ~]# apachectl start
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
[root@localhost ~]# apachectl stop
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName


2.修改帮助文档,使可以通过man文档查看httpd的帮助,在/etc/man.config插入

[root@localhost ~]# vi /etc/man.config
MANPATH /usr/local/httpd/man

3.修改库文件,添加/etc/ld.so.conf.d/httpd.conf添加如下内容

[root@localhost ~]# vi /etc/ld.so.conf.d/http.conf
/usr/local/httpd/lib

 可以通过ldconfig更新库的缓存文件

4.修改系统的头文件,为http的头文件在/usr/include做软连接即可

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

 由于本人水平有限,如有错误,欢迎批评指正