程序包的安装可以通过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服务安装成功系统会指定生成一个网页文件
四、修改一些配置文件
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
由于本人水平有限,如有错误,欢迎批评指正