summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xuserSubGenerate177
1 files changed, 132 insertions, 45 deletions
diff --git a/userSubGenerate b/userSubGenerate
index 1fca4af..c212564 100755
--- a/userSubGenerate
+++ b/userSubGenerate
@@ -3,7 +3,7 @@
# Ein Skript, das fuer jede Splinenutzerin eine
# Subdomain <user>[.userpage].spline[.inf.fu-berlin].de
# anlegt.
-# 2003-04-09 [stb]
+# 2003-04-09 [stb]
# 2003-05-25 [yann] Anpassung um Logfiles und cgi-bin
# 2005-11-15 [stb] Anpassung an neues Serverlayout
# 2005-11-16 [yann] Ergaenzung ohne "userpage"
@@ -17,53 +17,113 @@ then
fi
SPLINEUSERS=$(ldapsearch -LLL -x -b "ou=People,dc=spline,dc=inf,dc=fu-berlin,dc=de" uid | grep "^uid" | cut -d" " -f2 | sort)
-TMPFILEDNS=/tmp/cnames$(date -Is)
-TMPFILEAPACHE=/tmp/apacheVirtuals$(date -Is)
+TMPFILEDNS=$(mktemp /tmp/userSubGenerate-dns.XXXXXX)
+TMPFILEAPACHEVHOSTS=$(mktemp /tmp/userSubGenerate-apache-vhosts.XXXXXX)
+TMPFILEAPACHEGLOBAL=$(mktemp /tmp/userSubGenerate-apache-global.XXXXXX)
+TMPFILEPHP=$(mktemp /tmp/userSubGenerate-php-fpm.XXXXXX)
-cat <<EOF >> $TMPFILEDNS
-;
-; Diese Datei (USERPAGE_generated) -- bzw. alles, was ab
-; hier kommt -- wird automatisch generiert!
-;
+cat <<EOF > $TMPFILEDNS
+; Diese Datei wird automatisch generiert!
; Eintragungen von Hand sind sinnlos!
;
-; Siehe /usr/local/bin/userSubGenerate
+; Siehe plonk:/usr/local/bin/userSubGenerate
+;
;
; Fuer jede Nutzerin bei spline gibt es eine Subdomain
; <user>[.userpage].spline[.inf.fu-berlin].de, die dann vom
; Apache auf ~<user> aufgeloest wird.
-;
EOF
-cat <<EOF >> $TMPFILEAPACHE
+cat <<EOF > $TMPFILEAPACHEVHOSTS
+# Diese Datei wird automatisch generiert!
+# Eintragungen von Hand sind sinnlos!
+#
+# Siehe plonk:/usr/local/bin/userSubGenerate
+#
# Fuer jede Nutzerin bei spline gibt es eine Subdomain
# <user>[.userpage].spline[.inf.fu-berlin].de, die vom
# Apache auf ~<user> aufgeloest wird.
EOF
-echo "Generiere $TMPFILEDNS und $TMPFILEAPACHE ..." >&3
+cat <<EOF > $TMPFILEAPACHEGLOBAL
+# Diese Datei wird automatisch generiert!
+# Eintragungen von Hand sind sinnlos!
+#
+# Siehe plonk:/usr/local/bin/userSubGenerate
+#
+#
+# Für jeden User gibt es hier spezifische Einstellungen,
+# die wir im vhost und im /~user/ brauchen.
+
+AddHandler php-fastcgi .php .php3 .php4 .php5
+DirectoryIndex index.html index.htm index.php
+
+EOF
+
+cat <<EOF > $TMPFILEPHP
+; Diese Datei wird automatisch generiert!
+; Eintragungen von Hand sind sinnlos!
+;
+; Siehe plonk:/usr/local/bin/userSubGenerate
+;
+;
+; Hier wird ein php-pool fuer jeden user generiert.
+
+EOF
+
+echo "Generiere $TMPFILEDNS, $TMPFILEAPACHEVHOSTS, $TMPFILEAPACHEGLOBAL und $TMPFILEPHP..." >&3
for SPLINEUID in $(echo $SPLINEUSERS)
do
+ echo $SPLINEUID
FULLNAME=$(ldapsearch -LLL -x -b "dc=spline,dc=inf,dc=fu-berlin,dc=de" "(uid=$SPLINEUID)" cn | grep "^cn" | cut -d" " -f2-)
+
+
cat <<EOF >> $TMPFILEDNS
; $SPLINEUID.userpage.spline[.inf.fu-berlin].de fuer $FULLNAME
-$SPLINEUID.userpage IN CNAME userpage.spline.inf.fu-berlin.de.
-www.$SPLINEUID.userpage IN CNAME userpage.spline.inf.fu-berlin.de.
-$SPLINEUID IN CNAME userpage.spline.inf.fu-berlin.de.
-www.$SPLINEUID IN CNAME userpage.spline.inf.fu-berlin.de.
+$SPLINEUID.userpage IN CNAME userpage.spline.inf.fu-berlin.de.
+www.$SPLINEUID.userpage IN CNAME userpage.spline.inf.fu-berlin.de.
+$SPLINEUID IN CNAME userpage.spline.inf.fu-berlin.de.
+www.$SPLINEUID IN CNAME userpage.spline.inf.fu-berlin.de.
EOF
- if [[ -d /var/users/$SPLINEUID/public_html ]]
- then
+ if [ -d /var/users/$SPLINEUID/public_html ]; then
+
+ cat <<EOF >> $TMPFILEAPACHEGLOBAL
+# php fuer $SPLINEUID ($FULLNAME)
+FastCGIExternalServer /home/$SPLINEUID/php-worker -socket /var/run/php5-fpm/$SPLINEUID.sock
+ScriptAlias /home/$SPLINEUID/php-worker.fcgi /home/$SPLINEUID/php-worker
+
+<Directory /home/$SPLINEUID/>
+ Action php-fastcgi /home/$SPLINEUID/php-worker.fcgi
+</Directory>
+
+<Directory /home/$SPLINEUID/php-worker>
+ Options ExecCGI
+ Order allow,deny
+ Allow from all
+</Directory>
+
+<Directory /home/$SPLINEUID/public_html/webroot>
+ AllowOverride All
+ Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
+</Directory>
+
+<Directory /home/$SPLINEUID/public_html/cgi-bin>
+ Options ExecCGI
+ Order allow,deny
+ Allow from all
+</Directory>
- cat <<EOF >> $TMPFILEAPACHE
+
+EOF
+
+ cat <<EOF >> $TMPFILEAPACHEVHOSTS
# http://$SPLINEUID.userpage.spline[.inf.fu-berlin].de fuer $FULLNAME
-<VirtualHost userpage.spline.inf.fu-berlin.de:80>
- SSLEngine off
+<VirtualHost *:80>
ServerAlias $SPLINEUID.userpage.spline.inf.fu-berlin.de
ServerAlias $SPLINEUID.userpage.spline.de
ServerAlias $SPLINEUID.spline.de
@@ -72,40 +132,67 @@ EOF
ServerAlias www.$SPLINEUID.userpage.spline.de
ServerAlias www.$SPLINEUID.spline.de
ServerAlias www.$SPLINEUID.spline.inf.fu-berlin.de
- ErrorLog /var/users/$SPLINEUID/public_html/logs/error.log
- CustomLog /var/users/$SPLINEUID/public_html/logs/access.log combined
- DocumentRoot /var/users/$SPLINEUID/public_html/webroot
- ScriptAlias /cgi-bin/ /var/users/$SPLINEUID/public_html/cgi-bin/
-
- <Directory /var/users/$SPLINEUID/public_html/webroot>
- AllowOverride All
- Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
- </Directory>
-
- <Directory /var/users/$SPLINEUID/public_html/cgi-bin>
- Options ExecCGI
- Order allow,deny
- Allow from all
- </Directory>
+ ErrorLog /home/$SPLINEUID/public_html/logs/error.log
+ CustomLog /home/$SPLINEUID/public_html/logs/access.log combined
+ DocumentRoot /home/$SPLINEUID/public_html/webroot
+
+ SuexecUserGroup $SPLINEUID users
+
+ <Location "/php-status">
+ SetHandler php-fastcgi-status
+ Action php-fastcgi-status /home/$SPLINEUID/php-worker.fcgi virtual
+ </Location>
</VirtualHost>
EOF
- fi
+ cat <<EOF >> $TMPFILEPHP
+[$SPLINEUID]
+user = \$pool
+group = nogroup
+listen = /var/run/php5-fpm/\$pool.sock
+
+listen.owner = www-data
+listen.group = nogroup
+listen.mode = 0600
+
+pm = ondemand
+pm.max_children = 10
+pm.process_idle_timeout = 10s
+
+pm.status_path = /php-status
+catch_workers_output = yes
+
+security.limit_extensions = .php .php3 .php4 .php5
+
+EOF
+
+ fi # -d /var/users/$SPLINEUID/public_html
done
-echo "Kopiere $TMPFILEAPACHE nach userpage:/var/www/apache-config-userpage.spline.de ..." >&3
-scp $TMPFILEAPACHE www-data@userpage.spline.inf.fu-berlin.de:apache-config-userpage.spline.de
+echo "Kopiere $TMPFILEPHP nach userpage:/etc/php5/fpm/pool.d/users.conf ..." >&3
+scp $TMPFILEPHP www-data@userpage.spline.inf.fu-berlin.de:/etc/php5/fpm/pool.d/users.conf
+
+echo "Starte den php-fpm auf userpage neu." >&3
+ssh www-data@userpage.spline.inf.fu-berlin.de sudo /etc/init.d/php5-fpm reload
+
+echo "Kopiere $TMPFILEAPACHEVHOSTS nach userpage:/etc/apache2/user-site.d/user-vhosts.conf ..." >&3
+scp $TMPFILEAPACHEVHOSTS www-data@userpage.spline.inf.fu-berlin.de:/etc/apache2/user-site.d/user-vhosts.conf
+
+echo "Kopiere $TMPFILEAPACHEGLOBAL nach userpage:/etc/apache2/user-site.d/globals.conf ..." >&3
+scp $TMPFILEAPACHEGLOBAL www-data@userpage.spline.inf.fu-berlin.de:/etc/apache2/user-site.d/globals.conf
echo "Starte den Apache auf userpage neu." >&3
-ssh www-data@userpage.spline.inf.fu-berlin.de sudo /usr/sbin/apache2ctl graceful
+ssh www-data@userpage.spline.inf.fu-berlin.de sudo /etc/init.d/apache2 reload
-echo "Kopiere $TMPFILEDNS nach /etc/bind/dns-sources/USERPAGE_spline" >&3
-cp -f $TMPFILEDNS /etc/bind/dns-sources/USERPAGE_spline
+echo "Kopiere $TMPFILEDNS nach beep:/etc/bind/dns-sources/common.userpage" >&3
+scp $TMPFILEDNS wartung@beep.spline.inf.fu-berlin.de:/etc/bind/dns-sources/common.userpage
echo "Erstelle die DNS-Eintraege neu" >&3
-cd /etc/bind/dns-sources
-make mrproper && make && make serial && make install || echo "Fehler beim Erstellen der neuen DNS-Eintraege." >&3
+ssh wartung@beep.spline.inf.fu-berlin.de sudo /usr/bin/make -C /etc/bind/dns-sources/ install || echo "Fehler beim Erstellen der neuen DNS-Eintraege." >&3
-rm $TMPFILEAPACHE
+# cleanup
+rm $TMPFILEPHP
+rm $TMPFILEAPACHEVHOSTS
+rm $TMPFILEAPACHEGLOBAL
rm $TMPFILEDNS