X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fwebsites%2Fphp-application.nix;fp=modules%2Fwebsites%2Fphp-application.nix;h=8ad7a0dfe33e71ac3970242c5cbb3ff874259d1f;hb=1594c8da6fbb4ffa09ab970fb887cea61c572f60;hp=1bc4872eae3bfd3c8f7a083397531d20c0e68b05;hpb=717ccfd957e686d773480df817387aebbe79aa48;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/websites/php-application.nix b/modules/websites/php-application.nix index 1bc4872..8ad7a0d 100644 --- a/modules/websites/php-application.nix +++ b/modules/websites/php-application.nix @@ -19,6 +19,13 @@ in Path to application’s vardir. ''; }; + varDirPaths = mkOption { + type = attrsOf str; + default = {}; + description = '' + Map of additional folders => mode to create under varDir + ''; + }; mode = mkOption { type = str; default = "0700"; @@ -163,7 +170,7 @@ in listen.group = ${icfg.httpdGroup} ${optionalString (icfg.phpSession) '' php_admin_value[session.save_path] = "${icfg.varDir}/phpSessions"''} - php_admin_value[open_basedir] = "${builtins.concatStringsSep ":" ([icfg.app icfg.varDir] ++ icfg.phpOpenbasedir)}" + php_admin_value[open_basedir] = "${builtins.concatStringsSep ":" ([icfg.app icfg.varDir] ++ icfg.phpWatchFiles ++ icfg.phpOpenbasedir)}" '' + icfg.phpPool; phpOptions = config.services.phpfpm.phpOptions + icfg.phpOptions; } @@ -173,6 +180,13 @@ in (if icfg.webappName == null then name else icfg.webappName) icfg.webRoot ) (attrsets.filterAttrs (n: v: !isNull v.webRoot) cfg.apps); + services.filesWatcher = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair + "phpfpm-${name}" { + restart = true; + paths = icfg.phpWatchFiles; + } + ) (attrsets.filterAttrs (n: v: builtins.length v.phpWatchFiles > 0) cfg.apps); + systemd.services = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair "phpfpm-${name}" { after = lib.mkAfter icfg.serviceDeps; @@ -210,7 +224,9 @@ in install -m ${icfg.mode} -o ${icfg.httpdUser} -g ${icfg.httpdGroup} -d ${icfg.varDir} '' + optionalString (icfg.phpSession) '' install -m 0700 -o ${icfg.httpdUser} -g ${icfg.httpdGroup} -d ${icfg.varDir}/phpSessions - ''; + '' + builtins.concatStringsSep "\n" (attrsets.mapAttrsToList (n: v: '' + install -m ${v} -o ${icfg.httpdUser} -g ${icfg.httpdGroup} -d ${icfg.varDir}/${n} + '') icfg.varDirPaths); } ) cfg.apps; };