本文共 4448 字,大约阅读时间需要 14 分钟。
程序包的安装可以通过rpm来安装rpm包,也可以通过yum来安装rpm包,也可以通过直接编译二进制的方式来安装程序包,本文主要讲解通过编译二进制源码来安装http,并且能够修改其环境变量,库文件,头文件等相关信息,
一、环境准备
如果以前安装过http软件包,请先使用rpm -e http --nodeps 进行卸载,在进行下面操作
源码包下载:可以通过wget
系统环境:可以通过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,如需转载请自行联系原作者