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

Сайт

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

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

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

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

На 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 можно выполнить одной командой:

# /usr/lib64/elis/bin/update_elis.sh

В некоторых случаях может потребоваться перенастройка или ручное добавление полей, следите за новостями по обновлениям ELiS на сайте https://elibsystem.ru и обратитесь в техническую поддержку, если возникли трудности.

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

ПО ELiS распространяется в дополнительных репозитариях, один открытый `elis-commons` и один закрытый `elis`.

Открытый репозитарий содержит распространяемое под открытыми лицензиями ПО как ELiS, так и некоторое другое, используемое с ELiS в качестве зависимостей.

Репозитарии добавляются в /etc/yum.repos.d/elis.repo автоматически при установке ELiS.

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

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

Если у вас закончилась техподдержка, отключите репозитарий elis, заменив в /etc/yum.repos.d/elis.repo под описанием [elis] строку с enabled=1 на enabled=0.

Для ручного управления репозитарием создайте файл /etc/yum.repos.d/elis.repo и добавьте в него строки, заменив XXXX-XXXX-XXXX-XXXX-XXXX-XXXX на ваш лицензионный ключ (пароль не важен):

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

[elis]
name=ELiS library
baseurl=https://XXXX-XXXX-XXXX-XXXX-XXXX-XXXX:PASSWORD@elibsystem.ru/repo/elis/el8/$basearch
enabled=1
gpgcheck=0

Обновление и системы и модулей Drupal можно сделать одной командой:

# /usr/lib64/elis/bin/update_elis.sh

Перед обновлением необходимо сделать резервную копию.

Обновление стандартных модулей 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>

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

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

Кэш в Drupal чистится командой drush cc all:

# cd /var/www/vh/library
# su elis
$ drush cc all

Кроме кеша Drupal в 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