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

Linux

осторожно

Данная инструкция предпологает следующее расположение Пассворка — /var/www/

Подготовка

  • Перед обновлением, если Пассворк установлен в облачной/виртуальной среде, создать снимок виртуального состояния ОС для восстановления работоспособности в случае некорректного обновления;
  • Получить права root:
sudo -i

Получение актуальной версии Пассворка

Создать временную директорию для получения Пассворка:

mkdir /tmp/update_passwork
Если сервер с Пассворком расположен в закрытом контуре

Необходимо перейти на клиентский портал Пассворка, скопировать номер сертификата и через адресную строку браузера получить 7 версию Пассворка — https://portal.passwork.ru/api/download?apikey=номер_сертификата

Перейти на клиентский портал Пассворка и скопировать API-ключ для получения актуальной версии:

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

Создать переменную API_KEY с номером сертификата:

API_KEY=your_api_key

Получить 7 версию Пассворка с помощью запроса:

curl -o "/tmp/update_passwork/passwork.zip" "https://portal.passwork.ru/api/download?apikey=$API_KEY"

Очистить переменную API_KEY с номером сертификата:

unset API_KEY

Обновление на актуальную версию

Получить в переменную текущую версию Пассворка:

# Получить версию Пассворка из файла version
version=$(cat /var/www/version)

Скопировать конфигурационные файлы Пассворка в временную директорию:

cp /var/www/init/config.env /tmp/update_passwork/
cp /var/www/init/encryption_key /tmp/update_passwork/
cp /var/www/.env /tmp/update_passwork/

Создать архив текущей версии Пассворка для возможности отката к предыдущей версии:

# Установить zip если при выполении произошла ошибка
apt install zip -y
dnf install zip -y

zip -r /var/passwork-$version.zip /var/www/*

Удалить всё содержимое из директории Пассворка:

rm -rf /var/www/* && rm -rf /var/www/.*

Разархивировать обновлённую версию Пассворка в физическое расположение:

unzip /tmp/update_passwork/passwork.zip -d /var/www/

Переместить скопированные конфигурационные файлы Пассворка в новую версию:

mv /tmp/update_passwork/config.env /var/www/init/
mv /tmp/update_passwork/encryption_key /var/www/init/
rm -rf /var/www/.env
mv /tmp/update_passwork/.env /var/www/

Удалить временную директорию update_passwork:

rm -rf /tmp/update_passwork

Установить права для физического расположения Пассворка:

find /var/www/ -type d -exec chmod 755 {} \;
find /var/www/ -type f -exec chmod 644 {} \;
find /var/www/init -type f -exec chmod 600 {} \;
chown -R www-data:www-data /var/www/

Перезапустить веб-сервер и PHP:

systemctl restart php8.3-fpm.service apache2.service

Очистить временный кеш Пассворка:

sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:clear'

Выполнить прогрев кэша:

sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:warmup'

Обновить версию Пассворка в базе данных:

sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console app:update'