Just a quick update, I thought I might as well share the scripts I use to create vhosts, so if you are using the setup I described in the other blog posts, this will make life easier for you, else just modify it to suit your needs.
vhost.sh (interactive script) – Screenshot
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #!/usr/local/bin/bash # vhost script by miklos@microsux.dk # Apache template file and vhost directory ATEMPLATE= "/usr/local/etc/apache22/template" AVHOSTDIR= "/usr/local/etc/apache22/vhosts" # nginx template file and vhost directory NTEMPLATE= "/usr/local/etc/nginx/template" NVHOSTDIR= "/usr/local/etc/nginx/vhosts" dialog --title "Create new vhost" --inputbox "Enter full domainname:" 8 50 2> /tmp/vhost .inputbox RETVAL=$? if [ "$RETVAL" == "255" ]; then rm -f /tmp/vhost .inputbox kill -SIGINT $$ elif [ "$RETVAL" == "1" ]; then rm -f /tmp/vhost .inputbox kill -SIGINT $$ else DOMAIN=` cat /tmp/vhost .inputbox` rm -f /tmp/vhost .inputbox fi dialog --title "Create new vhost" --inputbox "Enter full path:" 8 70 2> /tmp/vhost .inputbox RETVAL=$? if [ "$RETVAL" == "255" ]; then rm -f /tmp/vhost .inputbox kill -SIGINT $$ elif [ "$RETVAL" == "1" ]; then rm -f /tmp/vhost .inputbox kill -SIGINT $$ else FILEPATH=` cat /tmp/vhost .inputbox` rm -f /tmp/vhost .inputbox fi PATHFIXED=$( echo $FILEPATH| sed 's/\//\\\//g' ) cat $ATEMPLATE| sed "s/PATH/$PATHFIXED/g" | sed "s/HOST/$DOMAIN/g" > $AVHOSTDIR/$DOMAIN cat $NTEMPLATE| sed "s/PATH/$PATHFIXED/g" | sed "s/HOST/$DOMAIN/g" > $NVHOSTDIR/$DOMAIN |
autovhost.sh
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 | #!/usr/local/bin/bash # vhost script by miklos@microsux.dk # Apache template file and vhost directory ATEMPLATE= "/usr/local/etc/apache22/template" AVHOSTDIR= "/usr/local/etc/apache22/vhosts" # nginx template file and vhost directory NTEMPLATE= "/usr/local/etc/nginx/template" NVHOSTDIR= "/usr/local/etc/nginx/vhosts" if [ "$1" == "" ]; then echo "You need to supply domain and path - fx. autovhost.sh test.com /usr/local/www/test.com" elif [ "$2" == "" ]; then echo "You need to supply domain and path - fx. autovhost.sh test.com /usr/local/www/test.com" else PATHFIXED=$( echo $2| sed 's/\//\\\//g' ) cat $ATEMPLATE| sed "s/PATH/$PATHFIXED/g" | sed "s/HOST/$1/g" > $AVHOSTDIR/$1 cat $NTEMPLATE| sed "s/PATH/$PATHFIXED/g" | sed "s/HOST/$1/g" > $NVHOSTDIR/$1 fi |
Apache template file
01 02 03 04 05 06 07 08 09 10 11 | <VirtualHost 127.0.0.1:8080> DocumentRoot "PATH" ServerName HOST ErrorLog "/var/log/apache/HOST-error_log" CustomLog "/var/log/apache/HOST-access_log" common <Directory PATH> AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> |
nginx template file
01 02 03 04 05 06 07 08 09 10 11 12 | server { listen 84.246.242.141:80; server_name HOST; error_log /var/log/nginx/HOST-error.log; access_log /var/log/nginx/HOST-access.log main; location / { proxy_pass http://127.0.0.1:8080; include /usr/local/etc/nginx/proxy.conf; } } |
Enjoy!
#1 by Bionix on 18. February, 2011 - 21:00
Quote
Hi,
very good stuff at your site.
I read your blog posts and found a littel mistake at this site.
The url for the second screenshot is not the right link.
Bye,
Bionix
#2 by Miklos on 21. February, 2011 - 21:33
Quote
You are absolutely right – thank you for pointing that out
I removed the duplicated screenshot