Обслуживание

Сайт

Сайт поставляется в виде RPM-пакетов, собранных для установки Drupal и зависимых пакетов в определенные директории. Не следует устанавливать Drupal из других репозитариев.

В сайт можно добавлять сторонние модули, не входящие в комплект модулей, необходимых для работы ELiS, но техническая поддержка сторонним модулям не предоставляется.

Вы можете самостоятельно обновлять Drupal и другие модули, не дожидаясь выпуска RPM-пакетов поставщиком. Для этого надо просто скопировать внешние модули в папку /var/www/vh/library/sites/all/modules

Файловая система

На Linux используются следующие директории:

  • /var/www/vh/library/ - Сайт ELiS.
  • /var/www/vh/library/sites/default/settings.php - Файл конфигурации подключения сайта к базе данных.
  • /var/www/vh/library/sites/defailt/files - Публичная директория сайта (разрешен прямой доступ).
  • /var/www/files/ - Оригинальные файлы книг в приватном разделе сайта (запрещен прямой доступ без проверки прав).
  • /etc/nginx/conf.d/elis.conf - Конфигурация веб-сервера.
  • /etc/php-fpm.d/elis.conf - Конфигурация php-fpm.
  • /var/cache/elis/ - Кеш.
  • /var/cache/elis/long/ - Кеш для длительного хранения.
  • /var/cache/elis/middle/ - Кеш для хранения средней длительности.
  • /var/cache/elis/short/ - Кеш для краткосрочного хранения. Часто монтируется в tmpfs для повышения скорости обработки.
  • /usr/lib64/elis - Директория с проприетарными модулями ELiS.
  • /usr/lib64/elis/bin - Исполнимые файлы для запуска работ по расписанию и других технических задач.
  • /usr/lib64/elis/drupal - Скрипты для различных технических задач с Drupal.
  • /usr/lib64/elis/lib - Библиотеки для работы с PDF и другим функционалом.
  • /etc/sphinx - Конфигурация поискового сервера Sphinx.
  • /etc/sphinx/sphinx.conf - Файл конфигурации Sphinx.
  • /usr/distr/ - Директория с зависимостями к ELiS и дистрибутив ELiS.

Основные задачи обслуживания

Обновление ПО

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

Обновление дистрибутива выполняется командой:
# yum update

Репозитарий с зависимыми пакетами

Для Linux CentOS7 работает репозитарий с зависимостями `elis-commons`, распространяемыми под открытыми лицензиями, не входящих в стандартный репозитарий CentOS7 или включенных в него в виде устаревших версий ПО.

При обновлении модулей ELiS требуется также обновлять и зависимости из elis-commons.

Для добавления репозитария создайте файл /etc/yum.repos.d/elis.repo и добавьте в него строки:

[elis-commons]
name=ELiS commons
baseurl=http://repo.elibsystem.ru/commons/el7/$basearch
enabled=1
gpgcheck=0

Обновление стандартных модулей Drupal

Публично-распространяемые модули вы можете обновлять самостоятельно.

Проще всего проводить обновление с помощью утилиты drush, если она у вас установлена.

Для этого надо зайти на сервер по SSH под пользователем elis в папку сайта библиотеки и выполнить обновление:

# su elis

$ cd /var/www/vh/library

$ drush up

Установка внешних модулей Drupal

Модули удобней устанавливать из drush. Для чего узнайте машинное название модуля из URL модуля на сайте: https://drupal.org/project/<module_name>

Зайдите на сервер по SSH под пользователем elis в папку сайта библиотеки и выполните скачивание и включение модуля:

# su elis

$ cd /var/www/vh/library

$ drush en <module_name>

Техническая поддержка внешним модулям не оказывается.

Очистка кешей

Для книг и презентаций ELiS создает предгенерированные файлы для ускорения последующей отдачи страниц пользователям. Если кеши займут все свободное пространство - вы можете их очистить простым удалением файлов.

Например:

$ rm -Rf /var/cache/elis/short/*

$ rm -Rf /var/cache/elis/middle/*

$ rm -Rf /var/cache/elis/long/*

Рекомендуется очищать вначале кеш для краткосрочного хранения, затем для среднесрочного и затем для длительного.

Использование одного жёсткого диска для публичных и приватных файлов

Обычно операционная система ставится на SSD, а приватные файлы размещаются на HDD большой ёмкости. Так как приватные файлы расположены в /var/www/files/*, то обычно по этому пути монтируется HDD. Но как быть, если директория для публичных файлов /var/www/vh/library/sites/default/files тоже оказалась большой и на SSD не помещается?

Имея два диска SSD и HDD можно настроить пространство так, чтобы операционная система с основными файлами находилась на SSD, включая /var/www/vh/library, а публичная и приватная директории только на HDD.

Для этого можно использовать опцию монтирования bind. Ниже приведен пример для случая, когда /dev/sda1 - SSD, /dev/sdb1 - HDD и других дисков нет.

Если вначале у нас было монтирование:

/dev/sda1 / xfs defaults 0 0

/dev/sdb1 /var/www/files xfs defaults 0 0

То используя опцию bind можно HDD примонтировать в отдельную директорию (скажем /mnt/sdb1), а приватную и публичную директории примонтировать внутри точки монтирования /mnt/sdb1. Тогда файл /etc/fstab будет похож на:

/dev/sda1 / xfs defaults 0 0

/dev/sdb1 /mnt/sdb1 xfs defaults 0 0

/mnt/sdb1/private /var/www/files none bind 0 0

/mnt/sdb1/public /var/www/vh/library/sites/defaults/files none bind 0 0