程序包的安装可以通过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
1
2
|
[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
|
1
2
|
CentOS release
6.5
(Final)
Kernel \r on an \m
|
二、源码安装
1.系统开发环境的安装
通过yum命令来安装开发包组“Server Platform Development”和“Development tools”
1
2
|
yum install -y
"Development tools"
yum install -y
"Server Platform Development"
|
2.解压源码包,会生成一个http-2.2.26的文件夹
1
|
[root@localhost ~]# tar -xf httpd-
2.2
.
26
.tar.gz
|
3.切换到http-2.2.26
1
|
[root@localhost ~]# cd httpd-
2.2
.
26
|
4.查看./configure的选项,可以通过./configure --help 也可以通过查看INSTALL来获取帮助信息,本文主要将的是通过./configure --help来获取,并讲解几个主要选项的使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
[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,其余选项为默认安装
1
|
[root@localhost httpd-
2.2
.
26
]# ./configure --prefix=/usr/local/httpd --sysconfdir=/etc/httpd/conf
|
由于过程时间太长,本处不粘贴编译过程,如果没有出现error表示编译成功,如果出现error,请根据详细信息进行安装依赖包
5.编译源码包生成的makefile文件
1
|
[root@localhost httpd-
2.2
.
26
]# make
|
由于过程时间太长,本处不粘贴过程
6.安装,即在指定的目录中生成指定的文件。
1
|
[root@localhost httpd-
2.2
.
26
]# make install
|
7.启动httpd服务
1
2
|
[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端口是否打开
1
2
|
[root@localhost ~]# netstat -ntl |grep
80
tcp
0
0
:::
80
:::* LISTEN
|
2.通过网页的形式来查看,在httpd服务安装成功系统会指定生成一个网页文件
四、修改一些配置文件
1.修改环境变量,可以不进入httpd的安装文件即可通过apachectl来启动或关闭httpd
1)只是当前系统生效
1
|
[root@localhost ~]# PATH=$PATH:/usr/local/httpd/bin
|
2) 重启以后也可生效,在/etc/profile.d/httpd.sh插入如下代码
1
2
3
4
5
|
[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
1
2
3
4
|
[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插入
1
2
|
[root@localhost ~]# vi /etc/man.config
MANPATH /usr/local/httpd/man
|
3.修改库文件,添加/etc/ld.so.conf.d/httpd.conf添加如下内容
1
2
|
[root@localhost ~]# vi /etc/ld.so.conf.d/http.conf
/usr/local/httpd/lib
|
可以通过ldconfig更新库的缓存文件
4.修改系统的头文件,为http的头文件在/usr/include做软连接即可
1
|
[root@localhost ~]# ln -sv /usr/local/apache/
include
/usr/
include
/httpd
|
由于本人水平有限,如有错误,欢迎批评指正
本文转自wangfeng7399 51CTO博客,原文链接:http://blog.51cto.com/wangfeng7399/1362406,如需转载请自行联系原作者