• Модуль: 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")); }