Source
xxxxxxxxxx
'error' => _('PHP gettext extension missing (PHP configuration parameter --with-gettext). Translations will not be available.')
<?php
/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
/**
* Class to operate with frontend setup information.
* Currently only setup requirements are checked.
*/
class CFrontendSetup {
const MIN_PHP_VERSION = '8.0.0';
const MIN_PHP_MEMORY_LIMIT = '134217728'; // 128 * ZBX_MEBIBYTE;
const MIN_PHP_POST_MAX_SIZE = '16777216'; // 16 * ZBX_MEBIBYTE;
const MIN_PHP_UPLOAD_MAX_FILESIZE = '2097152'; // 2 * ZBX_MEBIBYTE;
const MIN_PHP_MAX_EXECUTION_TIME = 300;
const MIN_PHP_MAX_INPUT_TIME = 300;
const MIN_PHP_GD_VERSION = '2.0';
const MIN_PHP_LIBXML_VERSION = '2.6.15';
const REQUIRED_PHP_ARG_SEPARATOR_OUTPUT = '&';
/**
* Check OK, setup can continue.
*/
const CHECK_OK = 1;
/**
* Check failed, but setup can still continue. A warning will be displayed.
*/
const CHECK_WARNING = 2;
/**
* Check failed, setup cannot continue. An error will be displayed.
*/
const CHECK_FATAL = 3;
/**
* Default language, used by checkLocaleSet() check.
*/
private $default_lang = '';
/**
* Set default language, used by checkLocaleSet() check.
*
* @param string $default_lang
*/
public function setDefaultLang(string $default_lang): void {
$this->default_lang = $default_lang;
}
/**
* Perform all requirements checks.
*
* @return array
*/
public function checkRequirements() {
$result = [];
$result[] = $this->checkPhpVersion();
$result[] = $this->checkPhpMemoryLimit();
$result[] = $this->checkPhpPostMaxSize();
$result[] = $this->checkPhpUploadMaxFilesize();
$result[] = $this->checkPhpMaxExecutionTime();
$result[] = $this->checkPhpMaxInputTime();
$result[] = $this->checkPhpDatabases();
$result[] = $this->checkPhpBcmath();
$result[] = $this->checkPhpMbstring();
if (extension_loaded('mbstring')) {
$result[] = $this->checkPhpMbstringFuncOverload();
}
$result[] = $this->checkPhpSockets();
$result[] = $this->checkPhpGd();
$result[] = $this->checkPhpGdPng();
$result[] = $this->checkPhpGdJpeg();
$result[] = $this->checkPhpGdGif();
$result[] = $this->checkPhpGdFreeType();
$result[] = $this->checkPhpLibxml();
$result[] = $this->checkPhpXmlWriter();
$result[] = $this->checkPhpXmlReader();
$result[] = $this->checkPhpLdapModule();