anchor.diff:          server_name wiki.example.net;
         '';
       };
  -    fpmPool = mkOption {
  -      description = "Options for the PHP FPM pool";
  -      type = attrsOf unspecified;
  -      default = {};
  +    php-fpm = {
  +      package = mkOption {
  +        description = "PHP package to use";
  +        type = package;
  +        default = pkgs.php;
  +      };
  +      pool = mkOption {
  +        description = "Options for the PHP FPM pool";
  +        type = attrsOf unspecified;
  +        default = {};
  +      };
       };
       logo = mkOption {
         description = "The site logo (the image displayed in the upper-left corner of the page)";
  
positive.code:   };
  
    config = mkIf cfg.enable {
      nixsap.apps.php-fpm.mediawiki.pool =
        recursiveUpdate defaultPool (cfg.fpmPool // { user = cfg.user ;});
      nixsap.deployment.keyrings.${user} = keys;
      users.users.${config.nixsap.apps.nginx.user}.extraGroups =
        mkIf cfg.localSettings.wgEnableUploads [ user ];
  
      nixsap.apps.nginx.http.servers.mediawiki = nginx;
  
  
negative.code:   inherit (lib)
      concatMapStrings concatMapStringsSep concatStringsSep
      filterAttrs genAttrs hasPrefix mapAttrs mapAttrsToList mkDefault
      mkEnableOption mkIf mkOption mkOverride optionalAttrs optionalString
      recursiveUpdate;
    inherit (lib.types)
      attrsOf bool either enum int lines listOf nullOr package path
      str submodule unspecified ;
    inherit (builtins)
      attrNames elem isAttrs isBool isList isString ;
  
    cfg = config.nixsap.apps.mediawiki;
    user = config.nixsap.apps.mediawiki.user;
    php = cfg.php-fpm.package;
  
    defaultPool = {
      listen.owner = config.nixsap.apps.nginx.user;
  