Linux
Данная инструкция предпологает следующее расположение Пассворка — /var/www/
Подготовка
- Перед обновлением, если Пассворк установлен в облачной/виртуальной среде, создать снимок виртуального состояния ОС для восстановления работоспособности в случае некорректного обновления;
- Получить права root:
- shell
sudo -i
Получение актуальной версии Пассворка
Создать временную директорию для получения Пассворка:
- shell
mkdir /tmp/update_passwork
Если сервер с Пассворком расположен в закрытом контуре
Необходимо перейти на клиентский портал Пассворка, скопировать номер сертификата и через адресную строку браузера получить 7 версию Пассворка — https://portal.passwork.ru/api/download?apikey=номер_сертификата
Перейти на клиентский портал Пассворка и скопировать API-ключ для получения актуальной версии:

Создать переменную API_KEY
с номером сертификата:
- shell
API_KEY=your_api_key
Получить 7 версию Пассворка с помощью запроса:
- shell
curl -o "/tmp/update_passwork/passwork.zip" "https://portal.passwork.ru/api/download?apikey=$API_KEY"
Очистить переменную API_KEY
с номером сертификата:
- shell
unset API_KEY
Обновление на актуальную версию
Получить в переменную текущую версию Пассворка:
- shell
# Получить версию Пассворка из файла version
version=$(cat /var/www/version)
Скопировать конфигурационные файлы Пассворка в временную директорию:
- shell
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/
Создать архив текущей версии Пассворка для возможности отката к предыдущей версии:
- shell
# Установить zip если при выполении произошла ошибка
apt install zip -y
dnf install zip -y
zip -r /var/passwork-$version.zip /var/www/*
Удалить всё содержимое из директории Пассворка:
- shell
rm -rf /var/www/* && rm -rf /var/www/.*
Разархивировать обновлённую версию Пассворка в физическое расположение:
- shell
unzip /tmp/update_passwork/passwork.zip -d /var/www/
Переместить скопированные конфигурационные файлы Пассворка в новую версию:
- shell
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
:
- shell
rm -rf /tmp/update_passwork
Установить права для физического расположения Пассворка:
- DEB
- RPM
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/
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 apache:apache /var/www/
Перезапустить веб-сервер и PHP:
- DEB
- RPM
systemctl restart php8.3-fpm.service apache2.service
systemctl restart php-fpm.service httpd.service
Очистить временный кеш Пассворка:
- DEB
- RPM
sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:clear'
sudo -u apache bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:clear'
Выполнить прогрев кэша:
- DEB
- RPM
sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:warmup'
sudo -u apache bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:warmup'
Обновить версию Пассворка в базе д анных:
- DEB
- RPM
sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console app:update'
sudo -u apache bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console app:update'