phpEnv = {
PATH = "/etc/profiles/per-user/${user}/bin";
};
+ phpPackage = pkgs.php72;
};
};
"pm.process_idle_timeout" = "60";
};
phpOptions = config.services.phpfpm.phpOptions + ''
- extension=${pkgs.php}/lib/php/extensions/mysqli.so
+ extension=${pkgs.php72}/lib/php/extensions/mysqli.so
'';
+ phpPackage = pkgs.php72;
};
system.activationScripts.chloe_integration = {
deps = [ "wrappers" ];
"pm.max_spare_servers" = "3";
};
phpOptions = config.services.phpfpm.phpOptions + ''
- extension=${pkgs.php}/lib/php/extensions/mysqli.so
+ extension=${pkgs.php72}/lib/php/extensions/mysqli.so
'';
+ phpPackage = pkgs.php72;
};
system.activationScripts.chloe_production = {
deps = [ "wrappers" ];
let
secrets = config.myEnv.websites.connexionswing.integration;
app = pkgs.callPackage ./app {
+ composerEnv = pkgs.composerEnv.override { php = pkgs.php72; };
environment = secrets.environment;
varDir = "/var/lib/connexionswing_integration";
secretsPath = config.secrets.fullPaths."websites/connexionswing/integration";
phpWatchFiles = [
config.secrets.fullPaths."websites/connexionswing/integration"
];
+ phpPackage = pkgs.php72;
};
secrets.keys = [
let
secrets = config.myEnv.websites.connexionswing.production;
app = pkgs.callPackage ./app {
+ composerEnv = pkgs.composerEnv.override { php = pkgs.php72; };
environment = secrets.environment;
varDir = "/var/lib/connexionswing_production";
secretsPath = config.secrets.fullPaths."websites/connexionswing/production";
phpWatchFiles = [
config.secrets.fullPaths."websites/connexionswing/production"
];
+ phpPackage = pkgs.php72;
};
secrets.keys = [
networking.firewall.allowedTCPPorts = [ 80 443 ];
nixpkgs.overlays = [ (self: super: rec {
- #openssl = self.openssl_1_1;
- php = php72;
php72 = (super.php72.override {
config.php.mysqlnd = true;
config.php.mysqli = false;
# ext/mysqli/mysqli.c ext/mysqli/mysqli_prop.c
# '';
});
- phpPackages = super.php72Packages.override { inherit php; };
}) ];
secrets.keys = [{
};
services.phpfpm = {
- phpPackage = pkgs.php;
phpOptions = ''
session.save_path = "/var/lib/php/sessions"
post_max_size = 20M
-{ lib, config, ... }:
+{ lib, config, pkgs, ... }:
let
cfg = config.myServices.websites.denise.evariste;
nsiVarDir = "/var/lib/ftp/denise/nsievariste";
"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";
};
+ phpPackage = pkgs.php72;
};
services.websites.env.production.vhostConfs.denise_nsievariste = {
certName = "denise_evariste";
"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";
};
+ phpPackage = pkgs.php72;
};
services.websites.env.production.vhostConfs.denise_stmgevariste = {
certName = "denise_evariste";
adminer = pkgs.callPackage ../commons/adminer.nix { inherit config; };
secrets = config.myEnv.websites.tellesflorian.integration;
app = pkgs.callPackage ./app {
+ composerEnv = pkgs.composerEnv.override { php = pkgs.php72; };
environment = secrets.environment;
varDir = "/var/lib/florian_app";
secretsPath = config.secrets.fullPaths."websites/florian/app";
phpWatchFiles = [
config.secrets.fullPaths."websites/florian/app"
];
+ phpPackage = pkgs.php72;
};
secrets.keys = [
let
secrets = config.myEnv.websites.isabelle.aten_integration;
app = pkgs.callPackage ./aten_app {
+ composerEnv = pkgs.composerEnv.override { php = pkgs.php72; };
environment = secrets.environment;
varDir = "/var/lib/isabelle_aten_integration";
};
phpEnv = {
SYMFONY_DEBUG_MODE = "\"yes\"";
};
+ phpPackage = pkgs.php72;
};
secrets.keys = [{
let
secrets = config.myEnv.websites.isabelle.aten_production;
app = pkgs.callPackage ./aten_app {
+ composerEnv = pkgs.composerEnv.override { php = pkgs.php72; };
environment = secrets.environment;
varDir = "/var/lib/isabelle_aten_production";
};
"pm.min_spare_servers" = "1";
"pm.max_spare_servers" = "3";
};
+ phpPackage = pkgs.php72;
};
secrets.keys = [{
"pm.max_spare_servers" = "3";
};
phpOptions = config.services.phpfpm.phpOptions + ''
- extension=${pkgs.php}/lib/php/extensions/mysqli.so
+ extension=${pkgs.php72}/lib/php/extensions/mysqli.so
'';
+ phpPackage = pkgs.php72;
};
system.activationScripts.isabelle_iridologie = {
deps = [ "wrappers" ];
BDD_CONNECT = secretsPath;
};
phpOptions = config.services.phpfpm.phpOptions + ''
- extension=${pkgs.php}/lib/php/extensions/mysqli.so
+ extension=${pkgs.php72}/lib/php/extensions/mysqli.so
'';
+ phpPackage = pkgs.php72;
};
services.websites.env.production.modules = adminer.apache.modules ++ [ "proxy_fcgi" ];
services.websites.env.production.vhostConfs.jerome_naturaloutil = {
"php_admin_value[open_basedir]" = "${varDir}:/tmp";
};
+ phpPackage = pkgs.php72;
};
services.webstats.sites = [
let
secrets = config.myEnv.websites.ludivine.integration;
app = pkgs.callPackage ./app {
+ composerEnv = pkgs.composerEnv.override { php = pkgs.php72; };
environment = secrets.environment;
varDir = "/var/lib/ludivine_integration";
secretsPath = config.secrets.fullPaths."websites/ludivine/integration";
phpWatchFiles = [
config.secrets.fullPaths."websites/ludivine/integration"
];
+ phpPackage = pkgs.php72;
};
secrets.keys = [
let
secrets = config.myEnv.websites.ludivine.production;
app = pkgs.callPackage ./app {
+ composerEnv = pkgs.composerEnv.override { php = pkgs.php72; };
environment = secrets.environment;
varDir = "/var/lib/ludivine_production";
secretsPath = config.secrets.fullPaths."websites/ludivine/production";
pkgs.imagemagick pkgs.sass pkgs.ruby
];
};
+ phpPackage = pkgs.php72;
};
secrets.keys = [
};
phpOptions = config.services.phpfpm.phpOptions + ''
date.timezone = 'Europe/Paris'
- extension=${pkgs.php}/lib/php/extensions/mysqli.so
+ extension=${pkgs.php72}/lib/php/extensions/mysqli.so
'';
+ phpPackage = pkgs.php72;
};
services.websites.env.production.modules = [ "proxy_fcgi" ];
let
secrets = config.myEnv.websites.piedsjaloux.integration;
app = pkgs.callPackage ./app {
+ composerEnv = pkgs.composerEnv.override { php = pkgs.php72; };
environment = secrets.environment;
varDir = "/var/lib/piedsjaloux_integration";
secretsPath = config.secrets.fullPaths."websites/piedsjaloux/integration";
phpWatchFiles = [
app.secretsPath
];
+ phpPackage = pkgs.php72;
};
secrets.keys = [
let
secrets = config.myEnv.websites.piedsjaloux.production;
app = pkgs.callPackage ./app {
+ composerEnv = pkgs.composerEnv.override { php = pkgs.php72; };
environment = secrets.environment;
varDir = "/var/lib/piedsjaloux_production";
secretsPath = config.secrets.fullPaths."websites/piedsjaloux/production";
phpWatchFiles = [
app.secretsPath
];
+ phpPackage = pkgs.php72;
};
secrets.keys = [
};
phpOptions = config.services.phpfpm.phpOptions + ''
date.timezone = 'Europe/Paris'
- extension=${pkgs.php}/lib/php/extensions/mysqli.so
+ extension=${pkgs.php72}/lib/php/extensions/mysqli.so
'';
+ phpPackage = pkgs.php72;
};
services.websites.env.production.modules = [ "proxy_fcgi" ];
services.websites.env.production.vhostConfs.richie_production = {
};
phpOptions = config.services.phpfpm.phpOptions + ''
disable_functions = "mail"
- extension=${pkgs.php}/lib/php/extensions/mysqli.so
+ extension=${pkgs.php72}/lib/php/extensions/mysqli.so
'';
+ phpPackage = pkgs.php72;
};
services.websites.env.production.modules = adminer.apache.modules ++ [ "proxy_fcgi" ];
services.websites.env.production.vhostConfs.telio_tortay = {
[ nextcloud varDir ]
++ builtins.attrValues pkgs.webapps.nextcloud-apps);
phpConfig = ''
- extension=${pkgs.phpPackages.redis}/lib/php/extensions/redis.so
- extension=${pkgs.phpPackages.apcu}/lib/php/extensions/apcu.so
- zend_extension=${pkgs.php}/lib/php/extensions/opcache.so
+ extension=${pkgs.php72Packages.redis}/lib/php/extensions/redis.so
+ extension=${pkgs.php72Packages.apcu}/lib/php/extensions/apcu.so
+ zend_extension=${pkgs.php72}/lib/php/extensions/opcache.so
'';
pool = {
"listen.owner" = "wwwrun";
"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";
};
+ phpPackage = pkgs.php72;
};
in {
options.myServices.websites.tools.cloud = {
cd ${nextcloud}
NEXTCLOUD_CONFIG_DIR="${nextcloud}/config" \
exec \
- sudo -u wwwrun ${pkgs.php}/bin/php \
- -c ${pkgs.php}/etc/php.ini \
+ sudo -u wwwrun ${pkgs.php72}/bin/php \
+ -c ${pkgs.php72}/etc/php.ini \
occ $*
'';
in [ occ ];
group = "wwwrun";
settings = phpFpm.pool;
phpOptions = config.services.phpfpm.phpOptions + phpFpm.phpConfig;
+ phpPackage = pkgs.php72;
};
services.cron = {
#! ${pkgs.stdenv.shell}
export LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive
export PATH=/run/wrappers/bin:$PATH
- ${pkgs.php}/bin/php -d memory_limit=512M -f ${nextcloud}/cron.php
+ ${pkgs.php72}/bin/php -d memory_limit=512M -f ${nextcloud}/cron.php
'';
in [
''
user = config.services.httpd.Tools.user;
group = config.services.httpd.Tools.group;
settings = davical.phpFpm.pool;
+ phpPackage = pkgs.php72;
};
};
user = config.services.httpd.Tools.user;
group = config.services.httpd.Tools.group;
settings = mantisbt.phpFpm.pool;
+ phpPackage = pkgs.php72;
};
};
};
inherit (pkgs.webapps) roundcubemail roundcubemail-plugins roundcubemail-skins;
env = config.myEnv.tools.roundcubemail;
};
- rainloop = pkgs.callPackage ./rainloop.nix {};
+ rainloop = pkgs.callPackage ./rainloop.nix {
+ rainloop = pkgs.rainloop-community;
+ };
cfg = config.myServices.websites.tools.email;
pcfg = config.services.phpfpm.pools;
in
user = "wwwrun";
group = "wwwrun";
settings = roundcubemail.phpFpm.pool;
- phpOptions = config.services.phpfpm.phpOptions + roundcubemail.phpFpm.phpConfig;
+ phpOptions = config.services.phpfpm.phpOptions + ''
+ date.timezone = 'CET'
+ extension=${pkgs.php72Packages.imagick}/lib/php/extensions/imagick.so
+ '';
+ phpPackage = pkgs.php72;
};
services.phpfpm.pools.rainloop = {
user = "wwwrun";
group = "wwwrun";
settings = rainloop.phpFpm.pool;
+ phpPackage = pkgs.php72;
};
system.activationScripts = {
roundcubemail = roundcubemail.activationScript;
-{ lib, pkgs, writeText, stdenv, fetchurl }:
+{ lib, rainloop, writeText, stdenv, fetchurl }:
rec {
varDir = "/var/lib/rainloop";
activationScript = {
install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/data
'';
};
- webRoot = pkgs.rainloop-community.override { dataPath = "${varDir}/data"; };
+ webRoot = rainloop.override { dataPath = "${varDir}/data"; };
apache = rec {
user = "wwwrun";
group = "wwwrun";
-{ env, roundcubemail, roundcubemail-plugins, roundcubemail-skins, phpPackages, apacheHttpd }:
+{ env, roundcubemail, roundcubemail-plugins, roundcubemail-skins, apacheHttpd }:
rec {
varDir = "/var/lib/roundcubemail";
activationScript = {
[ webRoot "/var/secrets/webapps/tools-roundcube" varDir ]
++ webRoot.plugins
++ webRoot.skins);
- phpConfig = ''
- date.timezone = 'CET'
- extension=${phpPackages.imagick}/lib/php/extensions/imagick.so
- '';
pool = {
"listen.owner" = apache.user;
"listen.group" = apache.group;
ttrss = pkgs.callPackage ./ttrss.nix {
inherit (pkgs.webapps) ttrss ttrss-plugins;
env = config.myEnv.tools.ttrss;
+ php = pkgs.php72;
};
kanboard = pkgs.callPackage ./kanboard.nix {
env = config.myEnv.tools.kanboard;
};
wallabag = pkgs.callPackage ./wallabag.nix {
- inherit (pkgs.webapps) wallabag;
+ wallabag = pkgs.webapps.wallabag.override { composerEnv = pkgs.composerEnv.override { php = pkgs.php72; }; };
env = config.myEnv.tools.wallabag;
};
yourls = pkgs.callPackage ./yourls.nix {
env = config.myEnv.tools.phpldapadmin;
};
grocy = pkgs.callPackage ./grocy.nix {
- inherit (pkgs.webapps) grocy;
+ grocy = pkgs.webapps.grocy.override { composerEnv = pkgs.composerEnv.override { php = pkgs.php72; }; };
};
phpbb = pkgs.callPackage ./phpbb.nix {
phpbb = (pkgs.webapps.phpbb.withLangs (l: [ l.fr ])).withExts (e: [
description = "Tiny Tiny RSS feeds update daemon";
serviceConfig = {
User = "wwwrun";
- ExecStart = "${pkgs.php}/bin/php ${ttrss.webRoot}/update.php --daemon";
+ ExecStart = "${pkgs.php72}/bin/php ${ttrss.webRoot}/update.php --daemon";
StandardOutput = "syslog";
StandardError = "syslog";
PermissionsStartOnly = true;
phpEnv = {
CONTACT_EMAIL = config.myEnv.tools.contact;
};
+ phpPackage = pkgs.php72;
};
devtools = {
user = "wwwrun";
"php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:/var/lib/ftp/devtools.immae.eu:/tmp";
};
phpOptions = config.services.phpfpm.phpOptions + ''
- extension=${pkgs.php}/lib/php/extensions/mysqli.so
- extension=${pkgs.phpPackages.redis}/lib/php/extensions/redis.so
- extension=${pkgs.phpPackages.apcu}/lib/php/extensions/apcu.so
- zend_extension=${pkgs.php}/lib/php/extensions/opcache.so
+ extension=${pkgs.php72}/lib/php/extensions/mysqli.so
+ extension=${pkgs.php72Packages.redis}/lib/php/extensions/redis.so
+ extension=${pkgs.php72Packages.apcu}/lib/php/extensions/apcu.so
+ zend_extension=${pkgs.php72}/lib/php/extensions/opcache.so
'';
+ phpPackage = pkgs.php72;
};
adminer = adminer.phpFpm;
ttrss = {
user = "wwwrun";
group = "wwwrun";
settings = ttrss.phpFpm.pool;
+ phpPackage = pkgs.php72;
};
wallabag = {
user = "wwwrun";
group = "wwwrun";
settings = wallabag.phpFpm.pool;
+ phpPackage = pkgs.php72;
};
yourls = {
user = "wwwrun";
group = "wwwrun";
settings = yourls.phpFpm.pool;
+ phpPackage = pkgs.php72;
};
rompr = {
user = "wwwrun";
group = "wwwrun";
settings = rompr.phpFpm.pool;
+ phpPackage = pkgs.php72;
};
shaarli = {
user = "wwwrun";
group = "wwwrun";
settings = shaarli.phpFpm.pool;
+ phpPackage = pkgs.php72;
};
dmarc-reports = {
user = "wwwrun";
settings = dmarc-reports.phpFpm.pool;
phpEnv = dmarc-reports.phpFpm.phpEnv;
phpOptions = config.services.phpfpm.phpOptions + ''
- extension=${pkgs.php}/lib/php/extensions/mysqli.so
+ extension=${pkgs.php72}/lib/php/extensions/mysqli.so
'';
+ phpPackage = pkgs.php72;
};
dokuwiki = {
user = "wwwrun";
group = "wwwrun";
settings = dokuwiki.phpFpm.pool;
+ phpPackage = pkgs.php72;
};
phpbb = {
user = "wwwrun";
group = "wwwrun";
settings = phpbb.phpFpm.pool;
+ phpPackage = pkgs.php72;
};
ldap = {
user = "wwwrun";
user = "wwwrun";
group = "wwwrun";
settings = kanboard.phpFpm.pool;
+ phpPackage = pkgs.php72;
};
grocy = {
user = "wwwrun";
group = "wwwrun";
settings = grocy.phpFpm.pool;
+ phpPackage = pkgs.php72;
};
};
-{ lib, config, ... }:
+{ lib, config, pkgs, ... }:
with lib;
let
cfg = config.services.phpApplication;
default = {};
description = "Pool environment to append";
};
+ phpPackage = mkOption {
+ type = attrsOf str;
+ default = pkgs.php;
+ description = "Php package to use";
+ };
phpOptions = mkOption {
type = lines;
default = "";
// optionalAttrs (icfg.phpSession) { "php_admin_value[session.save_path]" = "${icfg.varDir}/phpSessions"; }
// icfg.phpPool;
phpOptions = config.services.phpfpm.phpOptions + icfg.phpOptions;
- inherit (icfg) phpEnv;
+ inherit (icfg) phpEnv phpPackage;
}
) cfg.apps;