The most annoying thing is the existing rpm apache in Fedora Core 4 if you have installed it. Of course you can keep it (make sure you installed httpd-devel as well), but I prefer everthing is built from source(As long as I can...).It's recommended to remove it first
before you build a brand new Apache from source.
Use,
yum remove httpd.i386
to remove the rpm apache packages. Boz of dependencies, PHP and system-config-httpd will also be removed,
you can optionall reinstall them later if u need.
1. download the apache src file httpd-2.2.0.tar.bz2 and unzip it locally.
2. ./configure --prefix=/usr/local/apache2 --enable-ssl --enable-so --enable-mods-shared=all
*N.B* If you need proxy , make sure add" --enable-proxy --enable-proxy-http " parameters.
3. make
4. make install
5.apache/bin/apachectl configtest
6. apache/bin/apachectl start
N.B. * If you are using apache2.0.x, and enable ssl like above, when you start the server, you
might see following errors:
no listening sockets available, shutting downUnable to open logsIt's because mod_ssl hasnt been loaded by default. Comment out the following two lines in httpd.conf:
#LoadModule ssl_module modules/mod_ssl.so#To enable apache as system service and start automatically on startup, do the following
1. create a file "httpd" in /etc/init.d/
Here is a sample file when the install dir of apache is /usr/local/apache2
************************************************************
#!/bin/bash
#
# Startup script for the Apache Web Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve # HTML files and CGI.
# processname: httpd
# pidfile: /usr/local/apache2/logs/httpd.pid
# config: /usr/local/apache2/conf/httpd.conf
# Source function library.
. /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/local/apache2/bin/apachectl
httpd=/usr/local/apache2/bin/httpd
pid=$httpd/logs/httpd.pid
prog=httpd
RETVAL=0
# 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: "
daemon $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd $pid
}
reload() {
echo -n $"Reloading $prog: "
killproc $httpd -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 $pid ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status"
echo $"|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
*************************************************************
2, chmod ugo+x httpd
3, chkconfig --add httpd
4, chkconfig --level 2345 httpd on
5, chkconfig --list
Now, you can use either "apachectl start/stop/restart" or "service httpd start/stop/restart" to control
apache service.
Reference:
http://www.activsoftware.com/apache/apache2src.cfm
http://johnturner.com/howto/apache2-tomcat4127-jk-rh9-howto.html