16.2.5 让Apache自动运行
Red Hat Enterprise Linux 5.2可以支持程序服务的开机自动运行,如果要配置Apache服务在服务器启动的时候自动运行,可以编写启动和关闭Apache服务的脚本,然后进行相应的配置。具体步骤如下所述。
(1)编写启动和关闭Apache服务的脚本,脚本文件名为httpd,并存放到/etc/rc.d/init.d目录下。下面分几个部分对脚本的内容进行说明,用户只需要按顺序把这些代码添加到httpd文件中即可。设置Apache服务与chikconfig相关的选项,并执行初始化环境变量的脚本,代码如下所示。
#!/bin/sh
// 设置与chkconfig相关的选项
#chkconfig :345 85 15 //设置启动级别以及启动顺序
#description:some words you like!! //描述信息
# Source function library.
. /etc/rc.d/init.d/functions //执行/etc/rc.d/init.d/functions脚本
// 调用系统初始化脚本
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions //执行. /etc/init.d/functions脚本
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions //执行. /etc/rc.d/init.d/functions脚本
else
exit 0 //如果找不到上述脚本则结束本脚本的运行
fi
设置与启动关闭Apache服务相关的选项,代码如下所示。
//获取命令输入的参数
ARGV="$@"
//设置httpd命令的路径
HTTPD='/usr/local/apache2/bin/httpd'
//如果envvars文件存在,则执行envvars文件设置Apache的环境变量
if test -f /usr/local/apache2/bin/envvars; then
. /usr/local/apache2/bin/envvars //执行/usr/local/apache2/bin/envvars
fi
//设置命令行的HTML格式
LYNX="links -dump"
//设置mod_status模块的状态页面的URL
STATUSURL="http://localhost:80/server-status"
//解除子进程的文件描述器的限制
ULIMIT_MAX_FILES="ulimit -S -n 'ulimit -H -n'"
//如果ULIMIT_MAX_FILES参数不为空,则运行ULIMIT_MAX_FILES参数中的指令,解除子进程文件描述器的限制
if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then
$ULIMIT_MAX_FILES
fi
ERROR=0
//如果命令选项为空,则把命令选项设置为-h
if [ "x$ARGV" = "x" ] ; then
ARGV="-h"
fi
编写代码,根据执行httpd脚本时输入的参数,执行相应的程序逻辑,如下所示。
case $ARGV in
//启动/关闭/重启Apache
start|stop|restart|graceful|graceful-stop)
$HTTPD -k $ARGV
ERROR=$?
;;
//不支持的命令参数
startssl|sslstart|start-SSL)
echo The startssl option is no longer supported.
// 输出信息提示选项已经不再支持
echo Please edit httpd.conf to include the SSL configuration settings
echo and then use "apachectl start".
ERROR=2
;;
//检查httpconf配置文件的格式是否正确
configtest)
$HTTPD -t
ERROR=$?
;;
//检查Apache服务的状态
status)
$LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
;;
//输出完整的状态信息
fullstatus)
$LYNX $STATUSURL
;;
*)
$HTTPD $ARGV
ERROR=$?
esac
exit $ERROR
(2)打开【服务配置】对话框,选择【行动】|【添加服务】命令,在弹出的对话框中输入httpd,如图16.10所示。
(3)单击【确认】按钮后,服务列表中将添加一个httpd服务,如图16.11所示。
%提示:配置完成后,用户可以直接通过服务配置中的【开始】和【停止】按钮来启动、关闭Apache服务,不需要再输入命令。