Merge pull request #209253 from e1mo/dokuwiki/php-package

nixos/dokuwiki: Take phpPackage and phpOptions

authored by

Jonas Heinrich and committed by
GitHub
77635525 59473445

+35 -1
+35 -1
nixos/modules/services/web-apps/dokuwiki.nix
··· 8 8 user = "dokuwiki"; 9 9 webserver = config.services.${cfg.webserver}; 10 10 11 + mkPhpIni = generators.toKeyValue { 12 + mkKeyValue = generators.mkKeyValueDefault {} " = "; 13 + }; 14 + mkPhpPackage = cfg: cfg.phpPackage.buildEnv { 15 + extraConfig = mkPhpIni cfg.phpOptions; 16 + }; 17 + 11 18 dokuwikiAclAuthConfig = hostName: cfg: pkgs.writeText "acl.auth-${hostName}.php" '' 12 19 # acl.auth.php 13 20 # <?php exit()?> ··· 238 245 ''; 239 246 }; 240 247 248 + phpPackage = mkOption { 249 + type = types.package; 250 + relatedPackages = [ "php80" "php81" ]; 251 + default = pkgs.php81; 252 + defaultText = "pkgs.php81"; 253 + description = lib.mdDoc '' 254 + PHP package to use for this dokuwiki site. 255 + ''; 256 + }; 257 + 258 + phpOptions = mkOption { 259 + type = types.attrsOf types.str; 260 + default = {}; 261 + description = lib.mdDoc '' 262 + Options for PHP's php.ini file for this dokuwiki site. 263 + ''; 264 + example = literalExpression '' 265 + { 266 + "opcache.interned_strings_buffer" = "8"; 267 + "opcache.max_accelerated_files" = "10000"; 268 + "opcache.memory_consumption" = "128"; 269 + "opcache.revalidate_freq" = "15"; 270 + "opcache.fast_shutdown" = "1"; 271 + } 272 + ''; 273 + }; 274 + 241 275 extraConfig = mkOption { 242 276 type = types.nullOr types.lines; 243 277 default = null; ··· 303 337 inherit user; 304 338 group = webserver.group; 305 339 306 - phpPackage = pkgs.php81; 340 + phpPackage = mkPhpPackage cfg; 307 341 phpEnv = { 308 342 DOKUWIKI_LOCAL_CONFIG = "${dokuwikiLocalConfig hostName cfg}"; 309 343 DOKUWIKI_PLUGINS_LOCAL_CONFIG = "${dokuwikiPluginsLocalConfig hostName cfg}";