Startup

Httpd is probably running at startup so, before you do anything, stop httpd:

     /etc/rc.d/init.d/httpd stop

Hack /etc/rc.d/init.d/httpd to point to the new httpd directories:

     httpd="/usr/share/httpd-2.2/bin/httpd -f /etc/httpd/conf/httpd-2.2.10.conf"

If you built newer versions of DSOs that require newer libraries than the system-installed versions and the overrides are somewhere other than the standard load path (e.g. /usr/lib), you may have to set LD_LIBRARY_PATH in the startup script, just before httpd is started:

     LD_LIBRARY_PATH=/usr/local/lib; export LD_LIBRARY_PATH

/etc/init.d/httpd:

Here is a complete example of the startup script:

     #!/bin/bash
     #
     # Startup script for the Apache Web Server
     #
     # chkconfig: 2345 85 15
     # description: Apache is a World Wide Web server.  It is used to serve \
     #              HTML files and CGI.
     # processname: httpd
     # pidfile: /var/run/httpd.pid
     # config: /etc/httpd/conf/httpd.conf
     # Source function library and system configuration.
     . /etc/rc.d/init.d/functions
     if [ -f /etc/sysconfig/httpd ]; then
             . /etc/sysconfig/httpd
     fi
     # This will prevent initlog from swallowing up a pass-phrase prompt if
     # mod_ssl needs a pass-phrase from the user.
     INITLOG_ARGS=""
     # Path to the apachectl script, server binary, and short-form for messages.
     apachectl=/usr/share/httpd-2.2/bin/apachectl
     httpd="/usr/share/httpd-2.2/bin/httpd -f /etc/httpd/conf/httpd-2.2.10.conf"
     # Pid file and program name.
     httpdfile="/usr/sbin/httpd"
     prog=httpd
     RETVAL=0
     # Check for old, 1.3 configuration files.
     check13 () {
         CONFFILE=/etc/httpd/conf/httpd.conf
         GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"
         GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"
         GONE="${GONE}AccessConfig|ResourceConfig)"
         if 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.0.40/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 $"Starting $prog: "
         check13 || exit 1
         LD_LIBRARY_PATH=/usr/local/lib
         export LD_LIBRARY_PATH
         daemon $httpd $OPTIONS
         RETVAL=$?
         echo
         [ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
         return $RETVAL
     }
     stop() {
         echo -n $"Stopping $prog: "
         killproc $httpdfile
         RETVAL=$?
         echo
         [ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
     }
     reload() {
         echo -n $"Reloading $prog: "
         check13 || exit 1
         killproc $httpdfile -HUP
         RETVAL=$?
         echo
     }
     # See how we were called.
     case "$1" in
       start)
         start
         ;;
       stop)
         stop
         ;;
       status)
         status $httpd
         RETVAL=$?
         ;;
       restart)
         stop
         start
         ;;
       condrestart)
         if [ -f /var/run/httpd.pid ] ; then
             stop
             start
         fi
         ;;
       reload)
         reload
         ;;
       graceful|help|configtest|fullstatus)
         $apachectl $@
         RETVAL=$?
         ;;
       *)
         echo $"Usage: $prog {start|stop|restart|condrestart|reload|status\
             |fullstatus|graceful|help|configtest}"
         exit 1
     esac
     exit $RETVAL

Once you have you startup script hacked the way you'd like it, start httpd:

     /etc/rc.d/init.d/httpd start