Como atualizar a versão do PHP ao usar Laravel Forge e Sail
1. Atualizar composer.json
O primeiro passo é garantir que a versão no composer.json
corresponda à versão do PHP que você pretende instalar. Neste exemplo, usaremos 8.2.14
.
{
"require": {
"php": "8.2.14"
}
}
2. Executar sail up -d
Este comando inicia os contêineres do Sail caso não estejam em execução.
3. Executar sail composer update
É importante executar sail composer update
para garantir que o arquivo composer.lock
esteja atualizado e sincronizado com as alterações feitas no arquivo composer.json
.
4. Atualizações no Laravel Forge
Certifique-se de estar executando a versão exata do PHP configurada no composer.json
antes de enviar suas alterações. Você pode instalar patches de segurança para a versão atual do PHP clicando em "Patch". Observe que o Forge não permite definir uma versão específica, então você pode precisar atualizar para o patch mais recente da versão do PHP que está usando e defini-lo no composer.json
para garantir que correspondam.
5. Enviar alterações
Dependendo da sua configuração do Forge, você pode precisar implantar manualmente, ou a implantação pode ocorrer automaticamente com base nos commits em um determinado branch.
Exemplo de erros de implantação se as versões do PHP não corresponderem
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.
Nesse caso, certifique-se de que seu composer.json
reflita a versão correta e não se esqueça de executar sail composer update
para aplicar essas alterações também ao composer.lock
.
Se o comando sail composer update
falhar devido a uma discrepância na versão do contêiner Docker, você pode executar sail up --build
para reconstruir o contêiner Laravel usando a versão mais recente do PHP definida no seu docker-compose.yml
.
services:
laravel.test:
build:
context: ./docker/8.2
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.2/app
Como estou usando o /docker/8.2/Dockerfile
, ao reconstruir o contêiner, a versão 8.2.14
do PHP é instalada.