When using PHP 8.4
On all my sites (42) i upgraded to PHP8.4 with joomla 6.0.2.
After that we got alot of error (500 server error) and the only way to solve this problem was to disable opcache in the php.ini
Is this a bug ?
[08/Jan/2026:10:18:36 +0100] "GET / HTTP/2.0" 500 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0" 2026/01/08 10:18:36 [error] 12136#12136: *12 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught TypeError: iterator_count(): Argument #1 ($iterator) must be of type Traversable|array, Closure given in /var/www/website/libraries/vendor/paragonie/sodium_compat/autoload-php7.php:9 Stack trace: #0 /var/www/website/libraries/vendor/paragonie/sodium_compat/autoload-php7.php(9): iterator_count() #1 /var/www/website/libraries/vendor/paragonie/sodium_compat/autoload.php(41): require_once('...') #2 /var/www/website/libraries/vendor/composer/autoload_real.php(41): require('...') #3 /var/www/website/libraries/vendor/composer/autoload_real.php(45): {closure:ComposerAutoloaderInitf577684c10af21b55e694ebddac803ca::getLoader():37}() #4 /var/www/website/libraries/vendor/autoload.php(25): ComposerAutoloaderInitf577684c10af21b55e694ebddac803ca::getLoader() #5 /var/www/website/libraries/bootstrap.php(34): require('...') #6 /var/www/website/includes/framework.php(17): require_once('...') #7 /var/www/website/includes/app.php(29): require_" while reading response header from upstream, client: 2a02:22a0:eee3:cb00:469c:aa9c:365c:89f, server: oa-judo.nl, request: "GET / HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php8.4-fpm.sock:", host: "oa-judo.nl"
The way we fixed it in the php.ini:
[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=0
; Determines if Zend OPCache is enabled for the CLI version of PHP
opcache.enable_cli=0
| Labels |
Added:
No Code Attached Yet
|
||
What is the file /var/www/website/libraries/vendor/paragonie/sodium_compat/autoload-php7.php?
Can you compare it with the same file from installation package?
Also ensure that PHP 8.4 is compiled with correct sodium extension.
I compared them with the install zip, and they match so they are the same.
php -i | grep sodium
sodium
sodium support => enabled
libsodium headers version => 1.0.18
libsodium library version => 1.0.18
not much help but i enabled opcache on my local server and also got a 500 but with a different error and just as useless as it suggested a specific error in a spoecific file that did not have the referenced code.
however that was just by setting opcache.enable=1
when i configured opcache completely with the following then it worked correctly
opcache.enable=1
opcache.validate_timestamps=1
opcache.revalidate_freq=0
So i suspect it was a configuration issue on your server and not something joomla specific
The only thing I can contribute: I don't have this on my own servers, also with fastcgi, opcache is enabled.