From ee5e33f3fe2051e695cb19c28e3eb6474183c9de Mon Sep 17 00:00:00 2001
From: Michael Hierweck <michael@hierweck.de>
Date: Tue, 12 Aug 2014 16:13:26 +0200
Subject: [PATCH] Introduced Phusion Passenger for Dynamic Web.

---
 hsarback/src/de/hsadmin/mods/dom/apache-vhost.vm             |   48 ++++++++++++++---------
 hsarback/src/de/hsadmin/mods/dom/DomainProcessorFactory.java |   20 +++-------
 2 files changed, 35 insertions(+), 33 deletions(-)

diff --git a/hsarback/src/de/hsadmin/mods/dom/DomainProcessorFactory.java b/hsarback/src/de/hsadmin/mods/dom/DomainProcessorFactory.java
index 304de25..1d9bddd 100644
--- a/hsarback/src/de/hsadmin/mods/dom/DomainProcessorFactory.java
+++ b/hsarback/src/de/hsadmin/mods/dom/DomainProcessorFactory.java
@@ -247,20 +247,12 @@
 		domDirsProcessor.appendProcessor(
 				new CreateFileProcessor("/de/hsadmin/mods/dom/index.html.vm", templateVars, dom, domainDir + "/subs-ssl/www/index.html", userName, pacName, "644", false)
 			);
-		if (dom.isDynamic()) {
-			domDirsProcessor.appendProcessor(
-					new CreateFileProcessor("/de/hsadmin/mods/dom/test.cgi.vm", templateVars, dom, domainDir + "/cgi/test.cgi", userName, pacName, "755", false)
-				);
-			domDirsProcessor.appendProcessor(
-					new CreateFileProcessor("/de/hsadmin/mods/dom/test.cgi.vm", templateVars, dom, domainDir + "/cgi-ssl/test.cgi", userName, pacName, "755", false)
-				);
-			domDirsProcessor.appendProcessor(
-					new CopyFileProcessor("/usr/local/src/phpstub/phpstub", domainDir + "/fastcgi/phpstub", userName, pacName, "755")
-				);
-			domDirsProcessor.appendProcessor(
-					new CopyFileProcessor("/usr/local/src/phpstub/phpstub", domainDir + "/fastcgi-ssl/phpstub", userName, pacName, "755")
+		domDirsProcessor.appendProcessor(
+				new CopyFileProcessor("/usr/local/src/phpstub/phpstub", domainDir + "/fastcgi/phpstub", userName, pacName, "755")
 			);
-		}
+		domDirsProcessor.appendProcessor(
+				new CopyFileProcessor("/usr/local/src/phpstub/phpstub", domainDir + "/fastcgi-ssl/phpstub", userName, pacName, "755")
+			);
 		domDirsProcessor.appendProcessor(
 				new ShellProcessor("ln -sf " + domainDir + " /home/doms/ && " +
 						"chown --no-dereference " + userName + ":httpd /home/doms/" + domName 
@@ -283,7 +275,7 @@
 		ifOption(templateVars, query, "multiviews", "+MultiViews", "-MultiViews");
 		ifOption(templateVars, query, "htdocsfallback", Boolean.TRUE, Boolean.FALSE);
 		Processor domSetupProcessor = new CompoundProcessor(
-			new CreateFileProcessor("/de/hsadmin/mods/dom/httpd-vhost.vm", templateVars, dom, "/etc/apache2/sites-available/" + domName + ".tmp", "root", "root", "644", true),
+			new CreateFileProcessor("/de/hsadmin/mods/dom/apache-vhost.vm", templateVars, dom, "/etc/apache2/sites-available/" + domName + ".tmp", "root", "root", "644", true),
 			new ShellProcessor("ls /etc/apache2/pems/" + pac + ".pem >/dev/null 2>&1" +
 					" && sed -i '/SSLCertificate.*default/d' " + "/etc/apache2/sites-available/" + domName + ".tmp" + 
 					" && (ls /etc/apache2/pems/" + pac + ".chain.pem >/dev/null 2>&1 || sed -i '/SSLCertificateChain.*" + pac + "/d' " + "/etc/apache2/sites-available/" + domName + ".tmp )" + 
diff --git a/hsarback/src/de/hsadmin/mods/dom/httpd-vhost.vm b/hsarback/src/de/hsadmin/mods/dom/apache-vhost.vm
similarity index 85%
rename from hsarback/src/de/hsadmin/mods/dom/httpd-vhost.vm
rename to hsarback/src/de/hsadmin/mods/dom/apache-vhost.vm
index 3d8c1a0..9a90cc8 100644
--- a/hsarback/src/de/hsadmin/mods/dom/httpd-vhost.vm
+++ b/hsarback/src/de/hsadmin/mods/dom/apache-vhost.vm
@@ -4,26 +4,30 @@
 #
 
 <VirtualHost ${pac.curINetAddr.inetAddr}:80 ${pac.oldINetAddr.inetAddr}:80>
-
     ServerName ${dom.name}
     ServerAlias *.${dom.name}
     ServerAdmin webmaster@${dom.name}
 
     SuexecUserGroup ${dom.user.name} ${pac.name}
 
+#if( ${dynamicWeb} )    
+    PassengerEnabled on
+    PassengerUser ${dom.user.name}
+    PassengerGroup ${pac.name}
+    PassengerAppRoot /home/doms/${dom.name}/app/
+#end    
+
     DocumentRoot /home/doms/${dom.name}/htdocs
 
-#if( ${dynamicWeb} )
     Alias /cgi-bin/ /home/doms/${dom.name}/cgi/
     Alias /fastcgi-bin/ /home/doms/${dom.name}/fastcgi/
-#end
 
     <Directory />
         Options -ExecCGI ${includes} ${indexes} ${multiviews} +SymLinksIfOwnerMatch
     </Directory>
 
     <Directory /home/doms/${dom.name}/>
-        AllowOverride AuthConfig FileInfo Indexes Limit
+        AllowOverride AuthConfig FileInfo Indexes Limit Options=Includes,Indexes,MultiViews,PassengerNodejs,PassengerPython,PassengerRuby,PassengerAppEnv
     </Directory>
 
 #if( ${dynamicWeb} )
@@ -31,16 +35,18 @@
         SetHandler cgi-script
         Options +ExecCGI ${includes} -Indexes -MultiViews +SymLinksIfOwnerMatch
     </Location>
+#else
+    <Location /cgi-bin/>
+        Redirect 501 /
+    </Location>
+#end
 
+#if( ${dynamicWeb} )
     <Location /fastcgi-bin/>
         SetHandler fcgid-script
         Options +ExecCGI ${includes} -Indexes -MultiViews +SymLinksIfOwnerMatch
     </Location>
 #else
-    <Location /cgi-bin/>
-        Redirect 501 /
-    </Location>
-
     <Location /fastcgi-bin/>
         Redirect 501 /
     </Location>
@@ -67,29 +73,32 @@
     AddType application/x-httpd-php .php .php5 .php4 .php3
     Action application/x-httpd-php /fastcgi-bin/phpstub
 #end
-
 </VirtualHost>
 
 <VirtualHost ${pac.curINetAddr.inetAddr}:443 ${pac.oldINetAddr.inetAddr}:443>
-
     ServerName ${dom.name}
     ServerAlias *.${dom.name}
     ServerAdmin ${dom.user.name}@${dom.name}
 
     SuexecUserGroup ${dom.user.name} ${pac.name}
+    
+#if( ${dynamicWeb} )    
+    PassengerEnabled on
+    PassengerUser ${dom.user.name}
+    PassengerGroup ${pac.name}
+    PassengerAppRoot /home/doms/${dom.name}/app-ssl/
+#end    
 
     SSLEngine On
     SSLCertificateFile /etc/apache2/pems/default.pem
     SSLCertificateChainFile /etc/apache2/pems/default.chain.pem
     SSLCertificateFile /etc/apache2/pems/${pac.name}.pem
     SSLCertificateChainFile /etc/apache2/pems/${pac.name}.chain.pem
-
+       
     DocumentRoot /home/doms/${dom.name}/htdocs-ssl
 
-#if( ${dynamicWeb} )
     Alias /cgi-bin/ /home/doms/${dom.name}/cgi-ssl/
     Alias /fastcgi-bin/ /home/doms/${dom.name}/fastcgi-ssl/
-#end
 
     <Directory />
         SSLRequireSSL On
@@ -97,7 +106,7 @@
     </Directory>
 
     <Directory /home/doms/${dom.name}/>
-        AllowOverride AuthConfig FileInfo Indexes Limit
+        AllowOverride AuthConfig FileInfo Indexes Limit Options=Includes,Indexes,MultiViews,PassengerNodejs,PassengerPython,PassengerRuby,PassengerAppEnv
     </Directory>
 
 #if( ${dynamicWeb} )
@@ -105,16 +114,18 @@
         SetHandler cgi-script
         Options +ExecCGI ${includes} -Indexes -MultiViews +SymLinksIfOwnerMatch
     </Location>
+#else
+    <Location /cgi-bin/>
+        Redirect 501 /
+    </Location>
+#end
 
+#if( ${dynamicWeb} )
     <Location /fastcgi-bin/>
         SetHandler fcgid-script
         Options +ExecCGI ${includes} -Indexes -MultiViews +SymLinksIfOwnerMatch
     </Location>
 #else
-    <Location /cgi-bin/>
-        Redirect 501 /
-    </Location>
-
     <Location /fastcgi-bin/>
         Redirect 501 /
     </Location>
@@ -141,5 +152,4 @@
     AddType application/x-httpd-php .php .php5 .php4 .php3
     Action application/x-httpd-php /fastcgi-bin/phpstub
 #end
-
 </VirtualHost>

--
Gitblit v1.9.3