PHP: Difference between revisions

From NixOS Wiki
imported>Jasoncarr0
mNo edit summary
imported>JasonWoof
show how to configure apache to use your php version/settings/plugins
Line 8: Line 8:


See <code>nix search php</code> (<code>nix search nixpkgs php</code> with [[Flakes]]) for additional versions like <code>php74</code>, etc.
See <code>nix search php</code> (<code>nix search nixpkgs php</code> with [[Flakes]]) for additional versions like <code>php74</code>, etc.


== Setting custom php.ini configurations ==
== Setting custom php.ini configurations ==
Line 20: Line 21:
     php
     php
   ];
   ];
</syntaxhighlight>
== Apache, plugins, settings ==
<syntaxhighlight lang="nix>
# in /etc/nixos/configuration.nix (not inside systemPackages)
services.httpd.phpPackage = pkgs.php.buildEnv {
    extensions = ({ enabled, all }: enabled ++ (with all; [
        xdebug
    ]));
    extraConfig = ''
        xdebug.mode=debug
    '';
};
</syntaxhighlight>
</syntaxhighlight>

Revision as of 20:51, 27 April 2022

Install

  environment.systemPackages = with pkgs; [ php ];

See nix search php (nix search nixpkgs php with Flakes) for additional versions like php74, etc.


Setting custom php.ini configurations

The `buildEnv` attribute on php can add extra configuration options. For instance, to set a memory_limit in the NixOS configuration.nix:

environment.systemPackages =
  let
    php = pkgs.php.buildEnv { extraConfig = "memory_limit = 2G"; };
  in [
    php
  ];


Apache, plugins, settings

# in /etc/nixos/configuration.nix (not inside systemPackages)
services.httpd.phpPackage = pkgs.php.buildEnv {
    extensions = ({ enabled, all }: enabled ++ (with all; [
        xdebug
    ]));
    extraConfig = ''
        xdebug.mode=debug
    '';
};