Cómo actualizar la versión de PHP al usar Laravel Forge y Sail
1. Actualizar composer.json
El primer paso es asegurarse de que la versión en composer.json
coincida con la versión de PHP que planea instalar. En este ejemplo, usaremos 8.2.14
.
{
"require": {
"php": "8.2.14"
}
}
2. Ejecutar sail up -d
Este comando inicia los contenedores de Sail en caso de que no se estén ejecutando.
3. Ejecutar sail composer update
Es importante ejecutar sail composer update
para garantizar que el archivo composer.lock
esté actualizado y sincronizado con los cambios realizados en el archivo composer.json
.
4. Actualizaciones en Laravel Forge
Asegúrese de estar ejecutando la versión exacta de PHP configurada en composer.json
antes de enviar sus cambios. Puede instalar parches de seguridad para la versión actual de PHP haciendo clic en "Patch". Tenga en cuenta que Forge no le permite establecer una versión específica, por lo que es posible que deba actualizar al último parche de la versión de PHP que está utilizando y establecerlo en composer.json
para garantizar que coincidan.
5. Enviar cambios
Dependiendo de su configuración de Forge, es posible que deba implementar manualmente, o la implementación puede ocurrir automáticamente en función de los commits en una rama determinada.
Ejemplo de errores de implementación si las versiones de PHP no coinciden
Root composer.json requires php 8.2.13 (exact version match: 8.2.13 or 8.2.13.0) but your PHP version (8.2.14) does not satisfy that requirement.
En tal caso, asegúrese de que su composer.json
refleje la versión correcta y no olvide ejecutar sail composer update
para aplicar esos cambios también a composer.lock
.
Si el comando sail composer update
falla debido a una discrepancia en la versión del contenedor de Docker, puede ejecutar sail up --build
para reconstruir el contenedor de Laravel utilizando la última versión de PHP establecida en su docker-compose.yml
.
services:
laravel.test:
build:
context: ./docker/8.2
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.2/app
Como estoy usando el /docker/8.2/Dockerfile
, al reconstruir el contenedor se instala la versión 8.2.14
de PHP.