22.04 in April ships OpenSSL 3, and a PHP extension compiled against 1.1 does not load against it.
$ php -m | grep -c ssl
0
$ php -i 2>&1 | head -1
PHP Warning: Unable to load dynamic library 'redis.so'
... libssl.so.1.1: cannot open shared object file
# and the legacy provider, for an algorithm 3 removed:
# openssl.cnf
[provider_sect]
default = default_sect
legacy = legacy_sect
The extension case is a rebuild and is straightforward once diagnosed. The subtler one is an algorithm that OpenSSL 3 moved to the legacy provider — RC4, and some older key formats — which fails with a message about an unsupported algorithm rather than about a provider. Enabling the legacy provider globally weakens every connection the host makes, so a per-process configuration file is the containable version.