-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapache-site-conf.sh
110 lines (89 loc) · 4.72 KB
/
apache-site-conf.sh
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/bin/bash
# This script is to build apache conf files for Django apps
# Version: 1.0 Prod
# Author: Benjamin P. Trachtenberg
# Contact: [email protected]
declare -r apachedirname="/etc/apache2/sites-available"
apacheconfname=""
declare -r djangodirname="/DjangoSites"
# Check for DjangoSites Directory
if [[ ! -d $djangodirname ]]; then
echo "No DjangoSites Directory Found!"
exit 1
fi
# Check for Apache sites-available directory
if [[ ! -d $apachedirname ]]; then
echo "No Apache sites-available Directory Found!"
exit 1
fi
if [[ -f "/etc/apache2/sites-enabled/000-default.conf" ]]; then
a2dissite 000-default.conf > /dev/null
fi
# apache_conf Funtion
apache_conf () {
if [[ -d $djangodirname/$1 ]]; then
apacheconfname="${1,,}.conf"
if [[ ! -f "$apachedirname/$apacheconfname" ]]; then
echo "Creating apache config $apachedirname/$apacheconfname"
echo "<VirtualHost *:80>" >> $apachedirname/$apacheconfname
if [[ $(ls -d $djangodirname/*/ | wc -l) = 1 && $SITE_SERVER_NAME ]]; then
echo " ServerName $SITE_SERVER_NAME" >> $apachedirname/$apacheconfname
else
echo " # ServerName www.example.com" >> $apachedirname/$apacheconfname
fi
if [[ $(ls -d $djangodirname/*/ | wc -l) = 1 && $SITE_SERVER_ADMIN ]]; then
echo " ServerAdmin $SITE_SERVER_ADMIN" >> $apachedirname/$apacheconfname
else
echo " ServerAdmin webmaster@localhost" >> $apachedirname/$apacheconfname
fi
echo "" >> $apachedirname/$apacheconfname
echo " Alias /media/ /DjangoSites/$directory/media/" >> $apachedirname/$apacheconfname
echo "" >> $apachedirname/$apacheconfname
echo " <Directory /DjangoSites/$directory/media>" >> $apachedirname/$apacheconfname
echo " Order deny,allow" >> $apachedirname/$apacheconfname
echo " Require all granted" >> $apachedirname/$apacheconfname
echo " </Directory>" >> $apachedirname/$apacheconfname
echo "" >> $apachedirname/$apacheconfname
echo " Alias /static/ /DjangoSites/$directory/static/site/" >> $apachedirname/$apacheconfname
echo "" >> $apachedirname/$apacheconfname
echo " <Directory /DjangoSites/$directory/static/site>" >> $apachedirname/$apacheconfname
echo " Order deny,allow" >> $apachedirname/$apacheconfname
echo " Require all granted" >> $apachedirname/$apacheconfname
echo " </Directory>" >> $apachedirname/$apacheconfname
echo "" >> $apachedirname/$apacheconfname
echo " WSGIScriptAlias / /DjangoSites/$directory/apache/django.wsgi process-group=$directory" >> $apachedirname/$apacheconfname
echo " WSGIDaemonProcess $directory" >> $apachedirname/$apacheconfname
echo " WSGIProcessGroup $directory" >> $apachedirname/$apacheconfname
echo "" >> $apachedirname/$apacheconfname
echo " <Directory /DjangoSites/$directory/apache>" >> $apachedirname/$apacheconfname
echo " Order deny,allow" >> $apachedirname/$apacheconfname
echo " Require all granted" >> $apachedirname/$apacheconfname
echo " </Directory>" >> $apachedirname/$apacheconfname
echo "" >> $apachedirname/$apacheconfname
echo " # Available loglevels: trace8, ..., trace1, debug, info, notice, warn," >> $apachedirname/$apacheconfname
echo " # error, crit, alert, emerg." >> $apachedirname/$apacheconfname
echo " # It is also possible to configure the loglevel for particular" >> $apachedirname/$apacheconfname
echo " # modules, e.g." >> $apachedirname/$apacheconfname
echo " LogLevel info" >> $apachedirname/$apacheconfname
echo "" >> $apachedirname/$apacheconfname
echo " ErrorLog ${APACHE_LOG_DIR}/error.log" >> $apachedirname/$apacheconfname
echo " CustomLog ${APACHE_LOG_DIR}/access.log combined" >> $apachedirname/$apacheconfname
echo "" >> $apachedirname/$apacheconfname
echo "</VirtualHost>" >> $apachedirname/$apacheconfname
echo "" >> $apachedirname/$apacheconfname
echo "# vim: syntax=apache ts=4 sw=4 sts=4 sr noet" >> $apachedirname/$apacheconfname
a2ensite $apacheconfname > /dev/null
else
echo "Can not create apache config $apachedirname/$apacheconfname"
echo "It already exists remove it and run the script again"
fi
fi
}
if [[ -n "$SITE_DIRECTORY_NAME" ]]; then
directory="$SITE_DIRECTORY_NAME"
apache_conf directory
else
for directory in $(ls $djangodirname); do
apache_conf directory
done
fi