{ lib, php, stdenv, writeText, fetchedGithub }: let dokuwiki = let plugins = { farmer = stdenv.mkDerivation (fetchedGithub ./dokuwiki-plugin-farmer.json // rec { installPhase = '' mkdir $out cp -a * $out/ ''; }); todo = stdenv.mkDerivation (fetchedGithub ./dokuwiki-plugin-todo.json // rec { installPhase = '' mkdir $out cp -a * $out/ ''; }); }; preload = writeText "preload.php" '' DirectoryIndex index.php SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost" AllowOverride All Options +FollowSymlinks Require all granted ''; }; phpFpm = rec { basedir = builtins.concatStringsSep ":" ( [ webRoot varDir ] ++ lib.attrsets.mapAttrsToList (name: value: value) plugins); socket = "/var/run/phpfpm/dokuwiki.sock"; pool = '' listen = ${socket} user = ${apache.user} group = ${apache.group} listen.owner = ${apache.user} listen.group = ${apache.group} pm = ondemand pm.max_children = 60 pm.process_idle_timeout = 60 ; Needed to avoid clashes in browser cookies (same domain) php_value[session.name] = DokuwikiPHPSESSID php_admin_value[open_basedir] = "${basedir}:/tmp" php_admin_value[session.save_path] = "${varDir}/phpSessions" ''; }; }; in dokuwiki