-if (version_compare(PHP_VERSION, '8.0.0', '<'))
- die("This webserver is using PHP version ".PHP_VERSION." but we require at least PHP 8.0.0.<br>".
- "If you already installed PHP8 but are still seeing this error, then it means ".
- "apache/nginx/.. is loading an older PHP version. Eg. on Debian/Ubuntu you need ".
- "<code>apt-get install libapache2-mod-php8.2</code> (or a similar version) and ".
- "<code>apt-get remove libapache2-mod-php7.4</code> (or a similar version). ".
- "You may also need to choose again the PHP module to load in apache via <code>a2enmod php8.2</code>");
+if (ini_get('output_buffering') == true) {
+ ini_set('output_buffering', 'off');
+}
+if (ini_get('zlib.output_compression') == true) {
+ ini_set('zlib.output_compression', 'off');
+}
+
+function check_requirements()
+{
+ if (version_compare(PHP_VERSION, '8.0.0', '<'))
+ {
+ die("This webserver is using PHP version ".PHP_VERSION." but we require at least PHP 8.0.0.<br>".
+ "If you already installed PHP8 but are still seeing this error, then it means ".
+ "apache/nginx/.. is loading an older PHP version. Eg. on Debian/Ubuntu you need ".
+ "<code>apt-get install libapache2-mod-php8.2</code> (or a similar version) and ".
+ "<code>apt-get remove libapache2-mod-php7.4</code> (or a similar version). ".
+ "You may also need to choose again the PHP module to load in apache via <code>a2enmod php8.2</code>");
+ }
+
+ $loaded_extensions = get_loaded_extensions();
+ $required_extensions = ["mbstring", "sodium"];
+ $missing_extensions = [];
+ foreach ($required_extensions as $mod)
+ if (!in_array($mod, $loaded_extensions))
+ $missing_extensions[] = $mod;
+
+ if (count($missing_extensions) > 0)
+ {
+ $text = "<html>The following PHP module(s) need to be loaded:<br>\n<ul>\n";
+ $cmd = 'apt-get install';
+ foreach($missing_extensions as $mod)
+ {
+ $text .= "<li>$mod</li>\n";
+ $cmd .= " php-$mod";
+ }
+ $text .= "</ul>\n";
+ $text .= "You need to install/enable these PHP packages and restart the webserver.<br>".
+ "If you are on Debian/Ubuntu then run <code>$cmd</code> ".
+ "and restart your webserver (eg: <code>systemctl restart apache2</code> for apache).";
+ die($text);
+ }
+}
+
+check_requirements(); /* very early !! */