Shawn, instead of reminding to perform a manual restart, you could add the restart line to this script like a Sysv-init script line. Just replace the line
echo "\nRemember to restart the Apache services to make this VHost available" with /etc/init.d/apache2 restart HTH, Hendrik Shawn wrote: > Hi All. > > Tonight I found I needed to write yet another Virtual Host definition > for Apache. So, seeing as this is a redundant process, I decided to > automate it with a script, and thought I'd share. > > In the script below, you would only need to change the DIR_VHOST, > DIR_WWW, and DIR_LOG directories to match your setup. DIR_VHOST is > where the virtual host config file should be stored (the filename is > created automagically). The DIR_WWW is where you want the root > directory for this host (where the html files go). The DIR_LOG is where > to store the log files for this host. > > The only nagging point for me is how to handle if someone enters one or > more spaces for the domain name... But, seeing as that is not proper > anyways, this works for me. Of course, this only creates a basic vhost > config, but it's a starting point... > > Also, I'm sure there's lots that can be done to make this script better. > But my initial test works fine - the virtual host is responding properly. > > Hope this helps someone. > > Shawn > > ------------------------- > > #!/bin/bash > #Created By: Shawn Grover > #Created On: 11 Oct 2006 > #This file will add a new configuration file for an Apache Virtual Host > > #get the name of the new host > read -p "Enter the virtual host domain: " > > #make sure it is not an empty response > if [[ $REPLY == "" ]] > then > echo "Virtual Host required." > exit 1 > fi > > #define our variables > VHOST=$REPLY > DIR_VHOST=/etc/apache2/vhosts.d > DIR_WWW=/home/www/$VHOST > DIR_LOG=/var/log/apache2/$VHOST.log > > #determine the filename > VFILE="$DIR_VHOST/$VHOST.conf" > > #If the file exists, we are done. > if [ -f $VFILE ] > then > echo "Virtual Host file already exists." > exit 0 > fi > > #create the working directory > if [ -d $DIR_WWW ] > then > echo "Web directory already exists." > else > echo "Creating web directory: $DIR_WWW" > mkdir $DIR_WWW > fi > > #Create the file, then add the VHOST directives > touch $VFILE > echo "<VirtualHost *:80>" 1>>$VFILE > echo " ServerName $VHOST" 1>>$VFILE > echo " DocumentRoot $DIR_WWW" 1>>$VFILE > echo " CustomLog $DIR_LOG combined" 1>>$VFILE > echo " <Directory $DIR_WWW>" 1>>$VFILE > echo " Options All" 1>>$VFILE > echo " Order Allow,Deny" 1>>$VFILE > echo " Allow from All" 1>>$VFILE > echo " </Directory>" 1>>$VFILE > echo "</VirtualHost>" 1>>$VFILE > > > #Tell the user what has been done > echo "Virtual Host $VHOST created." > echo "- vhost config file: $VFILE" > echo "- Log File: $DIR_LOG" > echo "- Web Directory: $DIR_WWW" > > echo "\nRemember to restart the Apache services to make this VHost > available" > exit 0 > > > _______________________________________________ > clug-talk mailing list > [email protected] > http://clug.ca/mailman/listinfo/clug-talk_clug.ca > Mailing List Guidelines (http://clug.ca/ml_guidelines.php) > **Please remove these lines when replying -- Hendrik M. Schaink Chief Consultant "Integrated Business Solutions & Dependable Service" InfoVision Consulting Calgary, Alberta, Canada Phone: (403) 239-0099 "The Vision: We are the partners of choice for companies and organizations that share our commitment to creating a world that is truly wise, courageous, prosperous, innovative, inclusive, sustainable and humane." --Ruben Nelson GPG Fingerprint: 1371 0927 8C3C 831F A838 C312 68BC F5DB 010D F3D7 _______________________________________________ clug-talk mailing list [email protected] http://clug.ca/mailman/listinfo/clug-talk_clug.ca Mailing List Guidelines (http://clug.ca/ml_guidelines.php) **Please remove these lines when replying

