Re: virtual hosting methods
On Sat, Nov 24, 2001 at 04:29:06PM -0500, Kevin J. Menard, Jr. wrote:
> Hey guys,
>
> And I was thinking just have a separate vhost.conf file and modifying
> that, then restarting apache with graceful.
This is exactly what I do, with the same filename vhost.conf and
everything =)
In fact, apache's httpd.conf is configured to read vhost.conf, but any
of my web-based admin tools (which I wrote) use a file called
vhost.latest, then this script runs as a cron job every 3 minutes:
#!/bin/bash
diff /etc/apache/vhost.conf /etc/apache/vhost.latest >/dev/null
if [ $? = 1 ] ; then
echo >/tmp/thisisnow `date +%Y%m%d-%H%M%S`
cat /etc/apache/vhost.conf > /etc/apache/vhost.conf.`cat /tmp/thisisnow`
cat /etc/apache/vhost.latest >/etc/apache/vhost.conf
echo >>/var/log/telcust.log `date +%Y-%m-%d-%H-%M-%S` INFO: Rotated vhost.conf
echo Rotating apache configuration!
echo
apachectl configtest
if [ $? = 0 ] ; then
apachectl stop
sleep 1
apachectl start
sleep 2
apachectl start
pidof /usr/sbin/apache >/dev/null
if [ $? = 1 ] ; then
echo >>/var/log/telcust.log `date +%Y-%m-%d-%H-%M-%S` WARN: Apache did not restart
echo DID NOT DETECT ANY RUNNING APACHE PROCESSES!!!
echo
echo End of /var/log/apache/error.log follows
echo
tail /var/log/apache/error.log
cat /etc/apache/vhost.conf.`cat /tmp/thisisnow` >/etc/apache/vhost.conf
apachectl start
echo
echo I have restored the old config file and restarted apache.
echo You will get this error every three minutes as an incentive
echo to fix the problem in /etc/apache/vhost.latest !
else
echo Detected apache processes have restarted OK.
fi
else
echo
echo >>/var/log/telcust.log `date +%Y-%m-%d-%H-%M-%S` WARN: Apache conf failed syntax test
echo Oh dear, the new apache config failed the configtest.
echo Will restore the old config and not restart apache.
cat /etc/apache/vhost.conf.`cat /tmp/thisisnow` >/etc/apache/vhost.conf
fi
fi
-------------------------------------------------
The vhost.latest simply contains lots of <VirtualHost> blocks.
Cheers,
gdh
Reply to: