Перейти к основному содержимому
Версия: 7.0

Linux

к сведению

Начиная с 7 версии Пассворка, обновление с помощью git больше не поддерживаются. Для обновления Пассворка мы подготовили скрипт.

Онлайн обновление

  1. Получить скрипт:
wget https://repos.passwork.ru/repository/linux/scripts/passwork.sh
осторожно

Скрипт обновления Пассворка не должен располагаться в каталоге вместе с файлами сервера приложений.

  1. Назначить скрипту права на исполнение:
chmod +x passwork.sh

По умолчанию, скрипт passwork.sh выполнит:

  • Создание скрытого .script_env файла в текущем каталоге;
  • Создание директории passwork_archive для резервного копирования Пассворка;
  • Получение последней доступной версии Пассворка, подпись и открытый ключ;
  • Установку ранее полученного архива в /var/www/
Выполняемые действия
  1. Проверка, что установлены все необходимые системные инструменты — php, curl, jq, zip, unzip, file, stat, find
  2. Проверка PHP версии и сравнение с требуемой (8.3)
  3. Проверка доступности клиентского портала Пассворка, чтобы определить режим установки
  4. Если Пассворк уже установлен (присутствует .env файл), режим переключается на UPDATE; если файл не обнаружен используется режим INSTALL
  5. Если существует файл .script_env прочитать и получить API ключ
  6. Если API ключ не задан, запросить у пользователя ввод и проверить на соответствующий формат
  7. Получить номер последней доступной версии с помощью API запроса
  8. Сравнить полученную версию с текущей версией Пассворка
  9. Если доступна новая версия, то получить архив с помощью запроса и API ключа
  10. Проверка в корректном получении ZIP-архива
  11. Получить цифровую подпись и публичный ключ
  12. Проверить ZIP архив с помощью OpenSSL
  13. Разархивировать ZIP-архив в временную директорию
  14. Сделать резервную копию текущей версии
  15. Очистить директорию от предыдущей версии, сохранив конфигурационные файлы и логи
  16. Проверить права доступа к директории
  17. Изменить права Владельца, если обнаружен не root
  18. Изменить настройки OPcache если они не настроены
  19. Перезапустить веб-сервер и службу php-fpm
  20. После запустить команду обновления версии update
к сведению

Чтобы использовать нестандартный путь установки, отключить проверку сертификата или изменить поведение, воспользуйтесь — параметрами скрипта

  1. Запустить скрипт:
sudo ./passwork.sh

При первом запуске скрипт запросит API ключ и выполнит базовые проверки окружения:

Получение API-ключа на клиентском портале

Пример успешного выполнения скрипта:

Пример успешного выполнения скрипта

Офлайн обновление

Получить скрипт на другой машине с доступом в Интернет:

wget https://repos.passwork.ru/repository/linux/scripts/passwork.sh
к сведению

Или получить passwork.sh скрипт вручную используя ссылку

осторожно

Скрипт обновления Пассворка не должен располагаться в каталоге вместе с файлами сервера приложений.

Назначить скрипту права на исполнение:

chmod +x passwork.sh

Перед запуском passwork.sh необходимо:

  • Получить 7 версию Пассворка из клиентского портала (Обязательно);
  • Поместить в директорию запуска или использовать --input аргумент для указания расположения (Обязательно);
  • Получить подпись архива и публичный ключ Пассворка (необязательно если используется --skip аргумент).

По умолчанию, скрипт passwork.sh выполнит:

  • Создание директории passwork_archive для резервного копирования Пассворка;
  • Разархивирование архива с Пассворком;
  • Установку ранее полученного архива в /var/www/
Выполняемые действия
  1. Проверка, что установлены все необходимые системные инструменты — php, curl, jq, zip, unzip, file, stat, find
  2. Проверка PHP версии и сравнение с требуемой (8.3)
  3. Проверка доступности клиентского портала Пассворка, чтобы определить режим установки
  4. Если установить соединение не удалось или используется флаг --offline, переключение в оффлайн-режим
  5. Подтвердить установку в оффлайн-режиме
  6. Поиск последнего архива в формате Passwork-*.zip в директории
  7. Извлечение номера версии из ZIP файла и проверка, что он не меньше 070000
  8. Если Пассворк уже установлен (присутствует .env файл), режим переключается на UPDATE; если файл не обнаружен используется режим INSTALL
  9. Сравнить версию архива с текущей версией Пассворка
  10. Перемещение ZIP в временную директорию
  11. Поиск и перемещение цифровой подписи и публичного ключа Пассворка
  12. Проверить ZIP архив с помощью OpenSSL
  13. Разархивировать ZIP-архив в временную директорию
  14. Сделать резервную копию текущей версии
  15. Очистить директорию от предыдущей версии, сохранив конфигурационные файлы и логи
  16. Проверить права доступа к директории
  17. Изменить права Владельца, если обнаружен не root
  18. Изменить настройки OPcache если они не настроены
  19. Перезапустить веб-сервер и службу php-fpm
  20. После запустить команду обновления версии update

После подготовки запустить passwork.sh скрипт:

sudo ./passwork.sh -offline

Пример успешного выполнения скрипта:

Пример успешного оффлайн-обновления

Параметры скрипта

-i, --input

Путь к архиву в offline_mode режиме. Также определяет местоположение .script_env, passwork_archives:

sudo ./passwork.sh -i "/home/administrator/passwork"

-o, --output

Путь установки (по умолчанию: /var/www):

sudo ./passwork.sh -o "/var/www/passwork"

-offline, --offline

Принудительный автономный режим. Требуется ручная подготовка:

sudo ./passwork.sh -offline

-insecure, --insecure

Пропустить проверку сертификата (используется, если на сервере отсутствуют сертификаты ЦС):

sudo ./passwork.sh -insecure

-skip, --skip

Пропустить проверку подписи архива Пассворка:

sudo ./passwork.sh -skip