Desenvolvimento e bases de dados

Caminhos dos binários de PHP de cada versão

Revisto a 3 min de leitura PHP binários

O comando php do terminal e dos cronjobs costuma utilizar a versão geral selecionada no seletor de PHP do cPanel, com os módulos ativados para ela, mas não o dê por certo: já vimos contas em que respondia o PHP 8.1 com o seletor em 8.4, e /usr/local/bin/php também não tem de coincidir com o seu site. Verifique sempre com php -v e, para executar um comando com uma versão concreta, chame o seu binário pelo caminho absoluto. Uma versão fixada para uma pasta no .htaccess afeta os pedidos web dessa pasta, não o terminal nem os seus cronjobs.

Utilize o caminho absoluto quando uma tarefa tiver de ser executada com uma versão concreta: no cron de uma aplicação, como o schedule:run do Laravel, é o mais seguro. Estes são os caminhos ALT-PHP; verifique que o binário está instalado na sua conta antes de o utilizar:

Versão Caminho
5.4 /opt/alt/php54/usr/bin/php
5.5 /opt/alt/php55/usr/bin/php
5.6 /opt/alt/php56/usr/bin/php
7.0 /opt/alt/php70/usr/bin/php
7.1 /opt/alt/php71/usr/bin/php
7.2 /opt/alt/php72/usr/bin/php
7.3 /opt/alt/php73/usr/bin/php
7.4 /opt/alt/php74/usr/bin/php
8.0 /opt/alt/php80/usr/bin/php
8.1 /opt/alt/php81/usr/bin/php
8.2 /opt/alt/php82/usr/bin/php
8.3 /opt/alt/php83/usr/bin/php
8.4 /opt/alt/php84/usr/bin/php
8.5 /opt/alt/php85/usr/bin/php

Cada binário carrega as extensões selecionadas para essa versão concreta. Se um cron utilizar o PHP 8.3 e o site utilizar outra versão, ative também no PHP 8.3 os módulos de que o comando precisa.

Verificar versão, configuração e módulos

Por exemplo, para o PHP 8.3:

/opt/alt/php83/usr/bin/php -v
/opt/alt/php83/usr/bin/php --ini
/opt/alt/php83/usr/bin/php -m

Se aparecer «No such file or directory», verifique as versões disponíveis; escrever o caminho não instala essa versão. Para verificar o que o comando curto resolve, utilize command -v php e php -v.

Utilizar o binário numa tarefa

Este exemplo executa um script com o PHP 8.3 a partir do seu diretório de trabalho:

cd /home/usuario/apps/mi-proyecto && /opt/alt/php83/usr/bin/php scripts/tarea.php

Substitua ambos os caminhos e teste primeiro o comando com uma tarefa que possa executar sem duplicar operações. No cPanel, introduza o comando em Cron Jobs e defina a frequência nos campos de agendamento. Mantenha no início uma saída de diagnóstico privada para verificar que termina corretamente.

Escolher um binário diferente não muda a versão web nem garante que as suas extensões e opções coincidam. Verifique cada contexto que a aplicação utiliza.

Também lhe pode ser útil

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