diff --git a/hsarback/database/data.sql b/hsarback/database/data.sql
index 363b0c0..8600003 100644
--- a/hsarback/database/data.sql
+++ b/hsarback/database/data.sql
@@ -209,6 +209,14 @@ INSERT INTO domain_option (domain_option_name)
VALUES ('autoconfig');
INSERT INTO domain_option (domain_option_name)
VALUES ('dkim');
+INSERT INTO domain_option (domain_option_name)
+ VALUES ('passenger');
+INSERT INTO domain_option (domain_option_name)
+ VALUES ('passengerfriendlyerrorpages');
+INSERT INTO domain_option (domain_option_name)
+ VALUES ('cgi');
+INSERT INTO domain_option (domain_option_name)
+ VALUES ('fastcgi');
--
-- table: price_list
diff --git a/hsarback/database/database_update.sql b/hsarback/database/database_update.sql
index ee09d66..aaf22cb 100644
--- a/hsarback/database/database_update.sql
+++ b/hsarback/database/database_update.sql
@@ -83,3 +83,8 @@ INSERT INTO price (article_number, price, vat, price_list) VALUES (3125, 80, 19.
INSERT INTO price (article_number, price, vat, price_list) VALUES (3151, 160, 19.0, 1);
INSERT INTO price (article_number, price, vat, price_list) VALUES (2017, 2, 19.0, 1);
+
+INSERT INTO domain_option (domain_option_name) VALUES ('passenger');
+INSERT INTO domain_option (domain_option_name) VALUES ('passengerfriendlyerrorpages');
+INSERT INTO domain_option (domain_option_name) VALUES ('cgi');
+INSERT INTO domain_option (domain_option_name) VALUES ('fastcgi');
diff --git a/hsarback/src/main/resources/de/hsadmin/mods/dom/apache-vhost.vm b/hsarback/src/main/resources/de/hsadmin/mods/dom/apache-vhost.vm
index 91f9ef0..735130c 100644
--- a/hsarback/src/main/resources/de/hsadmin/mods/dom/apache-vhost.vm
+++ b/hsarback/src/main/resources/de/hsadmin/mods/dom/apache-vhost.vm
@@ -26,21 +26,32 @@
+#if( ${passenger} )
PassengerEnabled On
+#else
+ PassengerEnabled Off
+#end
+#if( ${passengerfriendlyerrorpages} )
+ PassengerFriendlyErrorPages On
+#end
AllowOverride AuthConfig FileInfo Indexes Limit Options=ExecCGI,IncludesNoExec,Indexes,MultiViews,SymLinksIfOwnerMatch,PassengerNodejs,PassengerPython,PassengerRuby,PassengerAppEnv
+#if( ${cgi} )
PassengerEnabled Off
SetHandler cgi-script
Options +ExecCGI +IncludesNoExec -Indexes -MultiViews +SymLinksIfOwnerMatch
+#end
+#if( ${fastcgi} )
PassengerEnabled Off
SetHandler fcgid-script
Options +ExecCGI +IncludesNoExec -Indexes -MultiViews +SymLinksIfOwnerMatch
+#end
#if( ${autoconfig} )
@@ -104,21 +115,32 @@
+#if( ${passenger} )
PassengerEnabled On
+#else
+ PassengerEnabled Off
+#end
+#if( ${passengerfriendlyerrorpages} )
+ PassengerFriendlyErrorPages On
+#end
AllowOverride AuthConfig FileInfo Indexes Limit Options=ExecCGI,IncludesNoExec,Indexes,MultiViews,SymLinksIfOwnerMatch,PassengerNodejs,PassengerPython,PassengerRuby,PassengerAppEnv
+#if( ${cgi} )
PassengerEnabled Off
SetHandler cgi-script
Options +ExecCGI +IncludesNoExec -Indexes -MultiViews +SymLinksIfOwnerMatch
+#end
+#if( ${fastcgi} )
PassengerEnabled Off
SetHandler fcgid-script
Options +ExecCGI +IncludesNoExec -Indexes -MultiViews +SymLinksIfOwnerMatch
+#end
#if( ${autoconfig} )
diff --git a/hsarweb/src/texts/domain.properties b/hsarweb/src/texts/domain.properties
index 47398bd..ed70489 100644
--- a/hsarweb/src/texts/domain.properties
+++ b/hsarweb/src/texts/domain.properties
@@ -9,6 +9,10 @@ domainoption.includes=Includes
domainoption.indexes=Indexes
domainoption.multiviews=MultiViews
domainoption.php=PHP
+domainoption.passenger=Passenger
+domainoption.passengerfriendlyerrorpages=PassengerFriendlyErrorPages
+domainoption.cgi=CGI
+domainoption.fastcgi=FCGI
yes=Yes
no=No
pac=packet
diff --git a/hsarweb/src/texts/domain_de.properties b/hsarweb/src/texts/domain_de.properties
index fddd54f..61f5ba1 100644
--- a/hsarweb/src/texts/domain_de.properties
+++ b/hsarweb/src/texts/domain_de.properties
@@ -9,6 +9,10 @@ domainoption.includes=Includes
domainoption.indexes=Indexes
domainoption.multiviews=MultiViews
domainoption.php=PHP
+domainoption.passenger=Passenger
+domainoption.passengerfriendlyerrorpages=PassengerFriendlyErrorPages
+domainoption.cgi=CGI
+domainoption.fastcgi=FCGI
yes=Ja
no=Nein
pac=Paket
diff --git a/qserv/src/main/java/de/hsadmin/mods/dom/DomainModuleImpl.java b/qserv/src/main/java/de/hsadmin/mods/dom/DomainModuleImpl.java
index 3a8c8c4..dc4cbb4 100644
--- a/qserv/src/main/java/de/hsadmin/mods/dom/DomainModuleImpl.java
+++ b/qserv/src/main/java/de/hsadmin/mods/dom/DomainModuleImpl.java
@@ -30,6 +30,10 @@ public class DomainModuleImpl extends AbstractModuleImpl {
public static final String DOMOPT_LETSENCRYPT = "letsencrypt";
public static final String DOMOPT_AUTOCONFIG = "autoconfig";
public static final String DOMOPT_DKIM = "dkim";
+ public static final String DOMOPT_PASSENGER = "passenger";
+ public static final String DOMOPT_PASSENGERFRIENDLYERRORPAGES = "passengerfriendlyerrorpages";
+ public static final String DOMOPT_CGI = "cgi";
+ public static final String DOMOPT_FASTCGI = "fastcgi";
public static final String[] ALL_DOMOPTS =
new String[] {
@@ -41,7 +45,11 @@ public class DomainModuleImpl extends AbstractModuleImpl {
DOMOPT_BACKUPFOREXTERNALMX,
DOMOPT_LETSENCRYPT,
DOMOPT_AUTOCONFIG,
- DOMOPT_DKIM
+ DOMOPT_DKIM,
+ DOMOPT_PASSENGER,
+ DOMOPT_PASSENGERFRIENDLYERRORPAGES,
+ DOMOPT_CGI,
+ DOMOPT_FASTCGI
};
public static final String[] DEFAULT_DOMOPTS =
new String[] {
@@ -52,7 +60,10 @@ public class DomainModuleImpl extends AbstractModuleImpl {
DOMOPT_INCLUDES,
DOMOPT_LETSENCRYPT,
DOMOPT_AUTOCONFIG,
- DOMOPT_DKIM
+ DOMOPT_DKIM,
+ DOMOPT_PASSENGER,
+ DOMOPT_CGI,
+ DOMOPT_FASTCGI
};
@Override
diff --git a/qserv/src/main/java/de/hsadmin/mods/dom/DomainOptionValues.java b/qserv/src/main/java/de/hsadmin/mods/dom/DomainOptionValues.java
index e2ff9d4..b856892 100644
--- a/qserv/src/main/java/de/hsadmin/mods/dom/DomainOptionValues.java
+++ b/qserv/src/main/java/de/hsadmin/mods/dom/DomainOptionValues.java
@@ -27,6 +27,10 @@ public class DomainOptionValues extends DefaultSelectableValues {
list.add(new BooleanListValue("letsencrypt"));
list.add(new BooleanListValue("autoconfig"));
list.add(new BooleanListValue("dkim"));
+ list.add(new BooleanListValue("passenger"));
+ list.add(new BooleanListValue("passengerfriendlyerrorpages"));
+ list.add(new BooleanListValue("cgi"));
+ list.add(new BooleanListValue("fastcgi"));
return list;
}
diff --git a/qserv/src/main/java/de/hsadmin/mods/dom/DomainProcessorFactory.java b/qserv/src/main/java/de/hsadmin/mods/dom/DomainProcessorFactory.java
index f7b5993..d8f6357 100644
--- a/qserv/src/main/java/de/hsadmin/mods/dom/DomainProcessorFactory.java
+++ b/qserv/src/main/java/de/hsadmin/mods/dom/DomainProcessorFactory.java
@@ -263,6 +263,10 @@ public class DomainProcessorFactory implements EntityProcessorFactory {
ifOption(templateVars, query, "htdocsfallback", Boolean.TRUE, Boolean.FALSE);
ifOption(templateVars, query, "letsencrypt", Boolean.TRUE, Boolean.FALSE);
ifOption(templateVars, query, "autoconfig", Boolean.TRUE, Boolean.FALSE);
+ ifOption(templateVars, query, "passenger", Boolean.TRUE, Boolean.FALSE);
+ ifOption(templateVars, query, "passengerfriendlyerrorpages", Boolean.TRUE, Boolean.FALSE);
+ ifOption(templateVars, query, "cgi", Boolean.TRUE, Boolean.FALSE);
+ ifOption(templateVars, query, "fastcgi", Boolean.TRUE, Boolean.FALSE);
final boolean isSetLetsencryptOption = templateVars.get("letsencrypt").equals(Boolean.TRUE);
final Processor domSetupProcessor = new CompoundProcessor(
isSetLetsencryptOption ? new NullProcessor() : new ShellProcessor("rm -f /etc/apache2/pems-generated/" + domName + ".crt"),