Linux
Начиная с 7 версии Пассворка, обновление с помощью git больше не поддерживаются. Для обновления Пассворка мы подготовили скрипт.
Онлайн обновление
- Получить скрипт:
- wget
- curl
wget https://repos.passwork.ru/repository/linux/scripts/passwork.sh
curl -O https://repos.passwork.ru/repository/linux/scripts/passwork.sh
Скрипт обновления Пассворка не должен располагаться в каталоге вместе с файлами сервера приложений.
- Назначить скрипту права на исполнение:
chmod +x passwork.sh
По умолчанию, скрипт passwork.sh
выполнит:
- Создание скрытого
.script_env
файла в текущем каталоге; - Создание директории
passwork_archive
для резервного копирования Пассворка; - Получение последней доступной версии Пассворка, подпись и открытый ключ;
- Установку ранее полученного архива в
/var/www/
Выполняемые действия
- Проверка, что установлены все необходимые системные инструменты —
php, curl, jq, zip, unzip, file, stat, find
- Проверка PHP версии и сравнение с требуемой (8.3)
- Проверка доступности клиентского портала Пассворка, чтобы определить режим установки
- Если Пассворк уже установлен (присутствует
.env
файл), режим переключается наUPDATE
; если файл не обнаружен используется режимINSTALL
- Если существует файл
.script_env
прочитать и получить API ключ - Если API ключ не задан, запросить у пользователя ввод и проверить на соответствующий формат
- Получить номер последней доступной версии с помощью API запроса
- Сравнить полученную версию с текущей версией Пассворка
- Если доступна новая версия, то получить архив с помощью запроса и API ключа
- Проверка в корректном получении ZIP-архива
- Получить цифровую подпись и публичный ключ
- Проверить ZIP архив с помощью OpenSSL
- Разархивировать ZIP-архив в временную директорию
- Сделать резервную копию текущей версии
- Очистить директорию от предыдущей версии, сохранив конфигурационные файлы и логи
- Проверить права доступа к директории
- Изменить права Владельца, если обнаружен не root
- Изменить настройки OPcache если они не настроены
- Перезапустить веб-сервер и службу php-fpm
- После запустить команду обновления версии
update
Чтобы использовать нестандартный путь установки, отключить проверку сертификата или изменить поведение, воспользуйтесь — параметрами скрипта
- Запустить скрипт:
sudo ./passwork.sh
При первом запуске скрипт запросит API ключ и выполнит базовые проверки окружения:

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

Офлайн обновление
Получить скрипт на другой машине с доступом в Интернет:
- wget
- curl
- PowerShell
wget https://repos.passwork.ru/repository/linux/scripts/passwork.sh
curl -O https://repos.passwork.ru/repository/linux/scripts/passwork.sh
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.ru/repository/linux/scripts/passwork.sh", "$PWD\passwork.sh")
Или получить passwork.sh
скрипт вручную используя ссылку
Скрипт обновления Пассворка не должен располагаться в каталоге вместе с файлами сервера приложений.
Назначить скрипту права на исполнение:
chmod +x passwork.sh
Перед запуском passwork.sh
необходимо:
- Получить 7 версию Пассворка из клиентского портала (Обязательно);
- Поместить в директорию запуска или использовать
--input
аргумент для указания расположения (Обязательно); - Получить подпись архива и публичный ключ Пассворка (необязательно если используется
--skip
аргумент).
По умолчанию, скрипт passwork.sh
выполнит:
- Создание директории
passwork_archive
для резервного копирования Пассворка; - Разархивирование архива с Пассворком;
- Установку ранее полученного архива в
/var/www/
Выполняемые действия
- Проверка, что установлены все необходимые системные инструменты —
php, curl, jq, zip, unzip, file, stat, find
- Проверка PHP версии и сравнение с требуемой (8.3)
- Проверка доступности клиентского портала Пассворка, чтобы определить режим установки
- Если установить соединение не удалось или используется флаг
--offline
, переключение в оффлайн-режим - Подтвердить установку в оффлайн-режиме
- Поиск последнего архива в формате
Passwork-*.zip
в директории - Извлечение номера версии из ZIP файла и пр оверка, что он не меньше
070000
- Если Пассворк уже установлен (присутствует
.env
файл), режим переключается наUPDATE
; если файл не обнаружен используется режимINSTALL
- Сравнить версию архива с текущей версией Пассворка
- Перемещение ZIP в временную директорию
- Поиск и перемещение цифровой подписи и публичного ключа Пассворка
- Проверить ZIP архив с помощью OpenSSL
- Разархивировать ZIP-архив в временную директорию
- Сделать резервную копию текущей версии
- Очистить директорию от предыдущей версии, сохранив конфигурационные файлы и логи
- Проверить права доступа к директории
- Изменить права Владельца, если обнаружен не root
- Изменить настройки OPcache если они не настроены
- Перезапустить веб-сервер и службу php-fpm
- После запустить команду обновления версии
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