Make the startup script for httpd Installation

Source: Internet
Author: User

The httpd server installed with Yum install httpd * is under the/etc/httpd directory by default.

However, the project path is under/var/www/html by default, which can be viewed in the httpd. conf configuration file.

If you download httpd from the Internet for installation, it is different. If you need to start it, you cannot use service httpd start.

You need to go to the/apache2/bin/httpd directory. In this way, you can start


Install Apache Compression

Put the downloaded package under/usr/local/src, decompress it with tar zxvf httpd-NN.tar.gz,
CD httpd-nn
./Configure -- prefix =/usr/local/httpd
Make
Make install

Now you find that there is an extra httpd directory under/usr/local.
We can use/usr/local/httpd/bin/apachectl-k start | stop | restart to manage httpd services.
To start with the system, add a line at the end of the/etc/rc. d/init. d/rc. Local file:
/Usr/local/httpd/bin/apachectl-K start
Even so, we still cannot manage the HTTPd service. Can we use the Service to manage the HTTPd service like RPM installation?
The answer is yes. We must do the following:
Create an httpd file under/etc/rc. d/init. d/and use chmod 755 httpd to make it executable.
Add the following content to 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/functionsif [ -f /etc/sysconfig/httpd ]; then        . /etc/sysconfig/httpdfi# 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=""# Set HTTPD=/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/apachectlhttpd=${HTTPD-/usr/sbin/httpd}prog=httpdpidfile=${PIDFILE-/var/run/httpd.pid}lockfile=${LOCKFILE-/var/lock/subsys/httpd}RETVAL=0# check for 1.3 configurationcheck13 () {        CONFFILE=/etc/httpd/conf/httpd.conf        GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"        GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"        GONE="${GONE}AccessConfig|ResourceConfig)"        if LANG=C grep -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 1esacexit $RETVAL

Use chkconfig -- add httpd

Chkconfig -- level 2345 httpd on

In this way, httpd can use the service httpd START | stop | restart command for management,
It is started with the system in the runtime environment of 2, 3, 4, and 5.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.