linux 脚本启动httpd,httpd的安装的启动脚本的制作

用yum install httpd*安装的httpd服务器,默认是在目录 /etc/httpd下面

但是项目路径默认是在:/var/www/html下面,可以在httpd.conf配置文件里查看

如果 是网上下载的httpd来安装,就不同,这样需要启动的话,不能用service httpd start。

需要到目录下/apache2/bin/httpd。这样就可以启动了

安装 apache压缩

把下载下来的包放在 /usr/local/src 下,使用 tar zxvf httpd-NN.tar.gz解压,

cd httpd-NN

./configure --prefix=/usr/local/httpd

make

make install

现在你发现在/usr/local下面多出了一个httpd的目录

我们可以利用 /usr/local/httpd/bin/apachectl -k start|stop|restart 来管理httpd服务。

如果要随系统启动,我们必须在 /etc/rc.d/init.d/rc.local文件的末尾加上一行:

/usr/local/httpd/bin/apachectl -k start

即使是这样,但是我们还是不方便管理httpd服务,我们能不能,像rpm安装那样使用service服务来管理httpd服务呢?

答案是肯定的我们必须如下操作:

在 /etc/rc.d/init.d/下建立一个 httpd的文件,利用 chmod 755 httpd 使其具有执行能力。

vi httpd 添加如下内容:

#!/bin/bash

#

# httpd        Startup script for the Apache HTTP Server

#

# chkconfig: - 85 15

# description: Apache is a World Wide Web server.  It is used to serve \

#              HTML files and CGI.

# processname: httpd

# config: /etc/httpd/conf/httpd.conf

# config: /etc/sysconfig/httpd

# pidfile: /var/run/httpd.pid

# Source function library.

. /etc/rc.d/init.d/functions

if [ -f /etc/sysconfig/httpd ]; then

. /etc/sysconfig/httpd

fi

# Start httpd in the C locale by default.

HTTPD_LANG=${HTTPD_LANG-"C"}

# This will prevent initlog from swallowing up a pass-phrase prompt if

# mod_ssl needs a pass-phrase from the user.

INITLOG_ARGS=""

# SetHTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server

# with the thread-based "worker" MPM; BE WARNED that some modules may not

# work correctly with a thread-based MPM; notably PHP will refuse to start.

# Path to the apachectl script, server binary, and short-form for messages.

apachectl=/usr/sbin/apachectl

httpd=${HTTPD-/usr/sbin/httpd}

prog=httpd

pidfile=${PIDFILE-/var/run/httpd.pid}

lockfile=${LOCKFILE-/var/lock/subsys/httpd}

RETVAL=0

# check for 1.3 configuration

check13 () {

CONFFILE=/etc/httpd/conf/httpd.conf

GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"

GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"

GONE="${GONE}AccessConfig|ResourceConfig)"

ifLANG=Cgrep -Eiq "^[[:space:]]*($GONE)" $CONFFILE; then

echo

echo 1>&2 " Apache 1.3 configuration directives found"

echo 1>&2 " please read /usr/share/doc/httpd-2.2.3/migration.html"

failure "Apache 1.3 config directives test"

echo

exit 1

fi

}

# The semantics of these two functions differ from the way apachectl does

# things -- attempting to start while running is a failure, and shutdown

# when not running is also a failure.  So we just do it the way init scripts

# are expected to behave here.

start() {

echo -n {1}quot;Starting $prog: "

check13 || exit 1

LANG=$HTTPD_LANG daemon $httpd $OPTIONS

RETVAL=$?

echo

[ $RETVAL=0] && touch ${lockfile}

return $RETVAL

}

# When stopping httpd a delay of>10 second is required before SIGKILLing the

# httpd parent; this gives enough time for the httpd parent to SIGKILL any

# errant children.

stop() {

echo -n {1}quot;Stopping $prog: "

killproc -d 10 $httpd

RETVAL=$?

echo

[ $RETVAL=0] && rm -f ${lockfile} ${pidfile}

}

reload() {

echo -n {1}quot;Reloading $prog: "

if !LANG=$HTTPD_LANG $httpd $OPTIONS -t>&/dev/null; then

RETVAL=$?

echo {1}quot;not reloading due to configuration syntax error"

failure {1}quot;not reloading $httpd due to configuration syntax error"

else

killproc $httpd -HUP

RETVAL=$?

fi

echo

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status $httpd

RETVAL=$?

;;

restart)

stop

start

;;

condrestart)

if [ -f ${pidfile} ] ; then

stop

start

fi

;;

reload)

reload

;;

graceful|help|configtest|fullstatus)

$apachectl $@

RETVAL=$?

;;

*)

echo {1}quot;Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"

exit 1

esac

exit $RETVAL

使用chkconfig --add httpd

chkconfig --level 2345 httpd on

这样httpd就可以利用 service httpd start|stop|restart命令来管理了,

并且它在运行环境为2、3、4、5随系统启动。0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值