Actualización
PHP publicó parches para dos vulnerabilidades críticas con ejecución remota de código. Toda
instalación propia del API debe actualizar PHP: con Docker, reconstruyendo la imagen; en Ubuntu
22.04, con apt. Procedimiento completo en Aviso de seguridad PHP.
Crear, consultar y eliminar empresas, los planes, los administradores y el correo general exigen
ahora una clave de administración en el header X-Admin-Token. Después del git pull hay que
crearla con php artisan api:admin-token y entregarla a las integraciones que administran
empresas; si no, esas peticiones responden 403. Pasos por tipo de instalación en
Aviso de seguridad: clave de administración del API.
- Actualizar repositorio de gitlab de una versión antigua a la actual. Video aquí
- Comandos para actualizar repositorio Pto. 1 y comandos para actualizar Pto.2. Aquí
Si la instalación corre en Docker
La imagen PHP del API se construye en su propio servidor desde el Dockerfile del
repositorio (desde el 21 de octubre de 2026, sobre la imagen oficial php:8.3.36-fpm-bookworm).
Por eso, cada vez que el git pull traiga cambios en el Dockerfile o en la carpeta docker/,
hay que reconstruir la imagen y no solo reiniciar los contenedores. Los comandos de
composer y de php artisan se ejecutan dentro del contenedor:
cd /ruta/del/api && git pull origin master # carpeta del código del API
cd /ruta/del/compose # carpeta donde está el docker-compose.yml (ver nota)
docker compose build --no-cache php_api scheduling_api
docker compose up -d php_api scheduling_api
docker restart nginx_api
docker compose exec php_api php -v # debe mostrar PHP 8.3.36
docker compose exec php_api composer install
docker compose exec php_api php artisan migrate --seed
docker compose exec php_api php artisan config:cache
El git pull y la edición del .env se hacen en la carpeta del API, pero los comandos
docker compose se ejecutan desde la carpeta donde está el docker-compose.yml, porque leen
el archivo del directorio actual. Según cómo se instaló, ese archivo puede estar dentro de la
carpeta del API o fuera de ella (en la carpeta padre o en otra ruta): ubíquelo antes de empezar.
Si no sabe dónde quedó, docker compose ls muestra la ruta en la columna CONFIG FILES. Si
prefiere no cambiar de carpeta, agregue -f /ruta/docker-compose.yml a cada comando. Más detalle
en Aviso de seguridad PHP.
Véalos con docker compose ps (o docker-compose ps, con guion, en instalaciones antiguas) y
reemplácelos en los comandos: el contenedor PHP del API, el del programador de tareas y el de
nginx. En algunas instalaciones llevan el dominio como sufijo, por ejemplo
php_api_api_midominio_com.
El docker restart de nginx evita un 502 Bad Gateway que aparece cuando el contenedor PHP
cambia de IP interna al recrearse. Más detalle en
Aviso de seguridad PHP.