]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/websites/chloe/new.nix
Migrate php sessions to redis
[perso/Immae/Config/Nix.git] / modules / private / websites / chloe / new.nix
index 344810f3e8b664fbd8f8878e4f810c36b23a0d73..0d5c7fbf500ad518c25020232613c9e6664fb926 100644 (file)
@@ -4,7 +4,6 @@ let
   cfg = config.myServices.websites.chloe.new;
   ftpRoot = "/var/lib/chloe_new";
   webRoot = "${ftpRoot}/wordpress";
-  sessionDir = "${ftpRoot}/sessions";
 in {
   options.myServices.websites.chloe.new.enable = lib.mkEnableOption "enable Chloe's new website in integration";
 
@@ -17,10 +16,10 @@ in {
         "listen.group" = config.services.httpd.Inte.group;
         "php_admin_value[open_basedir]" = builtins.concatStringsSep ":" [
           webRoot
-          sessionDir
           "/tmp"
         ];
-        "php_admin_value[session.save_path]" = sessionDir;
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Chloe:NewIntegration:'";
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
         #"php_admin_flag[log_errors]" = "on";
@@ -28,13 +27,13 @@ in {
         "pm.max_children" = "5";
         "pm.process_idle_timeout" = "60";
       };
-      phpPackage = pkgs.php74;
+      phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
 
     system.activationScripts.chloe_new_integration = {
       deps = ["users"];
       text = ''
-        install -m 0700 -o ${config.services.httpd.Inte.user} -g ${config.services.httpd.Inte.group} -d ${ftpRoot} ${sessionDir}
+        install -m 0700 -o ${config.services.httpd.Inte.user} -g ${config.services.httpd.Inte.group} -d ${ftpRoot}
       '';
     };