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

View File

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

View File

@ -296,10 +296,11 @@ in {
extraModules = [
{ 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"; }
];
enablePHP = true;
extraConfig = ''

View File

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