]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Migrate php sessions to redis
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Sat, 27 Aug 2022 20:38:16 +0000 (22:38 +0200)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Sun, 9 Apr 2023 15:16:28 +0000 (17:16 +0200)
58 files changed:
modules/private/databases/redis.nix
modules/private/tasks/default.nix
modules/private/websites/attilax/dolibarr.nix
modules/private/websites/chloe/new.nix
modules/private/websites/chloe/production.nix
modules/private/websites/christophe_carpentier/agora-project.nix
modules/private/websites/christophe_carpentier/agorakit.nix
modules/private/websites/christophe_carpentier/website.nix
modules/private/websites/connexionswing/integration.nix
modules/private/websites/connexionswing/production.nix
modules/private/websites/denise/evariste.nix
modules/private/websites/emilia/atelierfringant.nix
modules/private/websites/florian/app.nix
modules/private/websites/immae/dolibarr.nix
modules/private/websites/isabelle/aten_integration.nix
modules/private/websites/isabelle/aten_production.nix
modules/private/websites/isabelle/iridologie.nix
modules/private/websites/jerome/naturaloutil.nix
modules/private/websites/leila/production.nix
modules/private/websites/librezo/dolibarr.nix
modules/private/websites/librezo/dolibarr_integration.nix
modules/private/websites/ludivine/integration.nix
modules/private/websites/ludivine/production.nix
modules/private/websites/nicecoop/dolibarr_integration.nix
modules/private/websites/nicecoop/gestion-compte.nix
modules/private/websites/nicecoop/gestion-compte_integration.nix
modules/private/websites/patrick_fodella/altermondia.nix
modules/private/websites/patrick_fodella/ecolyeu.nix
modules/private/websites/piedsjaloux/integration.nix
modules/private/websites/piedsjaloux/production.nix
modules/private/websites/ressourcerie_banon/production.nix
modules/private/websites/richie/production.nix
modules/private/websites/telio_tortay/production.nix
modules/private/websites/tools/cloud/default.nix
modules/private/websites/tools/cloud/farm.nix
modules/private/websites/tools/dav/davical.nix
modules/private/websites/tools/dav/default.nix
modules/private/websites/tools/git/default.nix
modules/private/websites/tools/git/mantisbt.nix
modules/private/websites/tools/kanboard/farm.nix
modules/private/websites/tools/mail/default.nix
modules/private/websites/tools/mail/rainloop.nix
modules/private/websites/tools/mail/roundcubemail.nix
modules/private/websites/tools/performance/default.nix
modules/private/websites/tools/tools/adminer.nix
modules/private/websites/tools/tools/default.nix
modules/private/websites/tools/tools/dmarc_reports.nix
modules/private/websites/tools/tools/dokuwiki.nix
modules/private/websites/tools/tools/grocy.nix
modules/private/websites/tools/tools/kanboard.nix
modules/private/websites/tools/tools/ldap.nix
modules/private/websites/tools/tools/phpbb.nix
modules/private/websites/tools/tools/rompr.nix
modules/private/websites/tools/tools/shaarli.nix
modules/private/websites/tools/tools/ttrss.nix
modules/private/websites/tools/tools/wallabag.nix
modules/private/websites/tools/tools/yourls.nix
modules/websites/php-application.nix

index 2d2c27d343666caa21383ad827a23891ff14ae94..79916919547dfe4fb40f89b10f6f407a95ab578a 100644 (file)
@@ -41,6 +41,12 @@ in {
     };
     systemd.services.redis.serviceConfig.Slice = "redis.slice";
     systemd.services.redis.serviceConfig.RuntimeDirectoryMode = lib.mkForce "0755";
+    services.redis.servers."php-sessions" = {
+      enable = true;
+      maxclients = 1024;
+      unixSocketPerm = 777;
+      user = "wwwrun";
+    };
 
     services.spiped = {
       enable = true;
index 087885d837efa8f0522f75348612f7e500475bea..c9144713f4175f539214e018d368f742cae87424 100644 (file)
@@ -247,12 +247,14 @@ in {
 
           # Needed to avoid clashes in browser cookies (same domain)
           "php_value[session.name]" = "TaskPHPSESSID";
+          "php_admin_value[session.save_handler]" = "redis";
+          "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Task:'";
           "php_admin_value[open_basedir]" = "${./www}:/tmp:${server_vardir}:/etc/profiles/per-user/${user}/bin/";
         };
         phpEnv = {
           PATH = "/etc/profiles/per-user/${user}/bin";
         };
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [ all.redis ]);
       };
     };
 
index 323019368ea3134f8b29d95bf57af58be193550a..009e645bf7f97c3e6b34da40411040823e4f4e26 100644 (file)
@@ -8,12 +8,6 @@ in {
   options.myServices.websites.attilax.dolibarr.enable = lib.mkEnableOption "enable Dolibarr website";
 
   config = lib.mkIf cfg.enable {
-    system.activationScripts.dolibarr = {
-      deps = [ "httpd" "users" ];
-      text = ''
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/attilax
-      '';
-    };
     services.phpfpm.pools.attilax_dolibarr = {
       user = apacheUser;
       group = apacheGroup;
@@ -27,13 +21,14 @@ in {
 
         "php_admin_value[upload_max_filesize]" = "100M";
         "php_admin_value[post_max_size]" = "100M";
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/attilax:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/attilax";
+        "php_admin_value[open_basedir]" = "${varDir}:/tmp";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Attilax:Dolibarr:'";
       };
       phpOptions = config.services.phpfpm.phpOptions + ''
         disable_functions = "mail"
       '';
-      phpPackage = pkgs.php74;
+      phpPackage = pkgs.php74.withExtensions ({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.modules = [ "proxy_fcgi" ];
     services.websites.env.production.vhostConfs.attilax_dolibarr = {
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}
       '';
     };
 
index 211232cf2dd4d08a2dbe5f80459fa3af49166819..129400b39b1ff37e136b2b33a104ac2e19669c9c 100644 (file)
@@ -47,20 +47,20 @@ in {
         "php_admin_value[post_max_size]" = "20M";
         # "php_admin_flag[log_errors]" = "on";
         "php_admin_value[open_basedir]" = "${app.spipConfig}:${./config}:${app}:${app.varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "${app.varDir}/phpSessions";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Chloe:Production:'";
         "pm" = "dynamic";
         "pm.max_children" = "20";
         "pm.start_servers" = "2";
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
       };
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions ({ enabled, all }: enabled ++ [all.redis]);
     };
     system.activationScripts.chloe_production = {
       deps = [ "wrappers" ];
       text = ''
         install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir} ${app.varDir}/IMG ${app.varDir}/tmp ${app.varDir}/local
-        install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions
       '';
     };
     services.websites.env.production.modules = [ "proxy_fcgi" ];
index 256734e19f361db79f198810a8a03165a247a30a..5c7c6c514dc4c96fda5f26d5c03ceb712cbeb717 100644 (file)
@@ -12,7 +12,6 @@ in {
       deps = [ "httpd" "users" ];
       text = ''
         install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${varDir}
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/christophe_carpentier
       '';
     };
     services.phpfpm.pools.christophe_carpentier_agora_project = {
@@ -26,8 +25,9 @@ in {
         "pm.max_children" = "5";
         "pm.process_idle_timeout" = "60";
 
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/christophe_carpentier:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/christophe_carpentier";
+        "php_admin_value[open_basedir]" = "${varDir}:/tmp";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=ChristopheCarpentier:agora-project:'";
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
       };
index eeca991d204b3e83c7bef387061eafad1b5bcdea..26623e5ef18e0a45aaa4f60c7eb3f5f1931f48e4 100644 (file)
@@ -88,7 +88,7 @@ in {
       inherit app;
       serviceDeps = [ "mysql.service" ];
       phpOpenbasedir = [ "/tmp" secretsPath ];
-      phpPackage = pkgs.php74;
+      phpPackage = pkgs.php74.withExtensions ({ enabled, all }: enabled ++ [all.redis]);
       phpPool = {
         "php_admin_value[upload_max_filesize]" = "100M";
         "php_admin_value[post_max_size]" = "100M";
@@ -97,6 +97,8 @@ in {
         "pm.start_servers" = "2";
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=ChristopheCarpentier:agorakit:'";
       };
 
     };
index 73dfea33779d5e6fc09c45bfdf3080a4ffafc9f5..7321cfb286c0fb51ce14da61ad73ad72beb72422 100644 (file)
@@ -12,7 +12,6 @@ in {
       deps = [ "httpd" "users" ];
       text = ''
         install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${varDir}
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/christophe_carpentier
       '';
     };
     services.phpfpm.pools.christophe_carpentier_website = {
@@ -26,13 +25,14 @@ in {
         "pm.max_children" = "5";
         "pm.process_idle_timeout" = "60";
 
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/christophe_carpentier:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/christophe_carpentier";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=ChristopheCarpentier:website:'";
+        "php_admin_value[open_basedir]" = "${varDir}:/tmp";
       };
       phpOptions = config.services.phpfpm.phpOptions + ''
         disable_functions = "mail"
       '';
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions ({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.modules = [ "proxy_fcgi" ];
     services.websites.env.integration.vhostConfs.christophe_carpentier_website = {
index d042705fd6cc04b1bd8b1de229fb20605c930ea1..097601f4242c1f536fde30a5bfa26fcdfea83af8 100644 (file)
@@ -6,7 +6,6 @@ let
   phpRoot = "${ftpRoot}/php";
   webRoot = "${phpRoot}/web";
   varDir = "${ftpRoot}/var";
-  sessionDir = "${ftpRoot}/sessions";
   packagePath = "/var/lib/ftp/release.immae.eu/buildbot/Connexionswing";
   branch = "test";
 in {
@@ -24,7 +23,8 @@ in {
           config.secrets.fullPaths."websites/connexionswing/integration"
           "/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=Connexionswing:Integration:'";
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
         #"php_admin_flag[log_errors]" = "on";
@@ -35,7 +35,7 @@ in {
       phpEnv = {
         SYMFONY_DEBUG_MODE = "\"yes\"";
       };
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions ({ enabled, all }: enabled ++ [all.redis]);
     };
     systemd.services."phpfpm-connexionswing_integration" = {
       after = lib.mkAfter ["mysql.service"];
@@ -86,7 +86,7 @@ in {
     system.activationScripts.connexionswing_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}
       '';
     };
 
index 1260048c8dc8d277e134f7789be61d6687f00360..dec1dcd10c8a8e4f226a89bdda712f1c42109956 100644 (file)
@@ -6,7 +6,6 @@ let
   phpRoot = "${ftpRoot}/php";
   webRoot = "${phpRoot}/web";
   varDir = "${ftpRoot}/var";
-  sessionDir = "${ftpRoot}/sessions";
   packagePath = "/var/lib/ftp/release.immae.eu/buildbot/Connexionswing";
   branch = "master";
 in {
@@ -26,7 +25,8 @@ in {
           "/run/wrappers/bin/sendmail"
           "/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=Connexionswing:Production:'";
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
         #"php_admin_flag[log_errors]" = "on";
@@ -36,7 +36,7 @@ in {
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
       };
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions ({ enabled, all }: enabled ++ [all.redis]);
     };
     systemd.services."phpfpm-connexionswing_production" = {
       after = lib.mkAfter ["mysql.service"];
@@ -87,7 +87,7 @@ in {
     system.activationScripts.connexionswing_production = {
       deps = ["users"];
       text = ''
-        install -m 0700 -o ${config.services.httpd.Prod.user} -g ${config.services.httpd.Prod.group} -d ${ftpRoot} ${sessionDir}
+        install -m 0700 -o ${config.services.httpd.Prod.user} -g ${config.services.httpd.Prod.group} -d ${ftpRoot}
       '';
     };
 
index df4e917fd709bad5c4e02b6500d3d37daaeb30ab..23dd03ffb4c7c09cc4449fa1a294285cc5753104 100644 (file)
@@ -15,13 +15,6 @@ in {
     ];
 
     services.websites.env.production.modules = [ "proxy_fcgi" ];
-    system.activationScripts.denise_evariste = {
-      deps = [ "httpd" ];
-      text = ''
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/denise_nsievariste
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/denise_stmgevariste
-        '';
-    };
     services.phpfpm.pools.denise_nsievariste = {
       user = apacheUser;
       group = apacheGroup;
@@ -35,10 +28,11 @@ in {
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
 
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/denise_nsievariste:${nsiVarDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/denise_nsievariste";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Denise:NsiEvariste:'";
+        "php_admin_value[open_basedir]" = "${nsiVarDir}:/tmp";
       };
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.vhostConfs.denise_nsievariste = {
       certName     = "denise_evariste";
@@ -77,10 +71,11 @@ in {
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
 
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/denise_stmgevariste:${stmgVarDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/denise_stmgevariste";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Denise:StmgEvariste:'";
+        "php_admin_value[open_basedir]" = "${stmgVarDir}:/tmp";
       };
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.vhostConfs.denise_stmgevariste = {
       certName     = "denise_evariste";
index 518554b5ac21c455221d023913dfed394166d939..2f8c54c8a2603553d95e1902488de15d0448db6d 100644 (file)
@@ -12,7 +12,6 @@ in {
       deps = [ "httpd" ];
       text = ''
         install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/ftp/emilia/atelierfringant
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/emilia
         '';
     };
     systemd.services.phpfpm-emilia_atelierfringant.after = lib.mkAfter [ "mysql.service" ];
@@ -30,13 +29,14 @@ in {
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
 
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/emilia:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/emilia";
+        "php_admin_value[open_basedir]" = "${varDir}:/tmp";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Emilia:AtelierFringant:'";
       };
       phpOptions = config.services.phpfpm.phpOptions + ''
         disable_functions = "mail"
       '';
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.modules = [ "proxy_fcgi" ];
     services.websites.env.production.vhostConfs.emilia_atelierfringant = {
index 14cda1bda1d8903c688b7132914d89849f26a61e..1df61aca81f90ad551f197de95881c0309dc8b9c 100644 (file)
@@ -7,7 +7,6 @@ let
   phpRoot = "${ftpRoot}/php";
   webRoot = "${phpRoot}/web";
   varDir = "${ftpRoot}/var";
-  sessionDir = "${ftpRoot}/sessions";
   packagePath = "/var/lib/ftp/release.immae.eu/buildbot/Florian";
   branch = "stabilo_dev";
 in {
@@ -25,7 +24,8 @@ in {
           config.secrets.fullPaths."websites/florian/app"
           "/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=Florian:App:'";
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
         #"php_admin_flag[log_errors]" = "on";
@@ -36,7 +36,7 @@ in {
       phpEnv = {
         SYMFONY_DEBUG_MODE = "\"yes\"";
       };
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     systemd.services."phpfpm-florian_app" = {
       after = lib.mkAfter ["mysql.service"];
@@ -86,7 +86,7 @@ in {
     system.activationScripts.florian_app = {
       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}
       '';
     };
 
index e9b51440dc7ec58d1342dfcfd9dc1c3de818375b..d7165442fd858d573ee87191040cdd7b8db392fe 100644 (file)
@@ -8,12 +8,6 @@ in {
   options.myServices.websites.immae.dolibarr.enable = lib.mkEnableOption "enable Dolibarr website";
 
   config = lib.mkIf cfg.enable {
-    system.activationScripts.dolibarr = {
-      deps = [ "httpd" "users" ];
-      text = ''
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/immae
-      '';
-    };
     services.phpfpm.pools.immae_dolibarr = {
       user = apacheUser;
       group = apacheGroup;
@@ -27,13 +21,14 @@ in {
 
         "php_admin_value[upload_max_filesize]" = "100M";
         "php_admin_value[post_max_size]" = "100M";
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/immae:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/immae";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Immae:Dolibarr:'";
+        "php_admin_value[open_basedir]" = "${varDir}:/tmp";
       };
       phpOptions = config.services.phpfpm.phpOptions + ''
         disable_functions = "mail"
       '';
-      phpPackage = pkgs.php74;
+      phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.tools.modules = [ "proxy_fcgi" ];
     services.websites.env.tools.vhostConfs.immae_dolibarr = {
index 21ed00f50066c6d0dbceb65c796a8494d35177c5..0655c7b349f5e59b83181f8232c6b30064425a6d 100644 (file)
@@ -6,7 +6,6 @@ let
   phpRoot = "${ftpRoot}/php";
   webRoot = "${phpRoot}/public";
   varDir = "${ftpRoot}/var";
-  sessionDir = "${ftpRoot}/sessions";
   packagePath = "/var/lib/ftp/release.immae.eu/buildbot/IsabelleAten";
   branch = "test";
 in {
@@ -24,7 +23,8 @@ in {
           config.secrets.fullPaths."websites/isabelle/aten_integration"
           "/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=Isabelle:AtenIntegration:'";
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
         #"php_admin_flag[log_errors]" = "on";
@@ -35,7 +35,7 @@ in {
       phpEnv = {
         SYMFONY_DEBUG_MODE = "\"yes\"";
       };
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions ({ enabled, all }: enabled ++ [all.redis]);
     };
     systemd.services."phpfpm-isabelle_aten_integration" = {
       after = lib.mkAfter ["postgresql.service"];
@@ -84,7 +84,7 @@ in {
     system.activationScripts.isabelle_aten_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}
       '';
     };
 
index ff7e306e57b32bfc56e2a88c50a03f0674b8c6c1..dc7165f3b31d9ceae6242a0c0639fa40eacb70b2 100644 (file)
@@ -6,7 +6,6 @@ let
   phpRoot = "${ftpRoot}/php";
   webRoot = "${phpRoot}/public";
   varDir = "${ftpRoot}/var";
-  sessionDir = "${ftpRoot}/sessions";
   packagePath = "/var/lib/ftp/release.immae.eu/buildbot/IsabelleAten";
   branch = "master";
 in {
@@ -25,7 +24,8 @@ in {
           config.secrets.fullPaths."websites/isabelle/aten_production"
           "/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=Isabelle:AtenProduction:'";
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
         #"php_admin_flag[log_errors]" = "on";
@@ -35,7 +35,7 @@ in {
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
       };
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions ({ enabled, all }: enabled ++ [all.redis]);
     };
     systemd.services."phpfpm-isabelle_aten_production" = {
       after = lib.mkAfter ["postgresql.service"];
@@ -84,7 +84,7 @@ in {
     system.activationScripts.isabelle_aten_production = {
       deps = ["users"];
       text = ''
-        install -m 0700 -o ${config.services.httpd.Prod.user} -g ${config.services.httpd.Prod.group} -d ${ftpRoot} ${sessionDir}
+        install -m 0700 -o ${config.services.httpd.Prod.user} -g ${config.services.httpd.Prod.group} -d ${ftpRoot}
       '';
     };
 
index cd733c1d28c1f284e1a0e80a1864b547669f5374..fc53095e4d7c836e51a404657e8073da2aae7bfc 100644 (file)
@@ -49,20 +49,20 @@ in {
         "php_admin_value[post_max_size]" = "20M";
         #"php_admin_flag[log_errors]" = "on";
         "php_admin_value[open_basedir]" = "${app.spipConfig}:${./config}:${app}:${app.varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "${app.varDir}/phpSessions";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Isabelle:Iridologie:'";
         "pm" = "dynamic";
         "pm.max_children" = "20";
         "pm.start_servers" = "2";
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
       };
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions ({ enabled, all }: enabled ++ [all.redis]);
     };
     system.activationScripts.isabelle_iridologie = {
       deps = [ "wrappers" ];
       text = ''
         install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir} ${app.varDir}/IMG ${app.varDir}/tmp ${app.varDir}/local
-        install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions
       '';
     };
     services.websites.env.production.modules = [ "proxy_fcgi" ];
index 762fce40cb67401fa4502e2f28cf0e05adbc5904..08034444d98393bc09e4afb5ae77b7b697f3389b 100644 (file)
@@ -35,12 +35,6 @@ in {
         ?>
       '';
     };
-    system.activationScripts.jerome_naturaloutil = {
-      deps = [ "httpd" ];
-      text = ''
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/jerome_naturaloutil
-        '';
-    };
     systemd.services.phpfpm-jerome_naturaloutil.after = lib.mkAfter [ "mysql.service" ];
     systemd.services.phpfpm-jerome_naturaloutil.wants = [ "mysql.service" ];
     services.phpfpm.pools.jerome_naturaloutil = {
@@ -54,13 +48,14 @@ in {
         "pm.max_children" = "5";
         "pm.process_idle_timeout" = "60";
 
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/jerome_naturaloutil:${secretsPath}:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/jerome_naturaloutil";
+        "php_admin_value[open_basedir]" = "${secretsPath}:${varDir}:/tmp";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Jerome:Naturaloutil:'";
       };
       phpEnv = {
         BDD_CONNECT = secretsPath;
       };
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.modules = adminer.apache.modules ++ [ "proxy_fcgi" ];
     services.websites.env.production.vhostConfs.jerome_naturaloutil = {
index 96ba8cb307195a40fa028f1e674ac7fd545441cc..6676e3733b9201fb95aac69c218352305d827ee0 100644 (file)
@@ -21,13 +21,15 @@ in {
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
 
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Leila:production:'";
         "php_admin_value[open_basedir]" = "${varDir}:/tmp";
         "php_admin_value[max_execution_time]" = "1800";
       };
       phpOptions = config.services.phpfpm.phpOptions + ''
         disable_functions = "mail"
       '';
-      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [ all.imagick ]);
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [ all.imagick all.redis ]);
       phpEnv = {
         PATH = lib.makeBinPath [ pkgs.imagemagick ];
       };
index 4eb0f7c73831894b4856cce39fbff6f9b250865d..0567da6d4df8d2fb0aab10ec1c92ef3d99cb34d0 100644 (file)
@@ -8,12 +8,6 @@ in {
   options.myServices.websites.librezo.dolibarr.enable = lib.mkEnableOption "enable Dolibarr website";
 
   config = lib.mkIf cfg.enable {
-    system.activationScripts.dolibarr = {
-      deps = [ "httpd" "users" ];
-      text = ''
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/librezo
-      '';
-    };
     services.phpfpm.pools.librezo_dolibarr = {
       user = apacheUser;
       group = apacheGroup;
@@ -27,13 +21,14 @@ in {
 
         "php_admin_value[upload_max_filesize]" = "100M";
         "php_admin_value[post_max_size]" = "100M";
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/librezo:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/librezo";
+        "php_admin_value[open_basedir]" = "${varDir}:/tmp";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Librezo:Dolibarr:'";
       };
       phpOptions = config.services.phpfpm.phpOptions + ''
         disable_functions = "mail"
       '';
-      phpPackage = pkgs.php74;
+      phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.modules = [ "proxy_fcgi" ];
     services.websites.env.production.vhostConfs.librezo_dolibarr = {
index f8e3bf47eeb086e89058d4173f66dcf48134c9b1..f292f12593bbc029c4e03b8c69bb058f8ee2b13c 100644 (file)
@@ -8,12 +8,6 @@ in {
   options.myServices.websites.librezo.dolibarrDev.enable = lib.mkEnableOption "enable Dolibarr website";
 
   config = lib.mkIf cfg.enable {
-    system.activationScripts.dolibarr = {
-      deps = [ "httpd" "users" ];
-      text = ''
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/librezo
-      '';
-    };
     services.phpfpm.pools.librezo_dolibarr_dev = {
       user = apacheUser;
       group = apacheGroup;
@@ -27,13 +21,14 @@ in {
 
         "php_admin_value[upload_max_filesize]" = "100M";
         "php_admin_value[post_max_size]" = "100M";
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/librezo:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/librezo";
+        "php_admin_value[open_basedir]" = "${varDir}:/tmp";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Librezo:DolibarrIntegration:'";
       };
       phpOptions = config.services.phpfpm.phpOptions + ''
         disable_functions = "mail"
       '';
-      phpPackage = pkgs.php74;
+      phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.modules = [ "proxy_fcgi" ];
     services.websites.env.integration.vhostConfs.librezo_dolibarr_dev = {
index db05b94b343db5f3e076356eb55f2f7fcbf79c65..33ab191a1bc30d04a88fc0b8ecef8aaebf700ccd 100644 (file)
@@ -6,7 +6,6 @@ let
   phpRoot = "${ftpRoot}/php";
   webRoot = "${phpRoot}/web";
   varDir = "${ftpRoot}/var";
-  sessionDir = "${ftpRoot}/sessions";
   packagePath = "/var/lib/ftp/release.immae.eu/buildbot/Ludivine";
   branch = "test";
 in {
@@ -24,7 +23,8 @@ in {
           config.secrets.fullPaths."websites/ludivine/integration"
           "/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=Ludivine:Production:'";
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
         #"php_admin_flag[log_errors]" = "on";
@@ -35,7 +35,7 @@ in {
       phpEnv = {
         SYMFONY_DEBUG_MODE = "\"yes\"";
       };
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     systemd.services."phpfpm-ludivine_integration" = {
       after = lib.mkAfter ["mysql.service"];
@@ -85,7 +85,7 @@ in {
     system.activationScripts.ludivine_integration = {
       deps = [];
       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}
       '';
     };
 
index e1e13a52e2cc96122fecbe92719c051ef962bb24..da27a17f31cd54c8267f4fb6eebfa80c7a2e42f9 100644 (file)
@@ -6,7 +6,6 @@ let
   phpRoot = "${ftpRoot}/php";
   webRoot = "${phpRoot}/web";
   varDir = "${ftpRoot}/var";
-  sessionDir = "${ftpRoot}/sessions";
   packagePath = "/var/lib/ftp/release.immae.eu/buildbot/Ludivine";
   branch = "master";
 in {
@@ -25,7 +24,8 @@ in {
           config.secrets.fullPaths."websites/ludivine/production"
           "/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=Ludivine:Production:'";
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
         #"php_admin_flag[log_errors]" = "on";
@@ -35,7 +35,7 @@ in {
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
       };
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     systemd.services."phpfpm-ludivine_production" = {
       after = lib.mkAfter ["mysql.service"];
@@ -85,7 +85,7 @@ in {
     system.activationScripts.ludivine_production = {
       deps = [];
       text = ''
-        install -m 0700 -o ${config.services.httpd.Prod.user} -g ${config.services.httpd.Prod.group} -d ${ftpRoot} ${sessionDir}
+        install -m 0700 -o ${config.services.httpd.Prod.user} -g ${config.services.httpd.Prod.group} -d ${ftpRoot}
       '';
     };
 
index f6cb03be715e6200de80b35b7961a8ef227b468c..b84ce53e24da931fb4f84d45ada8ce2230ecd610 100644 (file)
@@ -8,12 +8,6 @@ in {
   options.myServices.websites.nicecoop.dolibarrDev.enable = lib.mkEnableOption "enable Dolibarr website";
 
   config = lib.mkIf cfg.enable {
-    system.activationScripts.dolibarr = {
-      deps = [ "httpd" "users" ];
-      text = ''
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/nicecoop
-      '';
-    };
     services.phpfpm.pools.nicecoop_dolibarr_dev = {
       user = apacheUser;
       group = apacheGroup;
@@ -27,13 +21,14 @@ in {
 
         "php_admin_value[upload_max_filesize]" = "100M";
         "php_admin_value[post_max_size]" = "100M";
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/nicecoop:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/nicecoop";
+        "php_admin_value[open_basedir]" = "${varDir}:/tmp";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Nicecoop:DolibarrIntegration:'";
       };
       phpOptions = config.services.phpfpm.phpOptions + ''
         disable_functions = "mail"
       '';
-      phpPackage = pkgs.php74;
+      phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.modules = [ "proxy_fcgi" ];
     services.websites.env.integration.vhostConfs.nicecoop_dolibarr_dev = {
index fbdd4b0461cc645f92667ee0e1cb4b6a68b70827..a82fde2e22eb8b629511d6376b1967f494ae0b88 100644 (file)
@@ -26,13 +26,15 @@ in {
         ];
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
-        "php_admin_value[session.save_path]" = "${varDir}/phpSessions";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Nicecoop:GestionCompteProduction:'";
         "pm" = "dynamic";
         "pm.max_children" = "20";
         "pm.start_servers" = "2";
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
       };
+      phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     system.extraSystemBuilderCmds = let
       tarball = pkgs.runCommand "production.tar.gz" {} ''
@@ -100,7 +102,7 @@ in {
     system.activationScripts.nicecoop_gestion-compte = {
       deps = [];
       text = ''
-        install -m 0700 -o wwwrun -g wwwrun -d ${varDir} ${varDir}/phpSessions ${varDir}/var
+        install -m 0700 -o wwwrun -g wwwrun -d ${varDir} ${varDir}/var
       '';
     };
 
index bdc2d1a98169cc4ef672ff56b2d69f4890bb6f35..47f4dc714fe5c9950b930203340490666208b2e8 100644 (file)
@@ -26,13 +26,15 @@ in {
         ];
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
-        "php_admin_value[session.save_path]" = "${varDir}/phpSessions";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Nicecoop:GestionCompteIntegration:'";
         "pm" = "dynamic";
         "pm.max_children" = "20";
         "pm.start_servers" = "2";
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
       };
+      phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.cron = {
       systemCronJobs = let
@@ -99,7 +101,7 @@ in {
     system.activationScripts.nicecoop_gestion-compte_integration = {
       deps = [];
       text = ''
-        install -m 0700 -o wwwrun -g wwwrun -d ${varDir} ${varDir}/phpSessions ${varDir}/var
+        install -m 0700 -o wwwrun -g wwwrun -d ${varDir} ${varDir}/var
       '';
     };
 
index 84886e039f4a65e04a4b461c439d948058ab2ffd..3a3c2a769187a55b50ee934aa250d3fe343c6274 100644 (file)
@@ -12,12 +12,6 @@ in {
   config = lib.mkIf cfg.enable {
     services.webstats.sites = [ { name = "altermondia.org"; } ];
 
-    system.activationScripts.patrick_fodella_altermondia = {
-      deps = [ "httpd" ];
-      text = ''
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/patrick_fodella_altermondia
-        '';
-    };
     systemd.services.phpfpm-patrick_fodella_altermondia.after = lib.mkAfter [ "mysql.service" ];
     systemd.services.phpfpm-patrick_fodella_altermondia.wants = [ "mysql.service" ];
     services.phpfpm.pools.patrick_fodella_altermondia = {
@@ -34,13 +28,14 @@ in {
         "pm.max_spare_servers" = "3";
 
         "env[BIN_ENV]" = "${binEnv}/bin";
-        "php_admin_value[open_basedir]" = "${binEnv}:${builtins.concatStringsSep ":" binEnvPaths}:/var/lib/php/sessions/patrick_fodella_altermondia:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/patrick_fodella_altermondia";
+        "php_admin_value[open_basedir]" = "${binEnv}:${builtins.concatStringsSep ":" binEnvPaths}:${varDir}:/tmp";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=PatrickFodella:Altermondia:'";
       };
       phpOptions = config.services.phpfpm.phpOptions + ''
         disable_functions = "mail"
       '';
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.modules = [ "proxy_fcgi" ];
     services.websites.env.production.vhostConfs.patrick_fodella_altermondia = {
index d908e7807ed58a5249d5b9a3642daa4652cabc94..54dd2656a3f153acd09bdc25f87381270a16dc60 100644 (file)
@@ -10,12 +10,6 @@ in {
   config = lib.mkIf cfg.enable {
     services.webstats.sites = [ { name = "ecolyeu-pessicart-nice.fr"; } ];
 
-    system.activationScripts.patrick_fodella_ecolyeu = {
-      deps = [ "httpd" ];
-      text = ''
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/patrick_fodella_ecolyeu
-        '';
-    };
     systemd.services.phpfpm-patrick_fodella_ecolyeu.after = lib.mkAfter [ "mysql.service" ];
     systemd.services.phpfpm-patrick_fodella_ecolyeu.wants = [ "mysql.service" ];
     services.phpfpm.pools.patrick_fodella_ecolyeu = {
@@ -31,13 +25,14 @@ in {
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
 
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/patrick_fodella_ecolyeu:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/patrick_fodella_ecolyeu";
+        "php_admin_value[open_basedir]" = "${varDir}:/tmp";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=PatrickFodella:Altermondia:'";
       };
       phpOptions = config.services.phpfpm.phpOptions + ''
         disable_functions = "mail"
       '';
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.modules = [ "proxy_fcgi" ];
     services.websites.env.production.vhostConfs.patrick_fodella_ecolyeu = {
index 1bf0364f423c42b83ff2ba1d1135a0845333cc95..ad6763f9c3431f7d04102440f29fc95a4da04e79 100644 (file)
@@ -7,7 +7,6 @@ let
   phpRoot = "${ftpRoot}/php";
   webRoot = "${phpRoot}/web";
   varDir = "${ftpRoot}/var";
-  sessionDir = "${ftpRoot}/sessions";
   packagePath = "/var/lib/ftp/release.immae.eu/buildbot/Piedsjaloux";
   branch = "test";
 in {
@@ -25,7 +24,8 @@ in {
           config.secrets.fullPaths."websites/piedsjaloux/integration"
           "/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=PiedsJaloux:Integration:'";
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
         #"php_admin_flag[log_errors]" = "on";
@@ -36,7 +36,7 @@ in {
       phpEnv = {
         SYMFONY_DEBUG_MODE = "\"yes\"";
       };
-      phpPackage = pkgs.php74;
+      phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     systemd.services."phpfpm-piedsjaloux_integration" = {
       after = lib.mkAfter ["mysql.service"];
@@ -86,7 +86,7 @@ in {
     system.activationScripts.piedsjaloux_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}
       '';
     };
 
index a6f5d3ecefbfc77811bdf9fdd12c2a0cbe824880..2fb5a3231dc117fb972c9744d033213d3ccd5495 100644 (file)
@@ -7,7 +7,6 @@ let
   phpRoot = "${ftpRoot}/php";
   webRoot = "${phpRoot}/web";
   varDir = "${ftpRoot}/var";
-  sessionDir = "${ftpRoot}/sessions";
   packagePath = "/var/lib/ftp/release.immae.eu/buildbot/Piedsjaloux";
   branch = "master";
 in {
@@ -26,7 +25,8 @@ in {
           config.secrets.fullPaths."websites/piedsjaloux/production"
           "/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=PiedsJaloux:Production:'";
         "php_admin_value[upload_max_filesize]" = "20M";
         "php_admin_value[post_max_size]" = "20M";
         #"php_admin_flag[log_errors]" = "on";
@@ -36,7 +36,7 @@ in {
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
       };
-      phpPackage = pkgs.php74;
+      phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     systemd.services."phpfpm-piedsjaloux_production" = {
       after = lib.mkAfter ["mysql.service"];
@@ -86,7 +86,7 @@ in {
     system.activationScripts.piedsjaloux_production = {
       deps = ["users"];
       text = ''
-        install -m 0700 -o ${config.services.httpd.Prod.user} -g ${config.services.httpd.Prod.group} -d ${ftpRoot} ${sessionDir}
+        install -m 0700 -o ${config.services.httpd.Prod.user} -g ${config.services.httpd.Prod.group} -d ${ftpRoot}
       '';
     };
 
index e68f7db22f156788b7af1d8c1c56481653d6b2fd..fb856853ead6c89c5f6d0ea867628ddb3253ef6f 100644 (file)
@@ -10,12 +10,6 @@ in {
   config = lib.mkIf cfg.enable {
     services.webstats.sites = [ { name = "ressourcerie-banon.org"; } ];
 
-    system.activationScripts.ressourcerie_banon = {
-      deps = [ "httpd" ];
-      text = ''
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/ressourcerie_banon
-        '';
-    };
     systemd.services.phpfpm-ressourcerie_banon.after = lib.mkAfter [ "mysql.service" ];
     systemd.services.phpfpm-ressourcerie_banon.wants = [ "mysql.service" ];
     services.phpfpm.pools.ressourcerie_banon = {
@@ -31,13 +25,14 @@ in {
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
 
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/ressourcerie_banon:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/ressourcerie_banon";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=RessourcerieBanon:Production:'";
+        "php_admin_value[open_basedir]" = "${varDir}:/tmp";
       };
       phpOptions = config.services.phpfpm.phpOptions + ''
         disable_functions = "mail"
       '';
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.modules = [ "proxy_fcgi" ];
     services.websites.env.production.vhostConfs.ressourcerie_banon = {
index 10a7be9c2404a9637e59854aa0b6d5987748f14e..dc2a36fb7342ff083f578f6d7a2f72874d633ffe 100644 (file)
@@ -48,7 +48,6 @@ in
     system.activationScripts.richie_production = {
       deps = [ "httpd" ];
       text = ''
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/richie_production
         install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${vardir}
         '';
     };
@@ -65,8 +64,9 @@ in
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
 
-        "php_admin_value[open_basedir]" = "${vardir}:/var/lib/php/sessions/richie_production:${secretPath}:${richieSrc}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/richie_production";
+        "php_admin_value[open_basedir]" = "${vardir}:${secretPath}:${richieSrc}:/tmp";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Richie:Production:'";
       };
       phpEnv = {
         PATH = "/run/current-system/sw/bin:${lib.makeBinPath [ pkgs.imagemagick ]}";
@@ -75,7 +75,7 @@ in
       phpOptions = config.services.phpfpm.phpOptions + ''
         date.timezone = 'Europe/Paris'
         '';
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.modules = [ "proxy_fcgi" ];
     services.websites.env.production.vhostConfs.richie_production = {
index 8cae3bc523a8d320bdc8f38ca08bb64cf147394c..d301e086042c355b9c1a5f2651afc9779c96a8bf 100644 (file)
@@ -18,7 +18,6 @@ in {
       deps = [ "httpd" ];
       text = ''
         install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/ftp/telio_tortay/logs
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/telio_tortay
         '';
     };
     systemd.services.phpfpm-telio_tortay.after = lib.mkAfter [ "mysql.service" ];
@@ -36,13 +35,14 @@ in {
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "3";
 
-        "php_admin_value[open_basedir]" = "/var/lib/php/sessions/telio_tortay:${varDir}:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/php/sessions/telio_tortay";
+        "php_admin_value[open_basedir]" = "${varDir}:/tmp";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=TelioTortay:Production:'";
       };
       phpOptions = config.services.phpfpm.phpOptions + ''
         disable_functions = "mail"
       '';
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
     };
     services.websites.env.production.modules = adminer.apache.modules ++ [ "proxy_fcgi" ];
     services.websites.env.production.vhostConfs.telio_tortay = {
index 929fabbe151ba4181500af8be17c560da49b4a42..1a0595e3f7099b624e311c8665f7161ca80c8a4b 100644 (file)
@@ -39,7 +39,8 @@ let
       "php_admin_value[memory_limit]" = "512M";
 
       "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:${basedir}:/proc/meminfo:/dev/urandom:/proc/self/fd:/tmp";
-      "php_admin_value[session.save_path]" = "${varDir}/phpSessions";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Nextcloud:'";
     };
   };
 in {
@@ -198,7 +199,6 @@ in {
       in
         ''
         install -m 0755 -o wwwrun -g wwwrun -d ${varDir}
-        install -m 0750 -o wwwrun -g wwwrun -d ${varDir}/phpSessions
         ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (n: v:
           "install -D -m 0644 -o wwwrun -g wwwrun -T ${v} ${varDir}/config/${n}.json"
           ) confs)}
index de1cfaecb1056cdf5c62391c2dfa6e5a2bbf9889..1811200b42653e8c0ee60d26f4e758ba4065ce48 100644 (file)
@@ -5,8 +5,7 @@ let
   apacheGroup = config.services.httpd.Prod.group;
   toVardir = name: "/var/lib/nextcloud_farm/${name}";
   varDirs = lib.mapAttrsToList (name: v: toVardir name) cfg.instances;
-  toPhpBaseDir = name: [ cfg.rootDirs."${name}" (toVardir name) ] ++ cfg.rootDirs."${name}".apps;
-  phpBaseDir = builtins.concatStringsSep ":" (lib.unique (lib.flatten (lib.mapAttrsToList (name: v: toPhpBaseDir name) cfg.instances)));
+  toPhpBaseDir = name: builtins.concatStringsSep ":" ([ cfg.rootDirs."${name}" (toVardir name) ] ++ cfg.rootDirs."${name}".apps);
   toVhost = name: ''
     SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
     SetEnv NEXTCLOUD_CONFIG_DIR "${toVardir name}"
@@ -22,7 +21,7 @@ let
       </IfModule>
       <FilesMatch "\.php$">
         CGIPassAuth on
-        SetHandler "proxy:unix:${config.services.phpfpm.pools.nextcloud_farm.socket}|fcgi://localhost"
+        SetHandler "proxy:unix:${config.services.phpfpm.pools.${"nextcloud_farm_" + name}.socket}|fcgi://localhost"
       </FilesMatch>
 
     </Directory>
@@ -72,24 +71,23 @@ in
       deps = [ "httpd" ];
       text = ''
         install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${builtins.concatStringsSep " " varDirs}
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/nextcloud_farm/phpSessions
         '';
     };
-    systemd.services.phpfpm-nextcloud_farm.after = lib.mkAfter [ "postgresql.service" ];
-    systemd.services.phpfpm-nextcloud_farm.wants = [ "postgresql.service" ];
-    services.phpfpm.pools.nextcloud_farm = {
+    systemd.services = lib.mapAttrs' (k: v: lib.nameValuePair ("phpfpm-nextcloud_farm_" + k) {
+      after = lib.mkAfter [ "postgresql.service" ];
+      wants = [ "postgresql.service" ];
+    }) cfg.instances;
+    services.phpfpm.pools = lib.mapAttrs' (k: v: lib.nameValuePair ("nextcloud_farm_" + k) {
       user = apacheUser;
       group = apacheGroup;
-      settings = let
-        instanceNb = builtins.length (builtins.attrNames cfg.instances);
-      in {
+      settings = {
         "listen.owner" = apacheUser;
         "listen.group" = apacheGroup;
         "pm" = "dynamic";
-        "pm.max_children" = builtins.toString (60 * instanceNb);
-        "pm.start_servers" = builtins.toString (3 * instanceNb);
-        "pm.min_spare_servers" = builtins.toString (3 * instanceNb);
-        "pm.max_spare_servers" = builtins.toString (5 * instanceNb);
+        "pm.max_children" = "60";
+        "pm.start_servers" = "3";
+        "pm.min_spare_servers" = "3";
+        "pm.max_spare_servers" = "3";
         "pm.process_idle_timeout" = "60";
 
         "php_admin_value[output_buffering]" = "0";
@@ -107,11 +105,12 @@ in
         "php_value[opcache.revalidate_freq]" = "1";
         "php_admin_value[memory_limit]" = "512M";
 
-        "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:${phpBaseDir}:/proc/meminfo:/dev/urandom:/proc/self/fd:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/nextcloud_farm/phpSessions";
+        "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:${toPhpBaseDir k}:/proc/meminfo:/dev/urandom:/proc/self/fd:/tmp";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:NextcloudFarm:${k}:'";
       };
       inherit phpPackage;
-    };
+    }) cfg.instances;
     users.users.root.packages = let
       toOcc = name: pkgs.writeScriptBin "nextcloud-occ-${name}" ''
         #! ${pkgs.stdenv.shell}
index bc5ecf695bf5aed35d303ce199d5d0503f70c71e..b418cb8359c367536e8f0f0ccd19020aac2c98af 100644 (file)
@@ -1,11 +1,5 @@
 { stdenv, fetchurl, gettext, writeText, env, awl, davical, config }:
 rec {
-  activationScript = {
-    deps = [ "httpd" ];
-    text = ''
-      install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/davical
-      '';
-  };
   keys."webapps/dav-davical" = {
     user = apache.user;
     group = apache.group;
@@ -120,9 +114,10 @@ rec {
 
       # Needed to avoid clashes in browser cookies (same domain)
       "php_value[session.name]" = "DavicalPHPSESSID";
-      "php_admin_value[open_basedir]" = "${basedir}:/tmp:/var/lib/php/sessions/davical";
+      "php_admin_value[open_basedir]" = "${basedir}:/tmp";
       "php_admin_value[include_path]" = "${awl}/inc:${webapp}/inc";
-      "php_admin_value[session.save_path]" = "/var/lib/php/sessions/davical";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Davical:'";
       "php_flag[magic_quotes_gpc]" = "Off";
       "php_flag[register_globals]" = "Off";
       "php_admin_value[error_reporting]" = "E_ALL & ~E_NOTICE";
index 289a56979304a520554be31bf06a0fc491e56450..5942fa3e2df340145173e561bd3e8b0144c29e2c 100644 (file)
@@ -96,7 +96,6 @@ in {
       #  };
       #};
     };
-    system.activationScripts.davical = davical.activationScript;
     secrets.keys = davical.keys;
     services.websites.env.tools.modules = davical.apache.modules;
 
@@ -116,7 +115,7 @@ in {
         user = config.services.httpd.Tools.user;
         group = config.services.httpd.Tools.group;
         settings = davical.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
     };
   };
index 8e40b42667d78ef704098aaf56f56cdd5c532a5c..47a91e542efa16bff9921d896844301b73644e0e 100644 (file)
@@ -45,7 +45,6 @@ in {
       gitweb.apache.modules ++
       mantisbt.apache.modules;
 
-    system.activationScripts.mantisbt = mantisbt.activationScript;
     services.websites.env.tools.vhostConfs.git = {
       certName    = "eldiron";
       addToCerts  = true;
@@ -66,7 +65,7 @@ in {
         user = config.services.httpd.Tools.user;
         group = config.services.httpd.Tools.group;
         settings = mantisbt.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
     };
   };
index 2ef76afe0637a4edd1b5c4ce48cae2fbf615fe64..3bd78e13980f31212655c5ca1e9953bca82025c2 100644 (file)
@@ -1,11 +1,5 @@
 { env, mantisbt_2, mantisbt_2-plugins, config }:
 rec {
-  activationScript = {
-    deps = [ "httpd" ];
-    text = ''
-      install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/mantisbt
-    '';
-  };
   keys."webapps/tools-mantisbt" = {
     user = apache.user;
     group = apache.group;
@@ -84,8 +78,9 @@ rec {
 
       "php_admin_value[upload_max_filesize]" = "5000000";
 
-      "php_admin_value[open_basedir]" = "${basedir}:/tmp:/var/lib/php/sessions/mantisbt";
-      "php_admin_value[session.save_path]" = "/var/lib/php/sessions/mantisbt";
+      "php_admin_value[open_basedir]" = "${basedir}:/tmp";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:MantisBT:'";
     };
   };
 }
index a845429bddf61cd538bee35cc07c6342b0a2cf68..f6085e383c2741608af05f34f8ea00c824b32b6d 100644 (file)
@@ -47,7 +47,7 @@ let
     };
   };
   customVhosts = lib.foldl (o: n: o // n) {} (map toCustomVhost (builtins.attrNames cfg.instances));
-  phpPackage = pkgs.php74;
+  phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [all.redis]);
 in
 {
   options.myServices.tools.kanboard.farm = {
@@ -113,7 +113,6 @@ in
       deps = [ "httpd" ];
       text = ''
         install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${builtins.concatStringsSep " " varDirs}
-        install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/kanboard_farm/phpSessions
         '';
     };
     services.phpfpm.pools.kanboard_farm = {
@@ -147,7 +146,8 @@ in
         "php_admin_value[memory_limit]" = "512M";
 
         "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:${phpBaseDir}:/proc/meminfo:/dev/urandom:/proc/self/fd:/tmp";
-        "php_admin_value[session.save_path]" = "/var/lib/kanboard_farm/phpSessions";
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:KanboardFarm:'";
       };
       inherit phpPackage;
     };
index 377410c5c553fa8eff9988c4bade83934af8720f..8de7acb81bbba397a4209a2e0daff4c2ec617e53 100644 (file)
@@ -107,13 +107,13 @@ in
       phpOptions = config.services.phpfpm.phpOptions + ''
         date.timezone = 'CET'
       '';
-      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [ all.imagick ]);
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [ all.imagick all.redis ]);
     };
     services.phpfpm.pools.rainloop = {
       user = "wwwrun";
       group = "wwwrun";
       settings = rainloop.phpFpm.pool;
-      phpPackage = pkgs.php72;
+      phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [ all.redis ]);
     };
     system.activationScripts = {
       roundcubemail = roundcubemail.activationScript;
index 7dd32a08dead6412621e4742dc65ec8465e5e4ec..f821005bb1390bc5b30655021f78e5b5f923c9e1 100644 (file)
@@ -5,7 +5,6 @@ rec {
     deps = [ "wrappers" ];
     text = ''
       install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir}
-      install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
       install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/data
     '';
   };
@@ -48,7 +47,8 @@ rec {
       "php_admin_value[upload_max_filesize]" = "200M";
       "php_admin_value[post_max_size]" = "200M";
       "php_admin_value[open_basedir]" = "${basedir}:/tmp";
-      "php_admin_value[session.save_path]" = "${varDir}/phpSessions";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Rainloop:'";
     };
   };
 }
index 2661b5565f1ca62ad003aec9ff87cb02e8975f36..88a99b468c3487152a7f569f47db6bd1c80a201f 100644 (file)
@@ -6,7 +6,6 @@ rec {
     text = ''
       install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
         ${varDir}/cache ${varDir}/logs
-      install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
     '';
   };
   keys."webapps/tools-roundcube" = {
@@ -112,7 +111,8 @@ rec {
       "php_admin_value[upload_max_filesize]" = "200M";
       "php_admin_value[post_max_size]" = "200M";
       "php_admin_value[open_basedir]" = "${basedir}:${apacheHttpd}/conf/mime.types:/tmp";
-      "php_admin_value[session.save_path]" = "${varDir}/phpSessions";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Roundcubemail:'";
     };
   };
 }
index 5715ff08318a9c2b289d1e83c8470b65b7a3dcb8..56da3e5d1c262e74c1e177d790f2ff580a4825c0 100644 (file)
@@ -79,9 +79,11 @@ in
         "pm.min_spare_servers" = "1";
         "pm.max_spare_servers" = "10";
 
+        "php_admin_value[session.save_handler]" = "redis";
+        "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:StatusEngine:'";
         "php_admin_value[open_basedir]" = "${package}:/tmp:${config.secrets.fullPaths."status_engine_ui"}";
       };
-      phpPackage = pkgs.php74;
+      phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [ all.redis ]);
     };
 
   };
index c280684c2f9fcd919508f238ac3a3c85a442bb24..8bdd889452f219b7959cb6518c7527b8867a577c 100644 (file)
@@ -1,16 +1,10 @@
 { webapps, php74, myPhpPackages, lib, forcePhpSocket ? null }:
 rec {
-  activationScript = {
-    deps = [ "httpd" ];
-    text = ''
-      install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/adminer
-      '';
-  };
   webRoot = webapps.adminer;
   phpFpm = rec {
     user = apache.user;
     group = apache.group;
-    phpPackage = php74.withExtensions ({ enabled, all }: (lib.remove all.mysqli enabled) ++ [myPhpPackages.mysqli_pam]);
+    phpPackage = php74.withExtensions ({ enabled, all }: (lib.remove all.mysqli enabled) ++ [myPhpPackages.mysqli_pam all.redis]);
     settings = {
       "listen.owner" = apache.user;
       "listen.group" = apache.group;
@@ -20,8 +14,9 @@ rec {
       #"php_admin_flag[log_errors]" = "on";
       # Needed to avoid clashes in browser cookies (same domain)
       "php_value[session.name]" = "AdminerPHPSESSID";
-      "php_admin_value[open_basedir]" = "${webRoot}:/tmp:/var/lib/php/sessions/adminer";
-      "php_admin_value[session.save_path]" = "/var/lib/php/sessions/adminer";
+      "php_admin_value[open_basedir]" = "${webRoot}:/tmp";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Adminer:'";
     };
   };
   apache = rec {
index 99c746d7d6a4455a38e0534fee2857d294039bd5..fd31984c88d0bbdfb0e315616e4218bc095462cf 100644 (file)
@@ -365,6 +365,8 @@ in {
           "pm.min_spare_servers" = "1";
           "pm.max_spare_servers" = "10";
 
+          "php_admin_value[session.save_handler]" = "redis";
+          "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Tools:'";
           # Needed to avoid clashes in browser cookies (same domain)
           "php_value[session.name]" = "ToolsPHPSESSID";
           "php_admin_value[open_basedir]" = builtins.concatStringsSep ":" [
@@ -376,7 +378,7 @@ in {
         phpEnv = {
           CONTACT_EMAIL = config.myEnv.tools.contact;
         };
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [ all.redis ]);
       };
       devtools = {
         user = "wwwrun";
@@ -390,92 +392,91 @@ in {
           "pm.min_spare_servers" = "1";
           "pm.max_spare_servers" = "10";
 
+          "php_admin_value[session.save_handler]" = "redis";
+          "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Devtools:'";
           "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:/var/lib/ftp/immae/devtools:/tmp";
         };
-        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.mysqli all.redis all.apcu all.opcache ]);
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.mysqli all.sqlite3 all.redis all.apcu all.opcache ]);
       };
       adminer = adminer.phpFpm;
       ttrss = {
         user = "wwwrun";
         group = "wwwrun";
         settings = ttrss.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       wallabag = {
         user = "wwwrun";
         group = "wwwrun";
         settings = wallabag.phpFpm.pool;
-        phpPackage = pkgs.php73.withExtensions({ enabled, all }: enabled ++ [all.tidy]);
+        phpPackage = pkgs.php73.withExtensions({ enabled, all }: enabled ++ [all.tidy all.redis]);
       };
       yourls = {
         user = "wwwrun";
         group = "wwwrun";
         settings = yourls.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       rompr = {
         user = "wwwrun";
         group = "wwwrun";
         settings = rompr.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       shaarli = {
         user = "wwwrun";
         group = "wwwrun";
         settings = shaarli.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       dmarc-reports = {
         user = "wwwrun";
         group = "wwwrun";
         settings = dmarc-reports.phpFpm.pool;
         phpEnv = dmarc-reports.phpFpm.phpEnv;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       dokuwiki = {
         user = "wwwrun";
         group = "wwwrun";
         settings = dokuwiki.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       phpbb = {
         user = "wwwrun";
         group = "wwwrun";
         settings = phpbb.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       ldap = {
         user = "wwwrun";
         group = "wwwrun";
         settings = ldap.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       kanboard = {
         user = "wwwrun";
         group = "wwwrun";
         settings = kanboard.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       grocy = {
         user = "wwwrun";
         group = "wwwrun";
         settings = grocy.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
     };
 
     system.activationScripts = {
-      adminer = adminer.activationScript;
       grocy = grocy.activationScript;
       ttrss = ttrss.activationScript;
       wallabag = wallabag.activationScript;
-      yourls = yourls.activationScript;
       rompr = rompr.activationScript;
       shaarli = shaarli.activationScript;
       dokuwiki = dokuwiki.activationScript;
       phpbb = phpbb.activationScript;
       kanboard = kanboard.activationScript;
-      ldap = ldap.activationScript;
     };
 
     services.websites.env.tools.watchPaths = [
index 8a77b1333e7cc0231f4e5750ebf92c1d67575ae2..7e8704dee6fa049b3d69b252721d467c7ac29a8d 100644 (file)
@@ -49,6 +49,8 @@ rec {
       "pm.max_children" = "60";
       "pm.process_idle_timeout" = "60";
 
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:DmarcReports:'";
       # Needed to avoid clashes in browser cookies (same domain)
       "php_admin_value[open_basedir]" = "${basedir}:/tmp";
     };
index 724168e1418b656a2b753aa00d5c21b3c6536399..83bd1238d3faf37b675967842826913292023371 100644 (file)
@@ -13,7 +13,6 @@ rec {
         chown -R ${apache.user}:${apache.user} ${varDir}/config ${varDir}/data
         chmod -R 755 ${varDir}/config ${varDir}/data
       fi
-      install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
     '';
   };
   chatonsHostingProperties = {
@@ -87,7 +86,8 @@ rec {
       # 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";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Dokuwiki:'";
     };
   };
 }
index 3c45261371c6dcd61f07f976eb2b47f8f881832f..96e18a30a877688d568bf666f745d6ac81650fd3 100644 (file)
@@ -5,7 +5,6 @@ rec {
     deps = [ "wrappers" ];
     text = ''
       install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir}/data
-      install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
     '';
   };
   webRoot = grocy.webRoot;
@@ -41,7 +40,8 @@ rec {
       # Needed to avoid clashes in browser cookies (same domain)
       "php_value[session.name]" = "grocyPHPSESSID";
       "php_admin_value[open_basedir]" = "${basedir}:/tmp";
-      "php_admin_value[session.save_path]" = "${varDir}/phpSessions";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Grocy:'";
     };
   };
 }
index 852d974c80fd47e35b5dda8c20bade6bdb5c4abb..db39ecdcb087f7047dc9b12667392308f1bc8c2d 100644 (file)
@@ -5,7 +5,6 @@ rec {
     deps = [ "wrappers" ];
     text = ''
       install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir}/data
-      install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
       install -TDm644 ${webRoot}/dataold/.htaccess ${varDir}/data/.htaccess
       install -TDm644 ${webRoot}/dataold/web.config ${varDir}/data/web.config
     '';
@@ -75,7 +74,8 @@ rec {
       # Needed to avoid clashes in browser cookies (same domain)
       "php_value[session.name]" = "KanboardPHPSESSID";
       "php_admin_value[open_basedir]" = "${basedir}:/tmp";
-      "php_admin_value[session.save_path]" = "${varDir}/phpSessions";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Kanboard:'";
     };
   };
 }
index 2ca59f7a19c299808912d10818e03d63061e3254..0ae51ba7bf6edfeb701355b78981d13d0f2e1c78 100644 (file)
@@ -1,11 +1,5 @@
 { lib, php, env, writeText, phpldapadmin, config }:
 rec {
-  activationScript = {
-    deps = [ "httpd" ];
-    text = ''
-      install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/phpldapadmin
-      '';
-  };
   keys."webapps/tools-ldap" = {
     user = apache.user;
     group = apache.group;
@@ -62,8 +56,9 @@ rec {
 
       # Needed to avoid clashes in browser cookies (same domain)
       "php_value[session.name]" = "LdapPHPSESSID";
-      "php_admin_value[open_basedir]" = "${basedir}:/tmp:/var/lib/php/sessions/phpldapadmin";
-      "php_admin_value[session.save_path]" = "/var/lib/php/sessions/phpldapadmin";
+      "php_admin_value[open_basedir]" = "${basedir}:/tmp";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:PhpLDAPAdmin:'";
     };
   };
 }
index 88c7817d135bd0d2a8d3470389cb196b2d0714f4..c1cbd6fb2ee7c7391f037e2b8093bb9554927224 100644 (file)
@@ -9,7 +9,6 @@ rec {
         cp -a ${phpbb}/vars/* ${varDir}
         chown -R ${apache.user}:${apache.user} ${varDir}
       fi
-      install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
     '';
   };
   chatonsHostingProperties = {
@@ -63,7 +62,8 @@ rec {
           # Needed to avoid clashes in browser cookies (same domain)
       "php_value[session.name]" = "PhpBBPHPSESSID";
       "php_admin_value[open_basedir]" = "${basedir}:/tmp";
-      "php_admin_value[session.save_path]" = "${varDir}/phpSessions";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:PhpBB:'";
     };
   };
 }
index e80d6b2c10bf470a15c41a18aea1204319bc2259..1a0e241069688a8e202b0ece7f6317b66fea1b5d 100644 (file)
@@ -3,7 +3,7 @@ rec {
   varDir = "/var/lib/rompr";
   activationScript = ''
     install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
-      ${varDir}/prefs ${varDir}/albumart ${varDir}/phpSessions
+      ${varDir}/prefs ${varDir}/albumart
   '';
   webRoot = rompr;
   apache = rec {
@@ -57,7 +57,8 @@ rec {
       # Needed to avoid clashes in browser cookies (same domain)
       "php_value[session.name]" = "RomprPHPSESSID";
       "php_admin_value[open_basedir]" = "${basedir}:/tmp";
-      "php_admin_value[session.save_path]" = "${varDir}/phpSessions";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Rompr:'";
       "php_flag[magic_quotes_gpc]" = "Off";
       "php_flag[track_vars]" = "On";
       "php_flag[register_globals]" = "Off";
index 462de51d83ace575c46a9db391165173c2c737ee..e7f106c008e4a7633eca1a1beb6c6eb9753c6ddd 100644 (file)
@@ -4,8 +4,7 @@ let
 in rec {
   activationScript = ''
     install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
-      ${varDir}/cache ${varDir}/pagecache ${varDir}/tmp ${varDir}/data \
-      ${varDir}/phpSessions
+      ${varDir}/cache ${varDir}/pagecache ${varDir}/tmp ${varDir}/data
     '';
   webRoot = shaarli varDir;
   apache = rec {
@@ -81,7 +80,8 @@ in rec {
       # Needed to avoid clashes in browser cookies (same domain)
       "php_value[session.name]" = "ShaarliPHPSESSID";
       "php_admin_value[open_basedir]" = "${basedir}:/tmp";
-      "php_admin_value[session.save_path]" = "${varDir}/phpSessions";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Shaarli:'";
       "php_admin_value[upload_max_filesize]" = "200M";
       "php_admin_value[post_max_size]" = "200M";
     };
index c34817fa5052e92611272807a88006f8e30f3123..6a316fa4c72e050bf8da2e425d37b39860f45415 100644 (file)
@@ -13,7 +13,6 @@ rec {
         ${varDir}/cache/simplepie/ \
         ${varDir}/cache/upload/
       touch ${varDir}/feed-icons/index.html
-      install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
     '';
   };
   chatonsProperties = {
@@ -147,7 +146,8 @@ rec {
       # Needed to avoid clashes in browser cookies (same domain)
       "php_value[session.name]" = "TtrssPHPSESSID";
       "php_admin_value[open_basedir]" = "${basedir}:/tmp";
-      "php_admin_value[session.save_path]" = "${varDir}/phpSessions";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:TTRSS:'";
     };
   };
 }
index 8ec7c29219927091d08a23df34eb80879716f7bb..d03996a4f6fe670cd6901fcc220c0d56d2f917c0 100644 (file)
@@ -158,6 +158,8 @@ rec {
 
       # Needed to avoid clashes in browser cookies (same domain)
       "php_value[session.name]" = "WallabagPHPSESSID";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Wallabag:'";
       "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:${basedir}:/tmp";
       "php_value[max_execution_time]" = "300";
     };
index c59fae34cd0d5febb8449539685757fc3442fb0e..2d86a012b1de65545162d1bbce09d3864bcd246a 100644 (file)
@@ -1,11 +1,5 @@
 { env, yourls, yourls-plugins, config }:
 rec {
-  activationScript = {
-    deps = [ "httpd" ];
-    text = ''
-      install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/yourls
-    '';
-  };
   keys."webapps/tools-yourls" = {
     user = apache.user;
     group = apache.group;
@@ -102,8 +96,9 @@ rec {
 
       # Needed to avoid clashes in browser cookies (same domain)
       "php_value[session.name]" = "YourlsPHPSESSID";
-      "php_admin_value[open_basedir]" = "${basedir}:/tmp:/var/lib/php/sessions/yourls";
-      "php_admin_value[session.save_path]" = "/var/lib/php/sessions/yourls";
+      "php_admin_value[session.save_handler]" = "redis";
+      "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Yourls:'";
+      "php_admin_value[open_basedir]" = "${basedir}:/tmp";
     };
   };
 }
index b9d988665bd327b58f00ead097cd3ea14fd04791..caecb6f85f748d9b9fa5a159af10ce45381cc415 100644 (file)
@@ -33,11 +33,6 @@ in
               Mode to apply to the vardir
               '';
           };
-          phpSession = mkOption {
-            type = bool;
-            default = true;
-            description = "Handle phpsession files separately in vardir";
-          };
           phpListen = mkOption {
             type = nullOr str;
             default = null;
@@ -159,7 +154,6 @@ in
           "listen.group" = icfg.httpdGroup;
           "php_admin_value[open_basedir]" = builtins.concatStringsSep ":" ([icfg.app icfg.varDir] ++ icfg.phpWatchFiles ++ icfg.phpOpenbasedir);
         }
-        // optionalAttrs (icfg.phpSession) { "php_admin_value[session.save_path]" = "${icfg.varDir}/phpSessions"; }
         // icfg.phpPool;
         phpOptions = config.services.phpfpm.phpOptions + icfg.phpOptions;
         inherit (icfg) phpEnv phpPackage;
@@ -208,8 +202,6 @@ in
         deps = [];
         text = optionalString (!isNull icfg.varDir) ''
           install -m ${icfg.mode} -o ${icfg.httpdUser} -g ${icfg.httpdGroup} -d ${icfg.varDir}
-          '' + optionalString (icfg.phpSession) ''
-          install -m 0700 -o ${icfg.httpdUser} -g ${icfg.httpdGroup} -d ${icfg.varDir}/phpSessions
           '' + builtins.concatStringsSep "\n" (attrsets.mapAttrsToList (n: v: ''
             install -m ${v} -o ${icfg.httpdUser} -g ${icfg.httpdGroup} -d ${icfg.varDir}/${n}
             '') icfg.varDirPaths);