[Nix-dev] Fwd: Nix PHP / php-fpm patch suggestion / reminder

Marc Weber marco-oweber at gmx.de
Sat Aug 15 18:34:16 CEST 2015


I tried sending this mail to the mantainer robin at glob.in, but his email
address seems to be no longer current.

Thus who is maintaining PHP ?

--- Begin forwarded message from Marc Weber ---
From: Marc Weber <marco-oweber at gmx.de>
To: robin <robin at glob.in>
Date: Sat, 15 Aug 2015 16:30:53 +0000
Subject: Nix PHP suggestion:

You're listed as maintainer for PHP

If you use this code

    composableDerivation.composableDerivation {
      # merge some php plugins into the derivation, so that the plugins fit the PHP version
      mkDerivation = args: 
        let php = pkgs.stdenv.mkDerivation args;
        in php // callPackage ../../../top-level/php-packages.nix { inherit php; inherit fetchgit; }
    } (fixed: {

You can use php54.acpu for instance instead of creating php54 package
dictionary. This should make things simpler.


Question: How big is the interest in my php-fpm code currently?
===============================================================
I also have sophisticated php-fpm code which creates the the fpm
instances on its own depending on differing ini files and such because
it creates "php-ids" to find out which php's differ.

Usage apache looks like this, mind the nice syntax for xdebug:

    let php56 = pkgs.php56.merge { fpmSupport = true; gdSupport = true; };
    in

    phpfpmPools =  {

      "php56" = {
        daemonCfg.xdebug = { enable = true; port = "9000"; };

        # daemonCfg.opcache.enable = true;
        daemonCfg.apcu.enable = true;

        daemonCfg.php = php56;
        daemonCfg.phpIniLines = ''
          extension = gd.so
          always_populate_raw_post_data = -1
          post_max_size= ${max_size_mb}M
          upload_max_filesize= ${max_size_mb}M
          memory_limit = ${max_size_mb}M
          max_input_vars = 10000

          ; xdebug.profiler_enable = 1
          ; xdebug.profiler_output_dir=/pr/www/xdebug
          ; xdebug.profiler_output_name=cachegrind.out.%t.%R
        '';


        poolItemCfg = {
         inherit environment;
         user  = "marc";
         group  = "users";
         request_terminate_timeout = "${timeout_secs}s";
         listen = { owner = config.services.httpd.user; group = config.services.httpd.group; mode = "0700"; };

         slowlog = "/pr/www/slow-log-5.6";

          extraLines = ''
            php_admin_value[upload_max_filesize] = ${max_size_mb}M;
            request_terminate_timeout = ${timeout_secs}
          '';
        };
      };

    }

    FastCGIExternalServer /dev/shm/php5.6.fcgi -socket ${config.services.phpfpm.socketPathFun phpfpmPools.php56} -flush -idle-timeout ${timeout_secs}

Marc Weber


More information about the nix-dev mailing list