Настройка параметров

Описание параметров конфигурации

Описание параметров действительно для версий, начиная с 0.9.0.fb20140720, для более ранних настройки путей отличаются.

Все настройки хранятся в 3-х файлах config_default.php, config_local.php, config.php

  • config_default.php - все общие для форка и оригинального проекта параметры. Их описание надо искать на сайте оригинального проекта

  • config.php - содержит только параметры, специфичные для форка COPSFB

  • config_local.php - содержит настройки путей, индивидуальные для каждой установки сервера

Обязательные к настройке параметры

Строго обязательные к настройке после установки пакета параметры - это путь к библиотеке, путь к БД и тип используемой БД - Calibre или MyHomeLib. Эти параметры вынесены в файл config_local.php. В этом же файле параметр, какой тип библиотеки используется

Описание и примеры:

    1. $config['use_myhomelib_base'] = TRUE;

Тип используемой БД: FALSE - Calibre, TRUE - MyHomeLib

    1. $config['calibre_directory'] = "c:\\Books\\lib.rus.ec\\"

$config['calibre_directory'] = "/volume1/Books/lib.rus.ec/"

Примеры для Windows / linux соответственно.

Корневая директория архивов книг. Если БД - calibre, то в этой директории лежит файл metadata.db, для MyHomeLib это путь к папке с zip-архивами.

ВНИМАНИЕ! Путь обязательно должен заканчиваться слешем.

ВНИМАНИЕ! Для linux систем убедитесь, что пользователь, под которым запущен web-сервер, имеет права доступа к данной директории и эта директория прописана в open_basedir в настройках PHP.

    1. $config['myhomelib_database'] = './lib/librusec_local_fb2.hlc2';

Имя файла базы данных MyHomeLib с полным путем к нему. Параметр используется, только если БД MyHomeLib.

ВНИМАНИЕ! Для linux систем убедитесь, что пользователь, под которым запущен web-сервер, имеет права доступа к данному файлу и эта директория или находится внутри проекта или прописана в open_basedir в настройках PHP.

    1. $config['shell_exec_unzip'] = TRUE;

Использовать ли внешний разархиватор Параметр должен быть TRUE, только если в вашей библиотеке есть zip-архивы > 2 ГБ, т.к. в php класс ZipArchive не умеет работать с архивами > 2 ГБ

    1. $config['shell_exec_cmd'] = 'c:\\7-Zip\\7z.exe e -so '; //пример для windows

$config['shell_exec_cmd'] = '/usr/syno/bin/unzip -p '; //пример для linux (DSM5.*)

$config['shell_exec_cmd'] = '/usr/bin/7z e -so '; //пример для DSM6

Если предыдущий параметр TRUE, то команда для вызова разархиватора без указания имени архива. Разархиватор должен выводить извлеченный файл в stdout

Дополнительные параметры

Дополнительные параметры собраны в config.php и используются форком COPSFB только при работе с базой MyHomeLib.

Описание и примеры:

    1. $config['fb_debug'] = FALSE; if ($config['fb_debug']) $config['cops_server_side_render'] = ".";

Включить отладку. Будут выводится на экран браузера предупреждения и замечания (иначе только ошибки), не будет использоваться lightbox , будет создаваться log.txt с результатами замеров производительности.

Включайте, только если у вас какие-то проблемы при работе или для замера производительности.

    1. $config['get_metadata_from_fb2'] = FALSE;

Вытаскивать ли метаданные из fb2 при показе списка книг. На слабых машинах работает медленно, по умолчанию отключено.

    1. $config['use_fb2_disk_cache'] = FALSE;

Сохранять ли кеш метаданных на диске сервера. Ставьте TRUE, только если предыдущий параметр $config['get_metadata_from_fb2']=TRUE

    1. $config['max_cache_size'] = 512*1024*1024;

Максимальный размер дискового кеша в БАЙТАХ. По моему опыту, размер около 512 МБ оптимальный, чтобы не тормозило при навигации и не сильно тормозило при очистки кеша.

ВНИМАНИЕ! Процедура очистки кеша вызывается только при скачивании книги. Т.е. если вы только просматриваете библиотеку, но ничего не качаете, кеш никогда не очистится!

При очистке сначала удаляются более старые файлы

    1. $config['cache_clear_size'] = 0.5;

Задаёт гистерезис очистки кеша. Т.е. если размер кеша станет > $config['max_cache_size'], то будут удаляться старые файлы, пока размер кеша не станет меньше чем $config['max_cache_size'] * $config['cache_clear_size'].

Т.е. если под кеш отведено 1GB, а $config['cache_clear_size'] = 0.75, после очистки останется 750MB.

    1. $config['cops_use_fb2_zip'] = TRUE;

Упаковывать книги FB2 в zip-архив при выгрузке. Параметр может быть изменен из интерфейса в браузере в форме "Настройки".

    1. $config['cops_global_lang_filter'] = FALSE;

$config['cops_global_del_filter'] = FALSE; //Если TRUE - удаленные не показываются.

Глобальные фильтры по БД - по языку книги и по показу книг, помеченных удаленными.

Параметры могут быть изменены из интерфейса в браузере.

Очень сильно влияют на производительность! Поэтому по умолчанию отключены. Если постоянно используете только один язык и удаленные не нужны - лучше почистить базу, используя скрипт clear_db.php.

Пример фильтра для книг на русском:

$config['cops_global_lang_filter'] = "RU";

Работа с несколькими базами

Начиная с версии 0.9.0.fb20140720 поддерживается работа одного экземпляра COPSFB с несколькими библиотеками. При такой работе есть существенные ограничения:

  1. Все библиотеки должны быть одного типа - либо MyHomeLib, либо Calibre. Для преодоления этого ограничения мне бы пришлось существенно переписать исходный проект, возможно, я это сделаю когда выйдет релиз 1.0 родительского проекта.

  2. Для MyHomeLib пока поддерживаются только FB2 библиотеки. Надеюсь это исправить в следующих версиях.

Q: А если мне все же надо одновременно использовать и MyHomeLib и Calibre?

A: Нет ничего проще, чем поставить две версии COPSFB, где каждый экземпляр смотрит на свою базу. Единственное неудобство, не будет сквозного поиска по всем библиотекам.

При использовании нескольких библиотек параметры $config['calibre_directory'] и $config['myhomelib_database'] должны быть не строками, а массивами. Пример:

$config['calibre_directory'] = array( "Librusec" => "c:\\Books\\lib.rus.ec\\", "MyLib" => "c:\\Books\\Calibre Portable\\Calibre Library\\"); $config['myhomelib_database'] = array('./lib/librusec_local_fb2.hlc2', './lib/MyLib.hlc2');

ВНИМАНИЕ! Параметр $config['calibre_directory'] должен быть ассоциативным массивом, где ключ будет показываться как название библиотеки.