yura3d |
Отправлено: 16 февраля 2009 — 21:00
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
Думаю многие пользователи сталкивались с необходимостью постоянно индексировать поиск по форуму через админку. Именно с целью автоматизировать этот процесс написал небольшой скрипт, который может запускаться через Cron (планировщик задач на Вашем сервере) и выполнять работу по индексации через определённый промежуток времени (который Вы выбираете сами) автоматически.
Скрипт нужно закачать в папку с форумом и переименовать (с целью запрета обычным пользователям его запускать), сохранив при этом расширение php. Для настройки запуска скрипта через Cron обратитесь к справке Вашего хостинга. В большинстве случаев Вам потребуется указать полные пути к интерпретатору PHP и этому скрипту на сервере, а также дать команду на выполнение скрипта через интерпретатор. На моём сервере эта команда для Cron выглядит так:
CODE:/usr/bin/php -q /home2/yura3d/public_html/community/cron.php
Для Вашего сервера, разумеется, могут быть отличия.
С целью снижения нагрузки на сервер индексация происходит постепенно, за каждый запуск скрипта индексации подвергается только один раздел, разделы индексируются по очереди. Чтобы не допускать излишней нагрузки на сервер рекомендую назначить выполнение данного скрипта не чаще одного раза за 10 - 30 минут (для форумов с более чем 10 000 сообщений лучше увеличить время до 1 - 2 часов).
Если при запуске скрипта через Cron на Ваш e-mail приходят уведомления о невозможности найти файл со списком разделов форума, то проделайте следующее. Создайте в корневой папке форума файл path.php следующего содержания:
CODE:<?=str_replace('\\', '/', getcwd()).'/'?>
Затем запустите этот файл, набрав его адрес URL. В браузере отобразится полный путь к папке форума относительно корня сервера. Скопируйте этот путь в скрипт индексации cron.php в строку:
CODE:define('PATH', '/path/to/forum/');
В этой строке вместо /path/to/forum/ должна быть указана та строка, которая появляется после запуска path.php (скопируйте её без изменений). После этого можете удалить скрипт path.php.
Вроде бы всё сказал, этот скрипт уже работает на данном форуме, так что поиск у нас теперь своевременно индексируется без моего участия. Как обычно, все вопросы, замечания, баги в эту тему. |
|
|
yura3d |
Отправлено: 23 февраля 2009 — 16:25
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
lisiycat пишет:yura3d, сделал все как и написано - прописал полный путь (узнал у хостера), установил выполнять каждый час.
Заметил, что не индексируется форум.
Сегодня поставил отметку в ISP Manager хостера "Отправлять отчет по е-мейл".
Только что пришло письмо с таким содержанием:
CODE:Could not write in the file <b>search/last.php</b>
Забыл дописать к инструкции, что на папку search необходимо поставить права на запись |
|
|
yura3d |
Отправлено: 23 февраля 2009 — 18:37
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
lisiycat пишет:yura3d пишет:Забыл дописать к инструкции, что на папку search необходимо поставить права на запись
Поставил - результат тот же.
Обратил внимание, что в папке search/ отсутствует файл last.php
Попробуйте запустить скрипт индексации через браузер. И обращайте внимание на даты файлов в папке search/db, несколько из этих файлов (относящиеся к одному разделу) должны изменять дату |
|
|
yura3d |
Отправлено: 23 февраля 2009 — 19:15
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
lisiycat пишет:Некоторые файлы в папке search/db, действительно изменяют свою дату:
46_finfо, 46_hash, 46_hashwords, 46_sitewords, 46_word_ind
Это свидетельствует о том, что раздел с id=46 проиндексировался
lisiycat пишет:Запустил через браузер - ничего не произошло.
В 21.00 (по Киеву) опять письмо с той же ошибкой.
Скиньте в личку ссылку на этот файл и ещё желательно данные для доступа через FTP, как будет свободное время, посмотрю что там не так. Очень странно |
|
|
yura3d |
Отправлено: 18 апреля 2009 — 10:14
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
mastersound пишет:настроил все со службой поддержки сервака. Скрипт вмдимо сработал, пришло уведомление
CODE:Could not write in the file <b>search/last.php</b>
что это значит? откуда взялось указание на last.php ? Такого файла нет...
Всё верно, только нужно выставить на папку search права на запись |
|
|
yura3d |
Отправлено: 18 апреля 2009 — 10:21
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
mastersound пишет:права стоят 750, т.е.
Да численное значение не важно, тут многое от настроек сервера зависит. На папку search должны стоять такие же права, как на папки data, members и т д.
mastersound пишет:а файл last.php надо самому создать в этой папке?
Скрипт должен создать автоматически, если будут проблемы с правами, можно попытаться создать самому |
|
|
|