O comando php que escreve no Terminal ou em SSH não é obrigado a ser a versão que escolheu para o site. O site usa o que definiu em Select PHP Version para aquela pasta; a linha de comandos usa o primeiro php que encontra no caminho do sistema. Por isso o site pode estar no 8.2 e o php -v dizer outra coisa. A solução é chamar o PHP pelo caminho completo, ou criar um atalho.
Descobrir qual é qual
| 1 |
Abra o Terminal do cPanel ou uma sessão SSH. Nem todas as contas têm shell; depende da conta. O Terminal do cPanel.
|
|
| 2 |
Veja o PHP por omissão:php -v which phpO primeiro mostra a versão, o segundo de onde vem.
|
|
| 3 |
Veja as versões instaladas:ls -d /opt/alt/php*Cada pasta é uma versão: php82 é o PHP 8.2, php74 o 7.4. Se a pasta não aparecer, essa versão não está disponível para si.
|
|
| 4 |
Chame a versão que quer pelo caminho completo:/opt/alt/php82/usr/bin/php -vTroque 82 pela versão do seu site, sem ponto.
|
|
| 5 |
Use esse caminho no que correr:/opt/alt/php82/usr/bin/php artisan migrate /opt/alt/php82/usr/bin/php ~/composer.phar installAssim o comando e o site falam a mesma língua.
|
|
Um atalho para não escrever o caminho sempre
Se trabalha muito na linha de comandos, acrescente uma linha ao ficheiro ~/.bashrc da conta:
alias php='/opt/alt/php82/usr/bin/php'Feche e volte a abrir a sessão, e o php -v passa a mostrar a versão escolhida. O atalho só vale para quem escreve no Terminal: não vale no cron, onde se escreve sempre o caminho completo (correr um script PHP num cron).
Coisas úteis da linha de comandos
| Comando |
Para quê |
| php -m |
Lista as extensões carregadas nessa versão. Confirma se a que ligou em Select PHP Version está mesmo lá. |
| php --ini |
Mostra que ficheiros de configuração o PHP leu. Útil quando um valor não se aplica. |
| php -l ficheiro.php |
Verifica a sintaxe de um ficheiro sem o executar. |
| php -d memory_limit=512M script.php |
Corre um script com um valor mudado só nessa execução. Os limites da conta continuam a valer. |
| php -r 'echo PHP_VERSION;' |
Escreve a versão que está a correr, para ter a certeza do que o script usa. |
|
A configuração da linha de comandos pode não ser a do site. Um valor posto só no .user.ini da pasta do site vale para os pedidos web e pode não valer aqui. Se o script falha na linha de comandos e não no navegador (ou ao contrário), confirme o valor com php -i nessa mesma versão. Veja ver e ajustar a configuração do PHP.
|
|
Um erro de versão no Composer ou no artisan quase sempre é isto. Quando uma ferramenta se queixa de que o PHP é antigo e o site já está numa versão nova, o comando correu com o PHP errado. Repita-o com o caminho completo.
|
|
A versão da linha de comandos continua a não bater certo? Diga-nos a conta, a pasta e o que o php -v mostra.
Abrir um pedido de suporte
|
PRODUTO RECOMENDADO Servidor VPS com acesso root Recursos só seus, o sistema que escolher, reinstalação quando quiser. desde 7.560,00 Kz/mês (plano de 3 anos, com cupão) Ver planos |