* Allow the Apache submodules to declare whether they need PHP.

Don't depend on PHP unless this is the case.

svn path=/nixos/trunk/; revision=22600
This commit is contained in:
Eelco Dolstra 2010-07-14 12:58:38 +00:00
parent bfe46a653b
commit f0b647c326
4 changed files with 18 additions and 8 deletions

View File

@ -68,6 +68,7 @@ let
globalEnvVars = []; globalEnvVars = [];
robotsEntries = ""; robotsEntries = "";
startupScript = ""; startupScript = "";
enablePHP = false;
phpOptions = ""; phpOptions = "";
options = {}; options = {};
}; };
@ -109,7 +110,9 @@ let
"mime" "dav" "status" "autoindex" "asis" "info" "cgi" "dav_fs" "mime" "dav" "status" "autoindex" "asis" "info" "cgi" "dav_fs"
"vhost_alias" "negotiation" "dir" "imagemap" "actions" "speling" "vhost_alias" "negotiation" "dir" "imagemap" "actions" "speling"
"userdir" "alias" "rewrite" "proxy" "proxy_http" "userdir" "alias" "rewrite" "proxy" "proxy_http"
] ++ optional enableSSL "ssl" ++ extraApacheModules; ]
++ optional enableSSL "ssl"
++ extraApacheModules;
loggingConf = '' loggingConf = ''
@ -299,9 +302,11 @@ let
${let ${let
load = {name, path}: "LoadModule ${name}_module ${path}\n"; load = {name, path}: "LoadModule ${name}_module ${path}\n";
allModules = allModules =
concatMap (svc: svc.extraModulesPre) allSubservices ++ concatMap (svc: svc.extraModulesPre) allSubservices
map (name: {inherit name; path = "${httpd}/modules/mod_${name}.so";}) apacheModules ++ ++ map (name: {inherit name; path = "${httpd}/modules/mod_${name}.so";}) apacheModules
concatMap (svc: svc.extraModules) allSubservices ++ extraForeignModules; ++ optional enablePHP { name = "php5"; path = "${pkgs.php}/modules/libphp5.so"; }
++ concatMap (svc: svc.extraModules) allSubservices
++ extraForeignModules;
in concatMapStrings load allModules in concatMapStrings load allModules
} }
@ -360,6 +365,9 @@ let
''; '';
enablePHP = any (svc: svc.enablePHP) allSubservices;
# Generate the PHP configuration file. Should probably be factored # Generate the PHP configuration file. Should probably be factored
# out into a separate module. # out into a separate module.
phpIni = pkgs.runCommand "php.ini" phpIni = pkgs.runCommand "php.ini"
@ -563,7 +571,7 @@ in
optional config.networking.defaultMailServer.directDelivery "${pkgs.ssmtp}/sbin" optional config.networking.defaultMailServer.directDelivery "${pkgs.ssmtp}/sbin"
++ (concatMap (svc: svc.extraServerPath) allSubservices) ); ++ (concatMap (svc: svc.extraServerPath) allSubservices) );
PHPRC = phpIni; PHPRC = if enablePHP then phpIni else "";
TZ = config.time.timeZone; TZ = config.time.timeZone;

View File

@ -109,6 +109,8 @@ in
''} ''}
''; '';
enablePHP = true;
options = { options = {
id = mkOption { id = mkOption {

View File

@ -296,10 +296,11 @@ in {
extraModules = [ extraModules = [
{ name = "python"; path = "${pkgs.mod_python}/modules/mod_python.so"; } { name = "python"; path = "${pkgs.mod_python}/modules/mod_python.so"; }
{ name = "php5"; path = "${pkgs.php}/modules/libphp5.so"; }
{ name = "dav_svn"; path = "${subversion}/modules/mod_dav_svn.so"; } { name = "dav_svn"; path = "${subversion}/modules/mod_dav_svn.so"; }
]; ];
enablePHP = true;
extraConfig = '' extraConfig = ''

View File

@ -21,8 +21,7 @@ in
{ {
extraModules = enablePHP = true;
[ { name = "php5"; path = "${pkgs.php}/modules/libphp5.so"; } ];
phpOptions = phpOptions =
'' ''