Add new domain options passenger, passengerfriendlyerrorpages, cgi and fastcgi

This commit is contained in:
Timotheus Pokorra 2023-11-28 11:58:51 +01:00
parent 8409ede74b
commit 2c4af11660
8 changed files with 64 additions and 2 deletions

View File

@ -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

View File

@ -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');

View File

@ -26,21 +26,32 @@
</Directory>
<Directory /home/doms/${dom.name}/>
#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
</Directory>
#if( ${cgi} )
<Location /cgi-bin/>
PassengerEnabled Off
SetHandler cgi-script
Options +ExecCGI +IncludesNoExec -Indexes -MultiViews +SymLinksIfOwnerMatch
</Location>
#end
#if( ${fastcgi} )
<Location /fastcgi-bin/>
PassengerEnabled Off
SetHandler fcgid-script
Options +ExecCGI +IncludesNoExec -Indexes -MultiViews +SymLinksIfOwnerMatch
</Location>
#end
#if( ${autoconfig} )
<Location /autodiscover/autodiscover.xml>
@ -104,21 +115,32 @@
</Directory>
<Directory /home/doms/${dom.name}/>
#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
</Directory>
#if( ${cgi} )
<Location /cgi-bin/>
PassengerEnabled Off
SetHandler cgi-script
Options +ExecCGI +IncludesNoExec -Indexes -MultiViews +SymLinksIfOwnerMatch
</Location>
#end
#if( ${fastcgi} )
<Location /fastcgi-bin/>
PassengerEnabled Off
SetHandler fcgid-script
Options +ExecCGI +IncludesNoExec -Indexes -MultiViews +SymLinksIfOwnerMatch
</Location>
#end
#if( ${autoconfig} )
<Location /autodiscover/autodiscover.xml>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;
}

View File

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