目的:通过编译安装httpd, 掌握基于Linux环境下源代码编译安装程序的一般方法和步骤。
环境:
操作系统:CentOS 6.5
内核版本:2.6.32-431.el6.i686
软件版本:Apache HTTP Server 2.4.10
软件下载:
1、Apache HTTP Server 2.4.10 (httpd): http://apache.dataguru.cn//httpd/httpd-2.4.10.tar.bz2
2、Apache Portable Runtime 1.5.1: http://apache.dataguru.cn//apr/apr-1.5.1.tar.bz2
3、APR-util 1.5.3: http://apache.dataguru.cn//apr/apr-util-1.5.3.tar.bz2
安装步骤:
1、将下载好的httpd/apr/apr-util 的源代码上传到CentOS 6.5系统内
2、解压 httpd-2.4.10.tar.bz2
# tar -xvf httpd-2.4.10.tar.bz2
3、检查编译环境是否满足编译需求,指定安装路径: --prefix=/usr/local/apache-2.4.10 配置文件的路径:--sysconfdir=/etc/apache-2.4.10
# cd httpd-2.4.10 # ./configure --prefix=/usr/local/apache-2.4.10 --sysconfdir=/etc/apache-2.4.10 checking for chosen layout... Apache checking for working mkdir -p... yes checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu configure: configure: Configuring Apache Portable Runtime library... configure: checking for APR... configure: WARNING: APR version 1.4.0 or later is required, found 1.3.9 configure: WARNING: skipped APR at apr-1-config, version not acceptable no configure: error: APR not found. Please read the documentation.
检查编译环境遇到错误,不符合httpd-2.4.10 编译需求。这里我还记得刚工作的时候一个老师说过,遇到错误是上帝给你解决问题和成长的机会。感谢上帝,接下来解决错误来满足编译的需求。当前系统提供的apr的版本是1.3.9,而编译时需要1.4.0或更新的版本。
4、编译安装apr-1.5.1,指定安装路径: --prefix=/usr/local/apr1.5
# tar -xvf apr-1.5.1.tar.gz # cd apr-1.5.1 # ./configure --prefix=/usr/local/apr1.5 # make # make install
5、编译安装apr-util-1.5.3,指定安装路径:--prefix=/usr/local/apr-util-1.5,指定所依赖的apr:--with-apr=/usr/local/apr1.5
# tar -xvf apr-util-1.5.3.tar.gz # cd apr-util-1.5.3 # ./configure --prefix=/usr/local/apr-util-1.5 --with-apr=/usr/local/apr1.5 # make # make install
6、再次检查编译httpd-2.4.10时所需要的环境,指定编译时所需要的apr及apr-util
# cd httpd-2.4.10 # ./configure --prefix=/usr/local/apache-2.4.10 --sysconfdir=/etc/apache-2.4.10 --with-apr=/usr/local/apr1.5 --with-apr-util=/usr/local/apr-util-1.5
7、编译安装
# make # make install
8、配置httpd二进制程序的PATH环境变量
# vi /etc/profile.d/apache-2.4.10.sh PATH=/usr/local/apache-2.4.10/bin:$PATH export PATH # source /etc/profile.d/apache-2.4.10.sh
9、将httpd的头文件输出给系统
# ln -sv /usr/local/apache-2.4.10/include /usr/include/httpd
10、库文件输出给系统
# vim /etc/ld.so.conf.d/httpd.conf /usr/local/apr1.5/lib /usr/local/apr-util-1.5/lib 让系统重新生成库文件路径缓存 # ldconfig
11、导出man 文件
# vim /etc/man.config MANPATH /usr/local/apache-2.4.10/man
12、启动Http Server
# apachectl start # netstat -tnl | grep 80
13、验证
http://Centos 6.5的IP地址/ 会在网页里显示 It works!
总结:源代码编译安装的方法
一、准备好开发环境,针对Centos 6.5,安装Development tools 和 Server Platform Development 两个包组。
二、下载源代码,并解压
# tar -xvf package-version.tar.{gz|bz2|xz}
三、切换至源代码目录中
# cd package-version
四、执行configure 脚本
# ./configure
五、编译
# make
六、安装
# make install
七、输出二进制程序、头文件、库文件和man文档给系统
1)二级制程序输出
在/etc/profile.d/目录下,创建一个以.sh结尾的脚本,内容如下:
PATH=二进制程序所在的目录路径:$PATH
export PATH
2)头文件输出
在/usr/include 目录下新建一个软链接文件,将链接文件指向头文件所在的目录。
ln -s 头文件所在的目录 /usr/include/链接文件
3)库文件输出
在/etc/ld.so.conf.d目录下,创建一个以.conf结尾的文件,内容为库文件所在的目录。
使用ldconfig命令让系统重新生成库文件路径缓存。
4)man文档输出
编辑/etc/man.config文件,新增一行,内容如下:
MANPATH man文档的目录