GetGroupRight("perfmon"); if ($RIGHT == "D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); $data = array( "tuning" => array( "NAME" => GetMessage("PERFMON_PHP_TUNING_NAME"), "TITLE" => GetMessage("PERFMON_PHP_TUNING_TITLE"), "HEADERS" => array( array( "id" => "PARAMETER", "content" => GetMessage("PERFMON_PHP_TUNING_PARAMETER"), "default" => true, ), array( "id" => "VALUE", "content" => GetMessage("PERFMON_PHP_TUNING_VALUE"), "align" => "right", "default" => true, ), array( "id" => "RECOMMENDATION", "content" => GetMessage("PERFMON_PHP_TUNING_RECOMMENDATION"), "default" => true, ), ), "ITEMS" => array(), ), ); $php_version = phpversion(); $is_ok = version_compare($php_version, "5.3.0", ">="); $data["tuning"]["ITEMS"][] = array( "PARAMETER" => GetMessage("PERFMON_PHP_VERSION"), "IS_OK" => $is_ok, "VALUE" => ( $is_ok? $php_version: "".$php_version."" ), "RECOMMENDATION" => GetMessage("PERFMON_PHP_VERSION_REC", array("#value#" => "5.3.0")), ); $open_basedir = ini_get('open_basedir'); $is_ok = $open_basedir == ''; $data["tuning"]["ITEMS"][] = array( "PARAMETER" => "open_basedir", "IS_OK" => $is_ok, "VALUE" => " ".$open_basedir, "RECOMMENDATION" => GetMessage("PERFMON_PHP_OPEN_BASEDIR_REC"), ); if (version_compare($php_version, "5.1.0", ">=")) { $size = CPerfAccel::unformat(ini_get('realpath_cache_size')); $is_ok = ($size >= 4 * 1024 * 1024); $data["tuning"]["ITEMS"][] = array( "PARAMETER" => "realpath_cache_size", "IS_OK" => $is_ok, "VALUE" => ini_get('realpath_cache_size'), "RECOMMENDATION" => GetMessage("PERFMON_PHP_PATH_CACHE_REC2"), ); } $arKnownAccels = array( 'apc' => 'APC', 'xcache' => 'XCache', 'zend_accelerator' => 'Zend Accelerator', 'wincache' => 'Windows Cache Extension for PHP', 'zendopcache' => 'ZendOpcache', ); $allAccelerators = CPerfomanceMeasure::GetAllAccelerators(); if (!$allAccelerators) { $data["tuning"]["ITEMS"][] = array( "PARAMETER" => GetMessage("PERFMON_PHP_PRECOMPILER"), "IS_OK" => false, "VALUE" => GetMessage("PERFMON_PHP_PRECOMPILER_NOT_INSTALLED"), "RECOMMENDATION" => GetMessage("PERFMON_PHP_PRECOMPILER_REC")."
".implode("
", $arKnownAccels), ); } else { $workingAccel = null; foreach ($allAccelerators as $accel) { if ($accel->IsWorking()) { $workingAccel = $accel; $arRecommendations = $accel->GetRecommendations(); foreach ($arRecommendations as $i => $ar) $data["tuning"]["ITEMS"][] = $ar; break; } } if ($workingAccel === null) { foreach ($allAccelerators as $accel) { $arRecommendations = $accel->GetRecommendations(); foreach ($arRecommendations as $i => $ar) $data["tuning"]["ITEMS"][] = $ar; } } } $sTableID = "tbl_perfmon_panel"; $APPLICATION->SetTitle(GetMessage("PERFMON_PHP_TITLE")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); foreach ($data as $i => $arTable) { $lAdmin = new CAdminList($sTableID.$i); $lAdmin->BeginPrologContent(); if (array_key_exists("TITLE", $arTable)) echo "

".$arTable["TITLE"]."

\n"; $lAdmin->EndPrologContent(); $lAdmin->AddHeaders($arTable["HEADERS"]); $rsData = new CDBResult; $rsData->InitFromArray($arTable["ITEMS"]); $rsData = new CAdminResult($rsData, $sTableID.$i); $j = 0; while ($arRes = $rsData->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($j++, $arRes); $row->AddViewField("PARAMETER", $arRes["PARAMETER"]); if ($arRes["IS_OK"]) { $row->AddViewField("VALUE", $arRes["VALUE"]." "); $row->AddViewField("RECOMMENDATION", " "); } else { $row->AddViewField("VALUE", "".$arRes["VALUE"]." "); $row->AddViewField("RECOMMENDATION", $arRes["RECOMMENDATION"]); } } $lAdmin->CheckListMode(); $lAdmin->DisplayList(); } echo BeginNote(), "".GetMessage("PERFMON_PHP_SETTINGS")."", EndNote(); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>