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

Reply via email to