安装环境:
CentOS-5.3-i386
VMware-workstation-10.0.1
源码包:
httpd-2.4.4.tar.bz2 http://httpd.apache.org/download.cgi
apr-util-1.5.1.tar.gz http://apr.apache.org
apr-1.4.6.tar.gz http://apr.apache.org
安装步骤:
一、下载安装包并拆解。拆解后的一般放置目录:/usr/local/src
1、对根目录下的源码包进行拆解
指令:
tar -jxvf httpd-2.4.4.tar.bz2 -C /usr/local/src/ tar -zxvf apr-util-1.5.1.tar.gz -C /usr/local/src tar -zxvf apr-1.4.6.tar.gz -C /usr/local/src
指定目录,便于以后卸载。拆解后形成的目录:
二、./configure 加入配置选项,检测编译环境并产生makefile文件
1、修改/etc/yum.repos/CentOS-Media.repo文件,只启用本地yum库
2、安装编译所需的开发工具,在CentOS-5.3中需要安装下列开发工具
X Software Development 、Developemnt Tools 、Development Libraries
使用yum groupinstall“工具名称” –disablerepo=\*--enablerepo=c5-media安装所需的开发工具。
过程:
选择"Y"即可。
执行成功图示:
3、进入/usr/local/src目录下的httpd-2.4.4目录,一般情况下都会提供INSTALL文件和README文件,查看INSTALL文件的描述。
执行./configure
但是,很快会出错。因为没有安装APR(Apache portable Run-time libraries,Apache可移植运行库),因此在checking阶段没执行多久就会报错。所以要先安装APR。安装过程中出现”no” 不要紧,关键不能出现error ,出现error表示此阶段命令执行失败,需要重新执行。
4、安装APR
之前我们已经拆解过APR安装包,此时只要进入/usr/local/src/apr-1.4.6目录就行了。进入目录后执行./configure --prefix=/usr/local/apr ,如果没有指定目录的话,系统会自动安装在/usr/local目录下,安装过程产生的库文件放在/usr/local/lib目录下,二进制文件放在/usr/local/bin,这样系统可以很方便的找到,但管理员找起来就很麻烦了。
5、执行make && make install,此命令表示只有在MAKE 执行成功之后才能执行MAKE INSTALL。
为了让其他程序调用库文件,需要在/etc/ld.so.conf.d目录下创建相对应的文件。并把库文件路径写入所创建的文件中。编辑/etc/ld.so.conf.d/apr.conf
使用ldconfig指令此刷新缓存,查看结果。
系统的头文件在/usr/include目录下。为了让其他程序调用头文件,我们可以做一个链接。
6、安装apr-util
查看apr-util与apr的依赖关系
安装apr-util:
此步骤完成之后执行MAKE指令。若MAKE执行成功,再执行MAKE INSTALL。
编辑/etc/ld.so.conf.d/apr-util.conf文件,将apr-util的库文件路径写入文件中,方便其他程序调用。
接下来再安装Apache,切换到/usr/local/src/httpd-2.4.4,执行命令。
安装后再次执行 ./configure--prefix=/usr/local/apache
提示又出错了,少了pcre.config。我们只有见招拆招了。它需要什么,我们就安装什么。那就直接去我们的光盘上查看与pcre相关的包吧。
使用yum指令把它安装了就行了。安装后再次执行安装apache指令。然后再MAKE &&MAKE INSTALL。切换到/usr/include目录下,将头文件做成一个链接。
编辑环境文件,修改PATH变量。
编辑 /etc/man.config文件,把man手册写进去。便于在任何目录下查看帮助手册。
切换到/usr/local/apache/bin目录下,执行./httpd。执行后查看服务状态。
端口已经处于LISTEN状态了。接下来就可以测试了。
可以看到测试成功!
为了方便使用服务,我们还需要编写控制脚本。服务控制脚本一般放置目录/etc/init.d或者/etc/rc.d/inti.d目录下,这两个目录相互是一个链接关系,控制脚本放在哪个目录下都可以,系统都可以找到。
执行命令vim /etc/init.d/httpd,编写一个简单的服务控制脚本命令。
#!/bin/bash [ -e /etc/init.d/functions ] && . /etc/init.d/functions prog=/usr/local/apache/bin/httpd lockfile=/var/lock/subsys/httpd start () { if [ -e $lockfile ]; then echo "httpd is started" else echo -n "httpd is starting...... " sleep 1 $prog && echo "OK" touch $lockfile || echo "failer" fi } stop () { if [ ! -e $lockfile ]; then echo "httpd is stoped" else echo -n "httpd is stoping...... " sleep 1 killproc httpd && echo "OK" && rm -rf $lockfile ||echo "failer" fi } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage:start|stop|restart" case