Linux
A partir de la versión 7 de Passwork, las actualizaciones a través de git ya no son compatibles. Para actualizar Passwork, hemos preparado un script.
Actualización en línea
- Obtenga el script:
- wget
- curl
wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
curl -O https://repos.passwork.pro/repository/linux/scripts/passwork.sh
El script de actualización de Passwork no debe estar ubicado en el directorio junto con los archivos del servidor de aplicaciones.
- Asigne derechos de ejecución al script:
- shell
chmod +x passwork.sh
De forma predeterminada, el script passwork.sh realizará:
- Creación de un archivo oculto
.script_enven el directorio actual; - Creación de un directorio
passwork_archivepara la copia de seguridad de Passwork; - Obtención de la última versión disponible de Passwork, firma y clave pública;
- Instalación del archivo previamente obtenido en
/var/www/
Acciones realizadas
- Verificar que todas las herramientas del sistema necesarias estén instaladas —
php, curl, jq, zip, unzip, file, stat, find - Verificar la versión de PHP y compararla con la requerida (8.3)
- Verificar la disponibilidad del portal de clientes de Passwork para determinar el modo de instalación
- Si Passwork ya está instalado (el archivo
.envestá presente), cambiar el modo aUPDATE; si no se encuentra el archivo, usar el modoINSTALL - Si el archivo
.script_envexiste, leer y obtener la clave API - Si la clave API no está configurada, solicitar al usuario que la introduzca y validar el formato
- Obtener el número de la última versión disponible mediante solicitud API
- Comparar la versión obtenida con la versión actual de Passwork
- Si hay una nueva versión disponible, descargar el archivo usando la solicitud y la clave API
- Verificar la recepción correcta del archivo ZIP
- Obtener la firma digital y la clave pública
- Verificar el archivo ZIP usando OpenSSL
- Descomprimir el archivo ZIP en un directorio temporal
- Realizar una copia de seguridad de la versión actual
- Limpiar el directorio de la versión anterior, preservando los archivos de configuración y los registros
- Verificar los derechos de acceso al directorio
- Cambiar los permisos del propietario si el propietario no es root
- Modificar la configuración de OPcache si no está configurada
- Reiniciar el servidor web y el servicio php-fpm
- Luego ejecutar el comando de actualización de versión
update
Para usar una ruta de instalación no estándar, deshabilitar la verificación de certificados o cambiar el comportamiento, utilice — parámetros del script
- Ejecute el script:
- shell
sudo ./passwork.sh
En la primera ejecución, el script solicitará la clave API y realizará verificaciones básicas del entorno:

Ejemplo de ejecución exitosa del script:

Actualización sin conexión
Obtenga el script en otra máquina con acceso a Internet:
- wget
- curl
- PowerShell
wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
curl -O https://repos.passwork.pro/repository/linux/scripts/passwork.sh
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.pro/repository/linux/scripts/passwork.sh", "$PWD\passwork.sh")
O bien obtenga el script passwork.sh manualmente usando el enlace
El script de actualización de Passwork no debe estar ubicado en el directorio junto con los archivos del servidor de aplicaciones.
Asigne derechos de ejecución al script:
- shell
chmod +x passwork.sh
Antes de ejecutar passwork.sh, debe:
- Obtener la versión 7 de Passwork del Portal de clientes de Passwork (obligatorio);
- Colocarlo en el directorio de ejecución o usar el argumento
--inputpara especificar la ubicación (obligatorio); - Obtener la firma del archivo y la clave pública de Passwork (opcional si se usa el argumento
--skip).
De forma predeterminada, el script passwork.sh realizará:
- Creación de un directorio
passwork_archivepara la copia de seguridad de Passwork; - Descompresión del archivo de Passwork;
- Instalación del archivo previamente obtenido en
/var/www/
Acciones realizadas
- Verificar que todas las herramientas del sistema necesarias estén instaladas —
php, curl, jq, zip, unzip, file, stat, find - Verificar la versión de PHP y compararla con la requerida (8.3)
- Verificar la disponibilidad del portal de clientes de Passwork para determinar el modo de instalación
- Si la conexión falla o se usa la marca
--offline, cambiar al modo sin conexión - Confirmar la instalación en modo sin conexión
- Buscar el último archivo en formato
Passwork-*.zipen el directorio - Extraer el número de versión del archivo ZIP y verificar que no sea inferior a
070000 - Si Passwork ya está instalado (el archivo
.envestá presente), cambiar el modo aUPDATE; si no se encuentra el archivo, usar el modoINSTALL - Comparar la versión del archivo con la versión actual de Passwork
- Mover el ZIP a un directorio temporal
- Buscar y mover la firma digital y la clave pública de Passwork
- Verificar el archivo ZIP usando OpenSSL
- Descomprimir el archivo ZIP en un directorio temporal
- Realizar una copia de seguridad de la versión actual
- Limpiar el directorio de la versión anterior, preservando los archivos de configuración y los registros
- Verificar los derechos de acceso al directorio
- Cambiar los permisos del propietario si el propietario no es root
- Modificar la configuración de OPcache si no está configurada
- Reiniciar el servidor web y el servicio php-fpm
- Luego ejecutar el comando de actualización de versión
update
Después de la preparación, ejecute el script passwork.sh:
- shell
sudo ./passwork.sh -offline
Ejemplo de ejecución exitosa del script:

Parámetros del script
-i, --input
Ruta al archivo en offline_mode. También define la ubicación de .script_env, passwork_archives:
- shell
sudo ./passwork.sh -i "/home/administrator/passwork"
-o, --output
Ruta de instalación (predeterminado: /var/www):
- shell
sudo ./passwork.sh -o "/var/www/passwork"
-offline, --offline
Modo sin conexión forzado. Requiere preparación manual:
- shell
sudo ./passwork.sh -offline
-insecure, --insecure
Omitir la verificación de certificados (se usa si el servidor carece de certificados CA):
- shell
sudo ./passwork.sh -insecure
-skip, --skip
Omitir la verificación de la firma del archivo de Passwork:
- shell
sudo ./passwork.sh -skip