Overslaan en naar de inhoud gaan

Bash scripting nieuwe vhost OSX

Simpel script om een nieuwe vhosts op te zetten op OS X. Dit script maakt een nieuwe vhost config aan plus een nieuwe regel in /etc/hosts. Gegeven is wel dat de map al moet bestaan. Het script vraagt om twee waardes; de naam van je site, dit is ook de naam van de map. Heet je map test, dan heet je site ook test en is die te benaderen op test.dev. De tweede vraag is de docroot van de site binnen deze map. Leeg laten betekent de root van de map.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
read -p "New local site name: " SITE
read -p "Documentroot: " DOCROOT
 
#/etc/hosts
cp /etc/hosts /etc/hosts.original
echo -e "127.0.0.1\t${SITE}.dev" >> /etc/hosts
echo -e "127.0.0.1\twww.${SITE}.dev" >> /etc/hosts
echo -e "127.0.0.1\tm.${SITE}.dev" >> /etc/hosts
 
#httpd-vhosts.conf
VHOSTSFILE="/etc/apache2/extra/httpd-vhosts.conf"
cp $VHOSTSFILE ${VHOSTSFILE}.original
 
echo "" >> $VHOSTSFILE
echo "# Site: ${SITE}" >> $VHOSTSFILE
echo "<VirtualHost *:80>" >> $VHOSTSFILE
echo -e "\tServerAdmin admin@localhost" >> $VHOSTSFILE
echo -e "\tDocumentRoot "[volledig-pad-naar-sites]/${SITE}/${DOCROOT}"" >> $VHOSTSFILE
echo -e "\tServerName ${SITE}.dev" >> $VHOSTSFILE
echo -e "\tServerAlias www.${SITE}.dev" >> $VHOSTSFILE
echo -e "\tServerAlias m.${SITE}.dev" >> $VHOSTSFILE
echo -e "\tErrorLog "/private/var/log/apache2/${SITE}-error_log"" >> $VHOSTSFILE
echo -e "\tCustomLog "/private/var/log/apache2/${SITE}-access_log" common" >> $VHOSTSFILE
echo "</VirtualHost>" >> $VHOSTSFILE
 
#restart apache
echo "Apache restarting."
apachectl restart
echo "Apache restart complete."