Desenvolvimento e bases de dados

Versões de PHP diferentes definidas por diretório ou domínio

Revisto a 6 min de leitura PHP versões

O seu alojamento tem uma versão de PHP predefinida, mas cada site e cada pasta podem ter a sua. Assim, pode manter aplicações com requisitos diferentes dentro do mesmo alojamento.

A partir da área de cliente, sem editar ficheiros

Entre em Alojamento, abra o seu serviço e vá a PHP. A lista Os seus sites e aplicações mostra a versão de cada site e de onde lhe vem.

  • Para mudar a versão de um site, carregue em Alterar na sua linha. Veja como em Mudar a versão de PHP de um site.
  • Para fixar a versão em qualquer pasta, carregue no ícone de pasta na linha do seu site, ou em Fixar numa pasta na ficha do site.

Fixar a versão numa pasta

O explorador começa na pasta de um dos seus sites e lê cada pasta no momento em que a abre. De cada uma mostra a versão que utiliza agora, se é dela ou se a herda de uma pasta superior, se está vazia e se contém uma aplicação que reconhecemos.

Carregue numa pasta para entrar nela. Quando chegar à que pretende, carregue em Alterar na sua linha, ou em Alterar esta pasta se for a pasta em que está, e abre-se a régua de versões. Escolha a versão e carregue em Fixar. Escrevemos a versão no seu .htaccess e guardamos uma cópia datada do ficheiro anterior. A versão aplica-se a essa pasta e a tudo o que está dentro dela.

Explorador de pastas com a régua de versões aberta dentro da linha de uma pasta vazia

  • Se a pasta tiver conteúdo, verificamos antes e depois que responde. Se deixar de o fazer, revertemos automaticamente.
  • Se a pasta estiver vazia, por exemplo porque acabou de a criar para instalar aí uma aplicação, ainda não há nada para verificar. A versão aplica-se na mesma e o que instalar utilizará essa versão desde o primeiro momento.

Em ambos os casos, tem 24 horas para desfazer a alteração com um botão.

Não fixe uma versão apenas em wp-admin, wp-content ou wp-includes: fazem parte de um WordPress e dividiriam a instalação em duas versões.

Os sites e pastas publicados pelo Deploy+ não admitem versão a partir da área de cliente: cada implementação substitui a pasta publicada e a versão perder-se-ia. Veja como a fixar em Versão de PHP num site publicado com o Deploy+. Também não é possível fixar a versão noutras pastas que sejam uma ligação.

O que se configura por pasta e o que se configura por versão

Por pasta só se fixa a versão. As extensões e os limites do PHP (memory_limit, upload_max_filesize e os restantes) pertencem a cada versão em toda a conta. Se ativar uma extensão no PHP 8.3, fica ativa em tudo o que corre em 8.3. A ficha de cada site indica que outros sites partilham a sua versão.

Editar o .htaccess à mão

Antes de editar o ficheiro, guarde uma cópia e confirme a raiz real do domínio. Adicione a diretiva ao .htaccess da pasta a partir da qual se deve aplicar; os subdiretórios herdá-la-ão, a menos que tenham outra regra posterior. Por exemplo, para o PHP 8.4:

AddType application/x-httpd-alt-php84 .php

As diretivas disponíveis são:

# PHP 5.4
AddType application/x-httpd-alt-php54 .php

# PHP 5.5
AddType application/x-httpd-alt-php55 .php

# PHP 5.6
AddType application/x-httpd-alt-php56 .php

# PHP 7.0
AddType application/x-httpd-alt-php70 .php

# PHP 7.1
AddType application/x-httpd-alt-php71 .php

# PHP 7.2
AddType application/x-httpd-alt-php72 .php

# PHP 7.3
AddType application/x-httpd-alt-php73 .php

# PHP 7.4
AddType application/x-httpd-alt-php74 .php

# PHP 8.0
AddType application/x-httpd-alt-php80 .php

# PHP 8.1
AddType application/x-httpd-alt-php81 .php

# PHP 8.2
AddType application/x-httpd-alt-php82 .php

# PHP 8.3
AddType application/x-httpd-alt-php83 .php

# PHP 8.4
AddType application/x-httpd-alt-php84 .php

# PHP 8.5
AddType application/x-httpd-alt-php85 .php

Uma pasta que personalize à mão aparece na lista de PHP com a sua versão na leitura seguinte do seu alojamento, que é feita uma vez por dia. Se não quiser esperar, carregue em Atualizar na Ficha técnica.

Verificar a alteração

A diretiva muda o interpretador dos pedidos web sob esse caminho, não a versão de PHP do terminal. Verifique a versão efetiva a partir da aplicação ou com um phpinfo() temporário e elimine esse ficheiro depois do teste.

Se depois da alteração aparecer um erro de extensão em falta, reveja o separador Extensões da ficha do site: mostra as da versão que utiliza. Se editar o .htaccess à mão, mantenha apenas o handler necessário; várias diretivas AddType, AddHandler ou SetHandler podem interferir entre si. Se a regra não funcionar, retire-a e utilize a área de cliente ou contacte o suporte.

Também lhe pode ser útil

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