#format linkexchange_wiki #language ru #pragma alternate hreflang=en;hrefpage=Documentation #pragma description Документация Chestnut FTP Search. Установка, обновление, использование. #pragma keywords документация Chestnut FTP Search, установка Chestnut FTP Search, обновление, использование #pragma xxx = Chestnut FTP Search = <> == Установка == Прежде всего убедитесь что в системе установлены все зависимости, описанные в [[Системные требования|системных требованиях]]. === Создание базы данных === Создайте базу данных с предпочтительной кодировкой. Для PostgreSQL это выглядит примерно так: {{{ # su -c psql postgres postgres=# CREATE DATABASE название_вашей_бд WITH ENCODING 'utf8'; postgres=# CREATE ROLE ваш_пользователь WITH PASSWORD 'ваш_пароль' LOGIN; postgres=# GRANT ALL PRIVILEGES ON DATABASE название_вашей_бд TO ваш_пользователь; }}} Имейте введу что кодировка базы данных должна совпадать с кодировкой локали кластера баз данных, иначе нечувствительные к регистру функции будут работать не корректно. Для MySQL это выглядит примерно так: {{{ $ mysql -u root mysql> CREATE DATABASE название_вашей_бд CHARACTER SET cp1251 COLLATE cp1251_general_cs; mysql> GRANT ALL PRIVILEGES ON название_вашей_бд.* TO 'ваш_пользователь'@'localhost' IDENTIFIED BY 'ваш_пароль'; }}} Заметьте что не рекомендуется использовать многобайтные кодировки, такие как UTF-8, с MySQL, потому что регулярные выражения в MySQL не поддреживают многобайтные кодировки. Также заметьте что требуется чувствительный к регистру collation. === Установка файлов и создание схемы БД === Распакуйте архив и запустить скрипт configure.py: {{{ $ tar xjf chestnut-ftp-search-ВЕРСИЯ.tar.bz2 $ cd chestnut-ftp-search $ ./configure.py create-config $ ./configure.py create-schema }}} Это создаст конфигурационный файл config.py и таблицы базы данных. Параметры базы данных будут запрошены интерактивно. Отредактируйте config.py в соответствии с вашими предпочтениями. === Добавления записи crontab === Для поддержания индексов в актуальном состоянии вам нужно добавить следующую запись crontab: {{{ $ crontab -e 0 * * * * /ПУТЬ/К/chestnut-ftp-search/indexer.py }}} Заметьте, что вы можете указывать короткий период, потому что действительный период индексации хранится в базе данных для каждого отдельного сервера (вы можете изменить его при помощи srvman.py). Also note that you may run indexer as daemon process (with --daemon option). The crontab entry for indexer is not needed If you run indexer as daemon process. Также заметьте что вы можете запускать индексировщик как фоновый процесс (с опцией --daemon), при этом запись crontab не нужна. Если индикатор состояния сервера включен в вашей конфигурации, вам нужно периодически запускать пинговщик для обновления информации о состоянии: {{{ */5 * * * * /ПУТЬ/К/chestnut-ftp-search/pinger.py }}} === Заполнение базы данных === Добавьте информацию о всех FTP серверах, которые вы хотите индексировать: {{{ $ ./srvman.py add ftp.example1.net $ ./srvman.py add ftp.example2.net $ ./srvman.py add ftp.example3.net ... }}} Чтобы получить список всех доступных опций, выполните: {{{ $ ./srvman.py add --help }}} Теперь вы можете приступить к индексированию немедленно используя indexer.py или подождать пока cron запустит его. Вы можете запускать одновременно несколько процессов индексировщика, и они не будут конфликтовать, так как они сами разберутся какие процессы какие серверы будут индексировать. === Доступность по HTTP === ==== Используя Apache и FastCGI ==== Необходимо чтобы модули mod_rewrite и mod_fastcgi или mod_fcgid были установлены и включены. Скопируйте htaccess-fcgid в .htaccess Для получения информации о других методах размещения смотрите http://webpy.org/install, http://webpy.org/cookbook == Обновление == Чтобы обновить Chestnut FTP Search распакуйте архив с новой версией в каталог установки перезаписывая существующие файлы: {{{ $ cd /ВАШ/КАТАЛОГ/УСТАНОВКИ $ tar xjf /ПУТЬ/К/chestnut-ftp-search-ВЕРСИЯ.tar.bz2 --strip-components 1 }}} Далее выполните команду миграции: {{{ $ ./configure.py migrate ПРЕДЫДУЩАЯ_ВЕРСИЯ }}} Также проверьте файл UPGRADE на замечания по обновлению конкретных версий. == Использование == === Как работает частичное совпадение === При поиске с режимом частичного совпадения строка запроса представляет собой любую подстроку в имени файла. === Как работает точное совпадение === При поиске с режимом точного совпадения строка запроса представляет собой точное имя файла. === Как работают регулярные выражения === При поиске с режимом регулярного выражения строка запроса представляет собой POSIX-совместимое регулярное выражение. Фактически синтаксис зависит от сервера базы данных. === Как работает шаблон оболочки === При поиске в режиме шаблона оболочки стока запроса представляет собой шаблон оболочки. Шаблон оболочки может содержать метасимволы такие как: * (совпадает с любым количеством любых символов, и даже с их отсутствием), ? (совпадает с любым одним символом), [строка] (совпадает с одним и только одним символом, содержащимся в строке), {строка1,строка2,...} (совпадает с одним и только одним вариантом из: строка1,строка2,...). === Как работает поиск с транслитерацией === При поиске с транслитерацией строка запроса транслируется в символы ASCII, и оба варианта: оригинал и транслит используются при поиске. На данный момент только символы кириллицы и некоторые из набора Latin 1 могут быть транслированы в символы ASCII. Заметьте, что по умолчанию поиск с транслитерацией отключен. Чтобы разрешить пользователям использовать поиск с транслитерацией установите TRANSLIT_ENABLE = True в config.py.