Desenvolvimento e bases de dados

Instalar dependências PHP com o Composer no alojamento

Revisto a 5 min de leitura Composer dependências

O Composer instala as bibliotecas PHP de que um projeto precisa a partir de composer.json. Quando existe composer.lock, pode reproduzir as versões que testou. Está disponível por SSH e no terminal do cPanel.

Verificar o ambiente

Abra o terminal e consulte:

php -v
composer --version
php --ini

Estes comandos mostram o PHP da linha de comandos, que costuma ser a versão geral selecionada no seletor de PHP do cPanel, com os seus módulos, embora nem sempre coincida. Se não for a versão do seu site, se o site tiver outra fixada para a sua pasta ou se um comando precisar de outra, utilize o caminho do respetivo binário, também para o Composer: /opt/alt/php84/usr/bin/php "$(command -v composer)" install. Antes de instalar, verifique os requisitos do projeto e as extensões do interpretador que o Composer vai utilizar.

Se composer não aparecer, verifique command -v composer e consulte o suporte sobre o caminho disponível na sua conta. Não precisa de privilégios de administrador para gerir as dependências do projeto.

Instalar as versões testadas

Trabalhe na pasta que contém composer.json e composer.lock, de preferência numa nova release ou num ambiente de testes:

cd /home/usuario/apps/mi-proyecto &&
composer install --no-dev --prefer-dist --no-interaction --optimize-autoloader &&
composer check-platform-reqs --no-dev

Substitua o caminho pelo do seu projeto. O exemplo omite as dependências de desenvolvimento para uma instalação de produção; o seu processo de testes pode precisar delas. Se o ficheiro de bloqueio faltar, prepare e teste um em desenvolvimento antes de implementar.

composer update resolve novas versões e modifica o bloqueio. Utilize-o dentro do processo de atualização em desenvolvimento, reveja a alteração e teste a aplicação antes de a publicar. Para instalar uma release já testada, utilize install. Consulte a distinção entre install e update.

O Composer pode executar scripts e plugins do projeto durante a instalação. Utilize código de confiança e reveja que operações realiza; instalar dependências não é necessariamente uma operação sem efeitos sobre a aplicação.

Resolver uma extensão em falta

Uma mensagem como esta indica que o PHP do Composer não tem uma extensão exigida:

requires ext-zip * -> the requested PHP extension zip is missing from your system

Verifique a versão com php -v e os seus módulos com php -m. Ative zip para essa mesma versão no seletor de módulos PHP, volte a verificá-la e repita a instalação.

Se precisar de executar com outro interpretador, utilize o seu caminho absoluto junto com uma instalação PHP do Composer cujo caminho tenha verificado. Mudar o PHP num .htaccess não muda o interpretador desse comando.

Não resolva um requisito não cumprido com --ignore-platform-reqs: a instalação poderia terminar e a aplicação falhar ao ser executada. Se faltar uma biblioteca do sistema ou a extensão não estiver disponível, consulte a compatibilidade com o suporte.

Verificar o resultado

Confirme que o Composer termina sem erros, que vendor/autoload.php existe e que check-platform-reqs valida o ambiente real. Depois, teste o site e as suas tarefas agendadas. Esta verificação não substitui os testes funcionais nem verifica o PHP web, se for diferente do do terminal.

Perante um erro de memória ou de espaço, reveja os recursos do plano e o tamanho das dependências. Pode preparar um artefacto num ambiente compatível, mas tem de verificar os seus requisitos no alojamento antes de o publicar.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.