一、实验目的
在centos操作系统中利用yum源安装HTTP服务,练习源代码安装软件包的过程,掌握其方法,并且安装成功后,手动编写shell控制脚本,练习shell脚本编写能力。
二、实验环境
vmware10虚拟机安装的CentOS -6.4 64位的Linux操作系统。
注意:初次安装Centos操作系统时选择的是最小版,所以有限的指令不被安装需要手动安装。 例如本次实验中要使用yum,vim,man等命令。
三、实验步骤
1、实验注意事项
首先要安装AdditionalDevelopment, Development tools,这两个软件开发包。这些是编译环境必备的软件包组。
准备你要安装的HTTP软件包,在centos6.4系统中的HTTP软件包版本是2.2的,需要下载最新的软件包,可以到下载最新的2.4版本(httpd-2.4.4.tar.bz2)。还有APR软件包和apr-util软件包(apr-1.4.6.tar.gz apr-util-1.5.1.tar.gz),这是HTTP安装之前呀安装的必须软件。也可到网站上去下载最新的版本。
用 Xftp工具传到虚拟机centos系统中/root目录下。
2、安装
(1)先将打包的HTTP软件包解压到/usr/local/src目录下。使用如下命令:
tar -jxvf httpd-2.4.4.tar.bz2 -C /usr/local/src
注意软件包使用的是什么格式的打包压缩,这里使用的是tar+bzip2,要使用相对应的参数。
(2)接下来就要安装,一般源文件里都提供有install文件或readme文件,在源文件中找到INSTALL文件,用less INSTALL 命令查询具体方法。找到之后,首先我们要明确的是将软件安装的什么路径下,这里也有一些指令说明:
./configure --prefix=PREFIX 这是指明安装路径的命令,
如下指令
./configure --prefix=/usr/local/apache //apache是自己定义的目录
但是在执行命令中是要检测编译环境时会报错:
checking for APR... no
configure: error: APR not found.
需要我们安装APR软件包。我们已经有了安装包,那就解压到对应目录,鉴于方便我们这里也直接将apr-util软件包也解压了。然后我们要先安装apr,
./configure --prefix=/usr/local/apr
然后执行命令make && make install该命令是有两条命令的组合命令,第一条make命令是针对apr安装生成的makefile文件来操作的,mak主要对makefile文件中定义的一些规则来进行编译,主要生成二进制文件,手册,头文件,库文件。make install命令是将生成的那四类文件进行性存放,必须要存放在指定的目录里,这与在./configure命令的设置的选项有关。
(3)在生成的lib文件中存放着安装的库文件,但是你想要系统访问到,能找到你的库文件,那就要将你的lib文件放在/etc/ld.so.conf.d/ 目录下,目录下你要建一个conf文件,例:apr.conf 就可以了。注意:要ldconfig命令更新缓存之后,你再查看能在系统缓存中找你的库文件。
(4)接下来就是include文件,系统想要访问头文件就要创建头文件的链接,如下:
ln -s/usr/local/apr/include/apr-1 apr
lrwxrwxrwx. 1 rootroot 28 Dec 16 00:26 apr-> /usr/local/apr/include/apr-1
(5)安装apr-util 其步骤大致和上述一致。
注意一点,在安装时需要指明apr的路径,因为apr-util是apr的工具,当然要找到apr的位置,如下指令:
./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
(6)继续安装HTTP,当继续安装的时候,还是会有同样的问题,缺少apr,缺少apr-util,所以我们要指定apr和apr-util的路径,如下指令:
./configure --prefix=/usr/local/apache--with-apr=/usr/local/apr/bin/apr-1-config--with-apr-util=/usr/local/apr-util/bin/apu-1-config
指定之后继续执行,但是有时候还是会遇到问题比如:checking for pcre-config... false configure: error: pcre-config for libpcre not found. PCRE is requiredand available from 这是缺少pcre-config,我们到光盘目录下包含pcre-config文件的包,安装就可以了。如:yum installpcre-devel --disablerepo=\* --enablerepo=c6-media
继续安装HTTP,成功之后,继续执行make make install 指令。然后指定头文件位置:cd /usr/include/ ln -s /usr/local/apache/include/ apache
安装后形成的bin目录下有许多可执行文件,但是我们执行时不能总到bin目录下执行,不方便,这时需要我们修改环境变量,在/etc/profile 环境变量文件中修改,加上PATH=$PATH:/usr/local/apache/bin ,这是在其追加上bin目录。
注意:有时候在安装之后man手册不能使用,那是就要将man手册的路径加到/etc/man.config文件中,加上MANPATH /usr/local/apahe/man 。
3、测试
在不同目录下,执行httpd,看是否HTTP服务能启动。并且在物理机上用HTTP访问Centos。
4、编写控制脚本
在/etc/init.d/目录下编写控制脚本。
#!/bin/bash
[ -e /etc/init.d/functons ]&& . /etc/init.d/functions
prog=/usr/local/apache/bin/httpd
lockfile=/var/lock/subsys/httpd
start () {
if [ -e $lockfile ];then
echo "the httpdserver is started"
else
echo -n "the httpdserver is starting......"
sleep 1
$prog && echo -e"[\033[32mOK\033[0m] " && touch $lockfile ||echo"failer"
fi
}
stop () {
if [ !-e $lockfile ];then
echo "the httpd serveris stoped"
else
echo -n "the httpdserver is stoping......"
sleep 1
kill -9 http && echo "OK" && rm-rf $lockfile || echo "failer"
fi
}
status (){
if [ -e $lockfile ];then
echo "the httpdis running..."
else
echo "the httpdis stop "
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "USAGE:start|stop|restart"
esac
记得要给脚本加上可执行权限,chmod a+x http
四、实验结果
[root@ahaoinit.d]# service http start
thehttpd server is starting......AH00557: httpd: apr_sockaddr_info_get() failedfor ahao.a.com
AH00558:httpd: Could not reliably determine the server's fully qualified domain name,using 127.0.0.1. Set the 'Serppress this message
httpd(pid 32982) already running
[OK]
[root@ahaoinit.d]# service http stop
thehttpd server is stoping...... [OK]
[root@ahaoinit.d]# service http restart
thehttpd server is stoping...... [OK]
thehttpd server is starting......AH00557: httpd: apr_sockaddr_info_get() failedfor ahao.a.com
AH00558:httpd: Could not reliably determine the server's fully qualified domain name,using 127.0.0.1. Set the 'Serppress this message
httpd(pid 32982) already running
[OK]
五、实验总结
本次实验是练习yum源代码安装软件包,其中有许多要注意的地方,比如开始时的编译环境一定要搭建好,不然一定会出问题,在安装过程当中也会有一定的问题,但是针对安装过程中出现的错误,我们应该仔细去排查,逐个的解决,这样才是解决之道。在编写控制脚本时要有一定的编程思想,编写过程中要细心,以免出现不必要的错误。控制脚本主要都是针对各种服务进行编写的,Linux后面要学习的服务器的搭建时,都是要用shell控制脚本编写控制代码的,所以一定要加油好好学习。