Обслуживание¶
Сайт¶
Сайт поставляется в виде 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 для повышения скорости обработки.
- /var/cache/elis/covers/ - Кеш для обложек.
- /var/lib/manticore - Файлы индекса поискового сервера Manticore.
- /usr/lib64/elis - Директория с проприетарными модулями ELiS.
- /usr/lib64/elis/bin - Исполнимые файлы для запуска работ по расписанию и других технических задач.
- /usr/lib64/elis/drupal - Скрипты для различных технических задач с Drupal.
- /usr/lib64/elis/lib - Библиотеки для работы с PDF и другим функционалом.
- /etc/manticore - Конфигурация поискового сервера Manticore.
- /etc/manticore/manticore.conf - Файл конфигурации Manticore.
- /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/*
$ rm -Rf /var/cache/elis/covers/*
Рекомендуется очищать вначале кеш для краткосрочного хранения, затем для среднесрочного и затем для длительного.
Использование одного жёсткого диска для публичных и приватных файлов¶
Обычно операционная система ставится на 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