[ 'de' => 'PHP', 'en' => 'PHP Requirements', ], 'php_version_success' => [ 'de' => 'PHP-Version %s', 'en' => 'PHP version %s', ], 'php_version_failure' => [ 'de' => 'Gefundene PHP-Version %s ist inkompatibel. PHP %s – %s wird benötigt.', 'en' => 'PHP version %s is incompatible. PHP %s – %s is required.', ], 'php_x64_success' => [ 'de' => '64-Bit-Unterstützung', 'en' => '64-bit Support', ], 'php_x64_failure' => [ 'de' => '64-Bit-Unterstützung fehlt', 'en' => '64-bit support missing', ], 'php_extension_success' => [ 'de' => 'Erweiterung %s vorhanden', 'en' => '%s extension loaded', ], 'php_extension_failure' => [ 'de' => 'Erweiterung %s fehlt', 'en' => '%s extension missing', ], 'php_extension_gd_or_imagick_failure' => [ 'de' => 'Erweiterung für Bildverarbeitung (GD oder Imagick) fehlt', 'en' => 'Extension for image processing (GD or Imagick) missing', ], 'php_extension_gd_or_imagick_webp_failure' => [ 'de' => 'Unterstützung für WebP-Grafiken in %s fehlt', 'en' => 'Support for WebP images in %s missing', ], 'php_memory_limit_success' => [ 'de' => 'Arbeitsspeicher-Limit %s', 'en' => '%s memory limit', ], 'php_memory_limit_failure' => [ 'de' => 'Arbeitsspeicher-Limit %s ist nicht ausreichend. 128 MiB oder mehr wird benötigt.', 'en' => 'Memory limit %s is too low. It needs to be set to 128 MiB or more.', ], 'php_opcache_failure' => [ 'de' => 'OPcache ist aktiviert, aber die erforderlichen Verwaltungsfunktionen (opcache_reset, opcache_invalidate) sind deaktiviert.', 'en' => 'OPcache is enabled but the required management functions (opcache_reset, opcache_invalidate) are disabled.', ], 'mysql_requirements' => [ 'de' => 'MySQL', 'en' => 'MySQL Requirements', ], 'mysql_version' => [ 'de' => 'Bitte stellen Sie sicher, dass MySQL 8.0.30+ oder MariaDB 10.5.15+ mit InnoDB-Unterstützung vorhanden ist.', 'en' => 'Please make sure that MySQL 8.0.30+ or MariaDB 10.5.15+, with InnoDB support is available.', ], 'result' => [ 'de' => 'Ergebnis', 'en' => 'Summary', ], 'result_success' => [ 'de' => 'Alle Systemvoraussetzungen sind erfüllt. Sie können die Installation von WoltLab Suite beginnen.', 'en' => 'Your system fulfills all of WoltLab Suite\'s system requirements. You are ready to install WoltLab Suite!', ], 'result_failure' => [ 'de' => 'Die Systemvoraussetzungen sind nicht erfüllt. Bitte beachten Sie die oben genannten Informationen. Wenden Sie sich ggf. an Ihren Webhoster oder Ihren Serveradministrator.', 'en' => 'The system requirements are not met. Please note the above information and contact your web host or server administrator if necessary.', ], 'button_start_installation' => [ 'de' => 'Installation starten', 'en' => 'Start Installation', ], ]; function getPhrase($phrase, array $values = []) { global $language, $phrases; if (!isset($phrases[$phrase]) || !isset($phrases[$phrase][$language])) { return "[unknown:{$phrase}]"; } return \vsprintf($phrases[$phrase][$language], $values); } function checkPHPVersion() { global $phpVersionLowerBound, $phpVersionUpperBound; $comparePhpVersion = \preg_replace('/^(\d+\.\d+\.\d+).*$/', '\\1', \PHP_VERSION); return \version_compare($comparePhpVersion, $phpVersionLowerBound, '>=') && \version_compare($comparePhpVersion, \str_replace('x', '999', $phpVersionUpperBound), '<='); } function getMemoryLimit() { $memoryLimit = \ini_get('memory_limit'); // no limit if ($memoryLimit == "-1") { return -1; } else if (\function_exists('ini_parse_quantity')) { return \ini_parse_quantity($memoryLimit); } else { // completely numeric, PHP assumes byte if (\is_numeric($memoryLimit)) { return $memoryLimit; } // PHP supports 'K', 'M' and 'G' shorthand notation if (\preg_match('~^(\d+)\s*([KMG])$~i', $memoryLimit, $matches)) { switch (\strtoupper($matches[2])) { case 'K': return $matches[1] * 1024; case 'M': return $matches[1] * 1024 * 1024; case 'G': return $matches[1] * 1024 * 1024 * 1024; } } } return 0; } function checkMemoryLimit() { $memoryLimit = getMemoryLimit(); return $memoryLimit == -1 || $memoryLimit >= 128 * 1024 * 1024; } function checkX64() { return \PHP_INT_SIZE == 8; } function formatFilesizeBinary($byte): string { $symbol = 'Byte'; if ($byte >= 1024) { $byte /= 1024; $symbol = 'KiB'; } if ($byte >= 1024) { $byte /= 1024; $symbol = 'MiB'; } if ($byte >= 1024) { $byte /= 1024; $symbol = 'GiB'; } if ($byte >= 1024) { $byte /= 1024; $symbol = 'TiB'; } return \floor($byte) . ' ' . $symbol; } function checkResult() { global $requiredExtensions; if (!checkPHPVersion() || !checkX64() || !checkMemoryLimit() || !checkOpcache()) { return false; } foreach ($requiredExtensions as $extension) { if (!\extension_loaded($extension)) { return false; } } $hasSufficientImageLibrary = false; if (\extension_loaded('imagick') && \in_array('WEBP', \Imagick::queryFormats())) { $hasSufficientImageLibrary = true; } if (\extension_loaded('gd') && !empty(\gd_info()['WebP Support'])) { $hasSufficientImageLibrary = true; } if (!$hasSufficientImageLibrary) { return false; } return true; } function checkInstallFile() { return @\file_exists('install.php'); } function checkOpcache() { if (\extension_loaded('Zend Opcache') && \ini_get('opcache.enable')) { if (!\function_exists('\opcache_reset') || !\function_exists('\opcache_invalidate')) { return false; } } return true; } ?> WoltLab Suite System Requirements Test
WoltLab Suite

WoltLab Suite System Requirements Test