diff options
author | Al Zohali <zohl@fmap.me> | 2016-06-20 00:42:26 +0300 |
---|---|---|
committer | Al Zohali <zohl@fmap.me> | 2016-06-20 01:00:03 +0300 |
commit | 6b3f5b5a421fe3422e9ef63a3fd690178c36163e (patch) | |
tree | c0f6d2ecaf638b5149378d8896ac7ffb676bf35e /nixos/modules/services/web-servers | |
parent | 53f421c0c4b4916426c369bfb996422209e6ebf7 (diff) | |
download | nixlib-6b3f5b5a421fe3422e9ef63a3fd690178c36163e.tar nixlib-6b3f5b5a421fe3422e9ef63a3fd690178c36163e.tar.gz nixlib-6b3f5b5a421fe3422e9ef63a3fd690178c36163e.tar.bz2 nixlib-6b3f5b5a421fe3422e9ef63a3fd690178c36163e.tar.lz nixlib-6b3f5b5a421fe3422e9ef63a3fd690178c36163e.tar.xz nixlib-6b3f5b5a421fe3422e9ef63a3fd690178c36163e.tar.zst nixlib-6b3f5b5a421fe3422e9ef63a3fd690178c36163e.zip |
phpfpm service: restructured pool configuration
Diffstat (limited to 'nixos/modules/services/web-servers')
-rw-r--r-- | nixos/modules/services/web-servers/phpfpm/default.nix (renamed from nixos/modules/services/web-servers/phpfpm.nix) | 34 | ||||
-rw-r--r-- | nixos/modules/services/web-servers/phpfpm/pool-options.nix | 35 |
2 files changed, 48 insertions, 21 deletions
diff --git a/nixos/modules/services/web-servers/phpfpm.nix b/nixos/modules/services/web-servers/phpfpm/default.nix index 2658d7117e37..6befddf9f522 100644 --- a/nixos/modules/services/web-servers/phpfpm.nix +++ b/nixos/modules/services/web-servers/phpfpm/default.nix @@ -9,6 +9,12 @@ let pidFile = "${stateDir}/phpfpm.pid"; + mkPool = n: p: '' + [${n}] + listen = ${p.listen} + ${p.extraConfig} + ''; + cfgFile = pkgs.writeText "phpfpm.conf" '' [global] pid = ${pidFile} @@ -16,7 +22,7 @@ let daemonize = yes ${cfg.extraConfig} - ${concatStringsSep "\n" (mapAttrsToList (n: v: "[${n}]\n${v}") cfg.poolConfigs)} + ${concatStringsSep "\n" (mapAttrsToList mkPool cfg.pools)} ''; phpIni = pkgs.writeText "php.ini" '' @@ -61,33 +67,19 @@ in { "Options appended to the PHP configuration file <filename>php.ini</filename>."; }; - poolConfigs = mkOption { - type = types.attrsOf types.lines; + pools = mkOption { + type = types.attrsOf (types.submodule (import ./pool-options.nix { + inherit lib; + })); default = {}; - example = literalExample '' - { mypool = ''' - listen = /run/phpfpm/mypool - user = nobody - pm = dynamic - pm.max_children = 75 - pm.start_servers = 10 - pm.min_spare_servers = 5 - pm.max_spare_servers = 20 - pm.max_requests = 500 - '''; - } - ''; description = '' - A mapping between PHP FPM pool names and their configurations. - See the documentation on <literal>php-fpm.conf</literal> for - details on configuration directives. If no pools are defined, - the phpfpm service is disabled. + If no pools are defined, the phpfpm service is disabled. ''; }; }; }; - config = mkIf (cfg.poolConfigs != {}) { + config = mkIf (cfg.pools != {}) { systemd.services.phpfpm = { wantedBy = [ "multi-user.target" ]; diff --git a/nixos/modules/services/web-servers/phpfpm/pool-options.nix b/nixos/modules/services/web-servers/phpfpm/pool-options.nix new file mode 100644 index 000000000000..cc688c2c48a2 --- /dev/null +++ b/nixos/modules/services/web-servers/phpfpm/pool-options.nix @@ -0,0 +1,35 @@ +{ lib }: + +with lib; { + + options = { + + listen = mkOption { + type = types.str; + example = "/path/to/unix/socket"; + description = '' + The address on which to accept FastCGI requests. + ''; + }; + + extraConfig = mkOption { + type = types.lines; + example = '' + user = nobody + pm = dynamic + pm.max_children = 75 + pm.start_servers = 10 + pm.min_spare_servers = 5 + pm.max_spare_servers = 20 + pm.max_requests = 500 + ''; + + description = '' + Extra lines that go into the pool configuration. + See the documentation on <literal>php-fpm.conf</literal> for + details on configuration directives. + ''; + }; + }; +} + |