X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fwebsites%2Fphp-application.nix;h=23e2b233581c3b92cc252360e220155f89fdb537;hb=ce95026934c4ea8c647365f68eb195459fcdff08;hp=8ad7a0dfe33e71ac3970242c5cbb3ff874259d1f;hpb=1594c8da6fbb4ffa09ab970fb887cea61c572f60;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/websites/php-application.nix b/modules/websites/php-application.nix index 8ad7a0d..23e2b23 100644 --- a/modules/websites/php-application.nix +++ b/modules/websites/php-application.nix @@ -1,4 +1,4 @@ -{ lib, config, ... }: +{ lib, config, pkgs, ... }: with lib; let cfg = config.services.phpApplication; @@ -44,10 +44,20 @@ in description = "Name of the socket to listen to. Defaults to app name if null"; }; phpPool = mkOption { - type = lines; - default = ""; + type = attrsOf str; + default = {}; description = "Pool configuration to append"; }; + phpEnv = mkOption { + type = attrsOf str; + default = {}; + description = "Pool environment to append"; + }; + phpPackage = mkOption { + type = attrsOf str; + default = pkgs.php; + description = "Php package to use"; + }; phpOptions = mkOption { type = lines; default = ""; @@ -135,7 +145,7 @@ in services.phpApplication.phpListenPaths = mkOption { type = attrsOf path; default = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair - name "/run/phpfpm/${if icfg.phpListen == null then name else icfg.phpListen}.sock" + name config.services.phpfpm.pools."${name}".socket ) cfg.apps; readOnly = true; description = '' @@ -162,17 +172,17 @@ in services.phpfpm.pools = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair name { - listen = cfg.phpListenPaths."${name}"; - extraConfig = '' - user = ${icfg.httpdUser} - group = ${icfg.httpdGroup} - listen.owner = ${icfg.httpdUser} - 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.phpWatchFiles ++ icfg.phpOpenbasedir)}" - '' + icfg.phpPool; + user = icfg.httpdUser; + group = icfg.httpdUser; + settings = { + "listen.owner" = icfg.httpdUser; + "listen.group" = icfg.httpdGroup; + "php_admin_value[open_basedir]" = builtins.concatStringsSep ":" ([icfg.app icfg.varDir] ++ icfg.phpWatchFiles ++ icfg.phpOpenbasedir); + } + // optionalAttrs (icfg.phpSession) { "php_admin_value[session.save_path]" = "${icfg.varDir}/phpSessions"; } + // icfg.phpPool; phpOptions = config.services.phpfpm.phpOptions + icfg.phpOptions; + inherit (icfg) phpEnv phpPackage; } ) cfg.apps;