From 27e22b76e2f7d402c1556d6bbf99cf5e1316f9d4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Fri, 28 Dec 2018 17:52:40 +0100 Subject: [PATCH] Put adminer configuration in its package --- virtual/eldiron.nix | 27 +++++-------------- virtual/packages.nix | 62 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 56 insertions(+), 33 deletions(-) diff --git a/virtual/eldiron.nix b/virtual/eldiron.nix index 38f753c..768de84 100644 --- a/virtual/eldiron.nix +++ b/virtual/eldiron.nix @@ -53,18 +53,7 @@ log_level = notice ''; poolConfigs = { - adminer = '' - listen = /var/run/phpfpm/adminer.sock - user = wwwrun - group = wwwrun - listen.owner = wwwrun - listen.group = wwwrun - pm = ondemand - pm.max_children = 5 - pm.process_idle_timeout = 60 - ;php_admin_flag[log_errors] = on - php_admin_value[open_basedir] = "${mypkgs.adminer}:/tmp" - ''; + adminer = mypkgs.adminer.phpFpm.pool; www = '' listen = /var/run/phpfpm/www.sock user = wwwrun @@ -106,15 +95,9 @@ listen = [ { ip = "*"; port = 443; } ]; hostName = "db-1.immae.eu"; documentRoot = null; - extraConfig = '' - Alias /adminer ${mypkgs.adminer} - - DirectoryIndex = index.php - - SetHandler "proxy:unix:/var/run/phpfpm/adminer.sock|fcgi://localhost" - - - ''; + extraConfig = builtins.concatStringsSep "\n" [ + mypkgs.adminer.apacheConf + ]; }) { # Should go last, default fallback listen = [ { ip = "*"; port = 80; } ]; @@ -160,6 +143,7 @@ # FIXME: backup # FIXME: restart after pam # FIXME: pam access doesn’t work (because of php module) + # FIXME: ssl services.mysql = rec { enable = true; package = pkgs.mariadb.overrideAttrs(old: rec { @@ -170,6 +154,7 @@ # FIXME: initial sync # FIXME: backup + # FIXME: ssl services.postgresql = rec { enable = true; package = pkgs.postgresql100.overrideAttrs(old: rec { diff --git a/virtual/packages.nix b/virtual/packages.nix index 6c552f6..2e16a0d 100644 --- a/virtual/packages.nix +++ b/virtual/packages.nix @@ -6,19 +6,57 @@ with import (builtins.fetchTarball { sha256 = "0qbycg7wkb71v20rchlkafrjfpbk2fnlvvbh3ai9pyfisci5wxvq"; }) {}; let -adminer = pkgs.stdenv.mkDerivation rec { - name = "adminer-4.7.0"; - src = pkgs.fetchurl { - url = "https://www.adminer.org/static/download/4.7.0/${name}.php"; - sha256 = "1qq2g7rbfh2vrqfm3g0bz0qs057b049n0mhabnsbd1sgnpvnc5z7"; + adminer = rec { + webRoot = pkgs.stdenv.mkDerivation rec { + name = "adminer-4.7.0"; + src = pkgs.fetchurl { + url = "https://www.adminer.org/static/download/4.7.0/${name}.php"; + sha256 = "1qq2g7rbfh2vrqfm3g0bz0qs057b049n0mhabnsbd1sgnpvnc5z7"; + }; + phases = "installPhase"; + installPhase = '' + mkdir -p $out + cp $src $out/index.php + ''; + }; + phpFpm = rec { + socket = "/var/run/phpfpm/adminer.sock"; + pool = '' + listen = ${socket} + user = wwwrun + group = wwwrun + listen.owner = wwwrun + listen.group = wwwrun + pm = ondemand + pm.max_children = 5 + pm.process_idle_timeout = 60 + ;php_admin_flag[log_errors] = on + php_admin_value[open_basedir] = "${webRoot}:/tmp" + ''; + }; + apacheConf = '' + Alias /adminer ${webRoot} + + DirectoryIndex = index.php + + SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost" + + + ''; + nginxConf = { + alias = webRoot; + index = "index.php"; + extraConfig = '' + include ${pkgs.nginx}/conf/fastcgi.conf; + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + fastcgi_param HTTP_PROXY ""; + fastcgi_param SCRIPT_FILENAME ${webRoot}/index.php; + fastcgi_pass unix:${phpFpm.socket}; + fastcgi_index index.php; + fastcgi_intercept_errors on; + ''; + }; }; - phases = "installPhase"; - installPhase = '' - mkdir -p $out - cp $src $out/index.php - ''; -}; - in { inherit adminer; -- 2.41.0