- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/site_checker.php
- Класс: CSiteCheckerTest
- Вызов: CSiteCheckerTest::check_php_settings
function check_php_settings()
{
$strError = '';
if (version_compare($v = phpversion(), self::MIN_PHP_VER, '<'))
{
$strError = GetMessage('SC_VER_ERR', array('#CUR#' => $v, '#REQ#' => self::MIN_PHP_VER))."
";
}
$arRequiredParams = array(
'safe_mode' => 0,
'file_uploads' => 1,
'wincache.chkinterval' => 0,
'session.auto_start' => 0,
'magic_quotes_runtime' => 0,
'magic_quotes_sybase' => 0,
'magic_quotes_gpc' => 0,
'arg_separator.output' => '&',
'register_globals' => 0,
'zend.multibyte' => 0,
);
if (extension_loaded('xcache'))
{
$arRequiredParams['xcache.cacher'] = 0;
$arRequiredParams['xcache.stat'] = 1;
}
foreach($arRequiredParams as $param => $val)
{
$cur = ini_get($param);
if (strtolower($cur) == 'on')
$cur = 1;
elseif (strtolower($cur) == 'off')
$cur = 0;
if ($cur != $val)
$strError .= GetMessage('SC_ERR_PHP_PARAM', array('#PARAM#' => $param, '#CUR#' => $cur ? htmlspecialcharsbx($cur) : 'off', '#REQ#' => $val ? 'on' : 'off'))."
";
}
$param = 'opcache.revalidate_freq';
if (($cur = ini_get($param)) <> 0)
$strError .= GetMessage('SC_ERR_PHP_PARAM', array('#PARAM#' => $param, '#CUR#' => htmlspecialcharsbx($cur), '#REQ#' => '0'))."
";
$param = 'default_socket_timeout';
if (($cur = ini_get($param)) < 60)
$strError .= GetMessage('SC_ERR_PHP_PARAM', array('#PARAM#' => $param, '#CUR#' => htmlspecialcharsbx($cur), '#REQ#' => '60'))."
";
if (($m = ini_get('max_input_vars')) && $m < 10000)
$strError .= GetMessage('ERR_MAX_INPUT_VARS',array('#MIN#' => 10000,'#CURRENT#' => $m))."
";
if (IsModuleInstalled('intranet'))
{
$vm = getenv('BITRIX_VA_VER');
if (!$vm)
$strError .= GetMessage('ERR_NO_VM')."
";
else
{
$last_version = '7.3.0';
$tmp = $_SERVER['DOCUMENT_ROOT'].'/bitrix/tmp/bitrix-env.version';
if (!file_exists($tmp) || time() - filemtime($tmp) > 86400)
{
$ob = new CHTTP();
$ob->http_timeout = 5;
$ob->Download('http://repos.1c-bitrix.ru/yum/bitrix-env.version', $tmp);
}
if (file_exists($tmp))
$last_version_remote = str_replace('-', '.', file_get_contents($tmp));
if (version_compare($last_version_remote, $last_version, '>'))
$last_version = $last_version_remote;
if (version_compare($vm, $last_version,'<'))
$strError .= GetMessage('ERR_OLD_VM', array('#CURRENT#' => $vm, '#LAST_VERSION#' => $last_version))."
";
}
}
// check_divider
$locale_info = localeconv();
$delimiter = $locale_info['decimal_point'];
if ($delimiter != '.')
$strError .= GetMessage('SC_DELIMITER_ERR',array('#VAL#' => $delimiter)).'
';
// check_precision
if (1234567891 != (string) doubleval(1234567891))
$strError .= GetMessage("MAIN_SC_ERROR_PRECISION").'
';
// check_suhosin
if (in_array('suhosin',get_loaded_extensions()) && !ini_get('suhosin.simulation'))
$strError .= GetMessage('SC_WARN_SUHOSIN',array('#VAL#' => ini_get('suhosin.simulation') ? 1 : 0)).'
';
// check_backtrack_limit
$param = 'pcre.backtrack_limit';
$cur = self::Unformat(ini_get($param));
ini_set($param,$cur + 1);
$new = ini_get($param);
if ($new != $cur + 1)
$strError .= GetMessage("MAIN_SC_CANT_CHANGE").'
';
if ($strError)
return $this->Result(false, $strError);
return $this->Result(true, GetMessage("MAIN_SC_CORRECT_SETTINGS"));
}