<? require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); $show_echo = true; //Показывать сообщения (для отладки) $set_time_limit = 7200; //Время работы скрипта в секундах $site_id = "s1"; //Индификатор сайта для которого создаем карту //Этот пример не является примером пошаговой индексации. //Для этого надо вызывать функцию ReIndexAll только один раз за запуск скрипта. //А промежуточное состояние (NS) можно сохранять например в файле. if(CModule::IncludeModule("search")) { set_time_limit(7200); if($show_echo) echo "Запуск! (set_time_limit = ".ini_get('max_execution_time').")<br />"; $NS = false; $NS = CSearch::ReIndexAll(false,10,$NS); while(is_array($NS)) $NS = CSearch::ReIndexAll(false,10,$NS); if($show_echo) echo "Проиндексированно: ".$NS."<br />"; //В этом массиве будут передаваться данные "прогресса". Он же послужит индикатором окончания исполнения. $NS = array(); //Задаем максимальную длительность одной итерации равной "бесконечности". $sm_max_execution_time = 0; //Это максимальное количество ссылок обрабатываемых за один шаг. //Установка слишком большого значения приведет к значительным потерям производительности. $sm_record_limit = 5000; do { $cSiteMap = new CSiteMap; //Выполняем итерацию создания, $NS = $cSiteMap->Create($site_id,array($sm_max_execution_time,$sm_record_limit),$NS); //Пока карта сайта не будет создана. } while(is_array($NS)); if($show_echo) echo "Карту успешно собрали. Готово."; } else { if($show_echo) echo "Ошибка: Не могу создать модуль поиска!"; } ?> |
Options -Indexes ErrorDocument 404 /404.php php_value display_errors 1 #Ради этого параметра и нужен данный файл, скрипт будет выполняться пока не закончиться секунды php_value max_execution_time 7200 |
Для TimeWeb Выполняемая команда: /usr/bin/wget -q -O - http://www.site.ru/auto/create_sitemap.php |
Для большей прозрачности подготовим руководство по данной процедуре.