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"),