PHP: Difference between revisions
imported>JasonWoof explain configuring extensions without apache too |
imported>Onny Add notes on configuring php-fpm |
||
Line 10: | Line 10: | ||
== Setting custom php.ini configurations == | == Configuration == | ||
==== 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: | The `buildEnv` attribute on php can add extra configuration options. For instance, to set a memory_limit in the NixOS configuration.nix: | ||
Line 23: | Line 25: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Setting custom plugins and php.ini configurations == | In case of using php-fpm, the following example enables error reporting. Use this only in development environments | ||
<syntaxhighlight lang="nix> | |||
services.phpfpm.phpOptions = '' | |||
display_errors = on; | |||
''; | |||
</syntaxhighlight> | |||
=== Setting custom plugins and php.ini configurations === | |||
In this example we install the [[xdebug]] extension, and add a php.ini directive to enable it. | In this example we install the [[xdebug]] extension, and add a php.ini directive to enable it. |
Revision as of 17:27, 30 October 2022
Install
environment.systemPackages = with pkgs; [ php ];
See nix search php
(nix search nixpkgs php
with Flakes) for additional versions like php74
, etc.
Configuration
= 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
];
In case of using php-fpm, the following example enables error reporting. Use this only in development environments
services.phpfpm.phpOptions = ''
display_errors = on;
'';
Setting custom plugins and php.ini configurations
In this example we install the xdebug extension, and add a php.ini directive to enable it.
environment.systemPackages = [
(pkgs.php.buildEnv {
extensions = ({ enabled, all }: enabled ++ (with all; [
xdebug
]));
extraConfig = ''
xdebug.mode=debug
'';
})
Apache, plugins, settings
Here's how to configure Apache to use a particular PHP configuration/version/etc
# 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
'';
};