php: switch to nts by default

This commit is contained in:
Pol Dellaiera 2022-10-03 08:25:17 +02:00
parent fc07622617
commit 364a7d2920
No known key found for this signature in database
GPG key ID: D476DFE9C67467CA
4 changed files with 22 additions and 2 deletions

View file

@ -130,6 +130,15 @@
PHP now defaults to PHP 8.1, updated from 8.0.
</para>
</listitem>
<listitem>
<para>
PHP is now built <literal>NTS</literal> (Non-Thread Safe)
style by default, for Apache and <literal>mod_php</literal>
usage we still enable <literal>ZTS</literal> (Zend Thread
Safe). This has been a common practice for a long time in
other distributions.
</para>
</listitem>
<listitem>
<para>
<literal>protonup</literal> has been aliased to and replaced

View file

@ -53,6 +53,10 @@ In addition to numerous new and upgraded packages, this release has the followin
- PHP now defaults to PHP 8.1, updated from 8.0.
- PHP is now built `NTS` (Non-Thread Safe) style by default, for Apache and
`mod_php` usage we still enable `ZTS` (Zend Thread Safe). This has been a
common practice for a long time in other distributions.
- `protonup` has been aliased to and replaced by `protonup-ng` due to upstream not maintaining it.
- Perl has been updated to 5.36, and its core module `HTTP::Tiny` was patched to verify SSL/TLS certificates by default.

View file

@ -18,7 +18,7 @@ let
sed -i $out/bin/apachectl -e 's|$HTTPD -t|$HTTPD -t -f /etc/httpd/httpd.conf|'
'';
php = cfg.phpPackage.override { apacheHttpd = pkg; };
php = cfg.phpPackage.override { apxs2Support = true; apacheHttpd = pkg; };
phpModuleName = let
majorVersion = lib.versions.major (lib.getVersion php);
@ -660,6 +660,13 @@ in
`services.httpd.virtualHosts.<name>.useACMEHost` are mutually exclusive.
'';
}
{
assertion = cfg.enablePHP -> php.ztsSupport;
message = ''
The php package provided by `services.httpd.phpPackage` is not built with zts support. Please
ensure the php has zts support by settings `services.httpd.phpPackage = php.override { ztsSupport = true; }`
'';
}
] ++ map (name: mkCertOwnershipAssertion {
inherit (cfg) group user;
cert = config.security.acme.certs.${name};

View file

@ -43,7 +43,7 @@ let
, phpdbgSupport ? true
# Misc flags
, apxs2Support ? !stdenv.isDarwin
, apxs2Support ? false
, argon2Support ? true
, cgotoSupport ? false
, embedSupport ? false