Saltar al contenido principal

Linux

peligro

Esta instrucción asume la siguiente ubicación de Passwork — /var/www/

Preparación

  • Antes de actualizar, si Passwork está instalado en un entorno en la nube/virtual, cree una instantánea del estado virtual del sistema operativo para restaurar la funcionalidad en caso de una actualización incorrecta;
  • Obtenga privilegios de root:
sudo -i

Obtención de la versión actual de Passwork

Cree un directorio temporal para descargar Passwork:

mkdir /tmp/update_passwork
Si el servidor de Passwork está ubicado en una red cerrada

Debe ir al Portal de clientes de Passwork, copiar el número de certificado y usar la barra de direcciones del navegador para obtener la versión 7 de Passwork — https://portal.passwork.pro/api/download?apikey=certificate_number

Vaya al Portal de clientes de Passwork y copie la clave API para obtener la versión actual:

Obtención de la clave API en el portal de clientes

Cree la variable API_KEY con el número de certificado:

API_KEY=your_api_key

Descargue la versión 7 de Passwork utilizando la solicitud:

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

Limpie la variable API_KEY con el número de certificado:

unset API_KEY

Actualización a la versión actual

Obtenga la versión actual de Passwork en una variable:

# Get Passwork version from the version file
version=$(cat /var/www/version)

Copie los archivos de configuración de Passwork al directorio temporal:

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

Cree un archivo de la versión actual de Passwork para permitir la reversión a la versión anterior:

# Install zip if an error occurs during execution
apt install zip -y
dnf install zip -y

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

Elimine todo el contenido del directorio de Passwork:

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

Descomprima la versión actualizada de Passwork en la ubicación física:

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

Mueva los archivos de configuración copiados de Passwork a la nueva versión:

mv /tmp/update_passwork/config.env /var/www/init/
mv /tmp/update_passwork/encryption_key /var/www/init/
mv /tmp/update_passwork/.env.local /var/www/

Elimine el directorio temporal update_passwork:

rm -rf /tmp/update_passwork

Establezca los permisos para la ubicación física de 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/

Reinicie el servidor web y PHP:

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

Limpie la caché temporal de Passwork:

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

Realice el precalentamiento de la caché:

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

Actualice la versión de Passwork en la base de datos:

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