mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-23 05:18:44 +08:00
增加 phpfpm
This commit is contained in:
parent
e6969fb0c2
commit
b00a0b51e7
@ -12,6 +12,7 @@ inputs:
|
||||
./coturn.nix
|
||||
./synapse.nix
|
||||
./nebula
|
||||
./phpfpm.nix
|
||||
# ./docker.nix
|
||||
];
|
||||
options.nixos.services = let inherit (inputs.lib) mkOption types; in
|
||||
|
60
modules/services/phpfpm.nix
Normal file
60
modules/services/phpfpm.nix
Normal file
@ -0,0 +1,60 @@
|
||||
inputs:
|
||||
{
|
||||
options.nixos.services.phpfpm = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
instances = mkOption
|
||||
{
|
||||
type = types.attrsOf (types.submodule (submoduleInputs: { options =
|
||||
{
|
||||
user = mkOption { type = types.nullOr types.nonEmptyStr; default = null; };
|
||||
group = mkOption { type = types.nullOr types.nonEmptyStr; default = null; };
|
||||
package = mkOption { type = types.nullOr types.package; default = null; };
|
||||
};}));
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
config =
|
||||
let
|
||||
inherit (builtins) map listToAttrs filter;
|
||||
inherit (inputs.localLib) attrsToList;
|
||||
inherit (inputs.config.nixos.services) phpfpm;
|
||||
in
|
||||
{
|
||||
services.phpfpm.pools = listToAttrs (map
|
||||
(pool:
|
||||
{
|
||||
inherit (pool) name;
|
||||
value = rec
|
||||
{
|
||||
user = if pool.value.user == null then pool.name else pool.value.user;
|
||||
group = if pool.value.group == null then inputs.config.users.users.${user}.group else pool.value.group;
|
||||
phpPackage = if pool.value.package == null then inputs.pkgs.php else pool.value.package;
|
||||
settings =
|
||||
{
|
||||
"pm" = "ondemand";
|
||||
"pm.max_children" = 4;
|
||||
"pm.process_idle_timeout" = "60s";
|
||||
"pm.max_requests" = 128;
|
||||
};
|
||||
};
|
||||
})
|
||||
(attrsToList phpfpm.instances));
|
||||
users =
|
||||
{
|
||||
users = listToAttrs (map
|
||||
(pool:
|
||||
{
|
||||
inherit (pool) name;
|
||||
value = { isSystemUser = true; group = pool.name; };
|
||||
})
|
||||
(filter (pool: pool.value.user == null) (attrsToList phpfpm.instances)));
|
||||
groups = listToAttrs (map
|
||||
(pool:
|
||||
{
|
||||
inherit (pool) name;
|
||||
value = {};
|
||||
})
|
||||
(filter (pool: pool.value.user == null) (attrsToList phpfpm.instances)));
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user