diff --git a/doc/languages-frameworks/php.section.md b/doc/languages-frameworks/php.section.md index abf91a31769..101f7b043ff 100644 --- a/doc/languages-frameworks/php.section.md +++ b/doc/languages-frameworks/php.section.md @@ -9,18 +9,24 @@ Several versions of PHP are available on Nix, each of which having a wide variety of extensions and libraries available. -The attribute `php` refers to the version of PHP considered most -stable and thoroughly tested in nixpkgs for any given release of -NixOS. Note that while this version of PHP may not be the latest major -release from upstream, any version of PHP supported in nixpkgs may be -utilized by specifying the desired attribute by version, such as -`php74`. +The different versions of PHP that nixpkgs provides are located under +attributes named based on major and minor version number; e.g., +`php74` is PHP 7.4. Only versions of PHP that are supported by upstream for the entirety of a given NixOS release will be included in that release of NixOS. See [PHP Supported Versions](https://www.php.net/supported-versions.php). +The attribute `php` refers to the version of PHP considered most +stable and thoroughly tested in nixpkgs for any given release of +NixOS - not necessarily the latest major release from upstream. + +All available PHP attributes are wrappers around their respective +binary PHP package and provide commonly used extensions this way. The +real PHP 7.4 package, i.e. the unwrapped one, is available as +`php74.unwrapped`; see the next section for more details. + Interactive tools built on PHP are put in `php.packages`; composer is for example available at `php.packages.composer`. @@ -30,12 +36,7 @@ opcache extension shipped with PHP is available at `php.extensions.opcache` and the third-party ImageMagick extension at `php.extensions.imagick`. -The different versions of PHP that nixpkgs provides are located under -attributes named based on major and minor version number; e.g., -`php74` is PHP 7.4 with commonly used extensions installed, -`php74base` is the same PHP runtime without extensions. - -#### Installing PHP with packages +#### Installing PHP with extensions A PHP package with specific extensions enabled can be built using `php.withExtensions`. This is a function which accepts an anonymous @@ -68,7 +69,7 @@ php.withExtensions ({ all, ... }: with all; [ opcache imagick ]) `php.withExtensions` provides extensions by wrapping a minimal php base package, providing a `php.ini` file listing all extensions to be -loaded. You can access this package through the `php.unwrappedPhp` +loaded. You can access this package through the `php.unwrapped` attribute; useful if you, for example, need access to the `dev` output. The generated `php.ini` file can be accessed through the `php.phpIni` attribute. diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix index 57a0b716979..a67a26f083b 100644 --- a/pkgs/development/interpreters/php/default.nix +++ b/pkgs/development/interpreters/php/default.nix @@ -302,5 +302,5 @@ let php72 = php72base.withExtensions defaultPhpExtensionsWithHash; in { - inherit php72base php73base php74base php72 php73 php74; + inherit php72 php73 php74; } diff --git a/pkgs/servers/http/unit/default.nix b/pkgs/servers/http/unit/default.nix index f8992bf166b..0779a31f106 100644 --- a/pkgs/servers/http/unit/default.nix +++ b/pkgs/servers/http/unit/default.nix @@ -1,8 +1,8 @@ { stdenv, fetchFromGitHub, which , withPython2 ? false, python2 , withPython3 ? true, python3, ncurses -, withPHP72 ? false, php72base -, withPHP73 ? true, php73base +, withPHP72 ? false, php72 +, withPHP73 ? true, php73 , withPerl528 ? false, perl528 , withPerl530 ? true, perl530 , withPerldevel ? false, perldevel @@ -26,8 +26,8 @@ let fpmSupport = false; }; - php72-unit = php72base.override phpConfig; - php73-unit = php73base.override phpConfig; + php72-unit = php72.override phpConfig; + php73-unit = php73.override phpConfig; in stdenv.mkDerivation rec { version = "1.16.0"; pname = "unit"; @@ -71,8 +71,8 @@ in stdenv.mkDerivation rec { postConfigure = '' ${optionalString withPython2 "./configure python --module=python2 --config=${python2}/bin/python2-config --lib-path=${python2}/lib"} ${optionalString withPython3 "./configure python --module=python3 --config=${python3}/bin/python3-config --lib-path=${python3}/lib"} - ${optionalString withPHP72 "./configure php --module=php72 --config=${php72-unit.dev}/bin/php-config --lib-path=${php72-unit}/lib"} - ${optionalString withPHP73 "./configure php --module=php73 --config=${php73-unit.dev}/bin/php-config --lib-path=${php73-unit}/lib"} + ${optionalString withPHP72 "./configure php --module=php72 --config=${php72-unit.unwrapped.dev}/bin/php-config --lib-path=${php72-unit}/lib"} + ${optionalString withPHP73 "./configure php --module=php73 --config=${php73-unit.unwrapped.dev}/bin/php-config --lib-path=${php73-unit}/lib"} ${optionalString withPerl528 "./configure perl --module=perl528 --perl=${perl528}/bin/perl"} ${optionalString withPerl530 "./configure perl --module=perl530 --perl=${perl530}/bin/perl"} ${optionalString withPerldevel "./configure perl --module=perldev --perl=${perldevel}/bin/perl"} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7f2c34039b4..c960ebcf7c3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9496,7 +9496,7 @@ in inherit (callPackage ../development/interpreters/php { stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv; - }) php74 php73 php72 php74base php73base php72base; + }) php74 php73 php72; picoc = callPackage ../development/interpreters/picoc {};