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