Saltar para o conteúdo
Índice
Resolução de problemas

Extensões e Definições do PHP

Tradução automática. O original em inglês está disponível.

Quais as versões e extensões PHP que a KapsuleHost disponibiliza para sites WordPress, WooCommerce e PHP, quais as definições que pode alterar você mesmo, e porque é que uma alteração pode demorar até cinco minutos a surtir efeito.

Sites estáticos, Node.js e Python não executam PHP. Tudo o que diz respeito ao PHP de um site está centralizado num só local: Websites, clique no site, Definições, depois PHP. Essa página contém o seletor de versão, as definições que pode alterar, um executor de Composer, e o registo de erros do PHP.

A página de PHP de um site no KPanel, com o seletor de versão e as definições que pode alterar

Escolher uma Versão de PHP

Estão disponíveis quatro versões para seleção: 8.4, 8.3, 8.2 e 8.1. Os sites novos usam por defeito a versão 8.3.

Escolha a versão mais recente que o seu software realmente suporta. O PHP mais recente é significativamente mais rápido e beneficia de correções de segurança durante mais tempo. A razão para não avançar logo para a versão mais recente é a compatibilidade: um plugin antigo ou um trecho de código personalizado escrito há anos pode falhar completamente numa versão com a qual nunca foi testado.

Para a alterar, selecione a versão e clique em Aplicar versão. A alteração tem efeito imediato, sem necessidade de reiniciar nada da sua parte e sem tempo de inatividade.

Altere primeiro a versão de PHP no ambiente de staging, navegue pelo site e só depois altere a versão em produção. Se tiver mesmo de o fazer em produção, faça-o quando puder estar a acompanhar, sabendo que reverter é apenas um clique. Consulte Ambientes de Staging.

Se uma alteração de versão quebrar o site, volte à versão anterior e leia o registo. O erro indicará o ficheiro que não conseguiu ser executado. Consulte Alterar a Versão de PHP e Registos de Erros.

Definições que Pode Alterar

A página de PHP disponibiliza cinco definições sob a forma de menus suspensos. São estas que, na prática, causam realmente problemas, razão pela qual são as que são apresentadas.

DefiniçãoPredefiniçãoValores disponíveisO que controla
memory_limit256M128M, 256M, 512M, 1024M, 2048MQuanta memória um pedido pode usar
max_execution_time3030, 60, 120, 300, 600Quantos segundos um pedido pode demorar a executar
upload_max_filesize64M16M, 32M, 64M, 128M, 256MO maior ficheiro único que pode ser carregado
post_max_size65M17M, 33M, 65M, 129M, 257MO maior envio total de formulário
max_input_vars30001000, 3000, 5000, 10000Quantos campos um envio pode conter

Qual escolher:

  • Carregamentos a falhar acima de um determinado tamanho: aumente upload_max_filesize, e também post_max_size em conjunto.
  • Um formulário grande ou um construtor de páginas a perder campos ao guardar: aumente max_input_vars. Este problema é invisível e frustrante, porque não surge nenhum erro. Os campos extra são simplesmente descartados silenciosamente.
  • Uma página a falhar a meio sem qualquer erro: aumente memory_limit. Consulte Limite de Memória do WordPress.
  • Uma importação ou exportação longa a exceder o tempo limite: aumente max_execution_time, e considere executar a tarefa a partir da linha de comandos. Consulte WP-CLI.

post_max_size tem de ser maior do que upload_max_filesize, porque o carregamento viaja dentro do post. Se escolher uma combinação em que isso não se verifique, a plataforma corrige post_max_size automaticamente para si. É por isso que poderá ver um valor que não escolheu.

Porque é que uma Alteração Demora Até Cinco Minutos

Esta é, de longe, a confusão mais comum sobre esta página, por isso vale a pena ser preciso.

As suas definições são escritas num ficheiro .user.ini na raiz de documentos do seu site. O PHP lê esse ficheiro e depois guarda-o em cache durante 300 segundos, ou seja, cinco minutos. Até essa cache expirar, o PHP continua a usar os valores anteriores.

Assim, após guardar uma alteração:

  • A página continuará a reportar o limite antigo durante até cinco minutos.
  • phpinfo() continuará a reportar o limite antigo durante até cinco minutos.
  • Uma atualização forçada não ajuda. Limpar a cache do navegador também não.
  • Não precisa de reiniciar nada, nem o pode fazer. Basta esperar.

Se já tiverem passado mais de cinco minutos e o valor não tiver mudado, então há realmente algo errado e vale a pena abrir um pedido de suporte.

Editar .user.ini Você Mesmo

Pode editar .user.ini diretamente via SFTP ou SSH, se preferir, ou se precisar de uma diretiva que o painel não disponibiliza. O ficheiro encontra-se na raiz de documentos do seu site. Consulte Acesso SFTP.

O formato é uma diretiva por linha:

memory_limit = 512M
max_execution_time = 120

Dois limites importantes relativamente ao que .user.ini pode fazer:

Só funciona para diretivas que o PHP permite definir por diretório ou por utilizador. As cinco acima qualificam-se todas. Diretivas que só podem ser definidas ao nível do sistema, como disable_functions ou carregar uma extensão com extension=, são ignoradas num ficheiro .user.ini. Não geram erro, simplesmente não fazem nada, razão pela qual as pessoas acabam a perder uma tarde inteira com elas.

O painel só consegue ler chaves simples. Diretivas que contenham um ponto, como opcache.enable ou date.timezone, são respeitadas pelo PHP mas não aparecem no formulário do painel. Se definir uma manualmente e mais tarde alterar algo através do painel, verifique o ficheiro posteriormente.

A KapsuleHost web hosting utiliza nginx, não Apache. Os ficheiros .htaccess não são lidos por ninguém. Diretivas de PHP colocadas num ficheiro .htaccess, como php_value memory_limit, não têm absolutamente qualquer efeito aqui. Use .user.ini ou o painel em vez disso. Consulte WordPress e .htaccess.

Quais as Extensões Disponíveis

A compilação padrão é abrangente e inclui tudo o que o WordPress, o WooCommerce e a maioria das aplicações PHP exigem.

Bases de dados: mysqli, pdo_mysql, sqlite3, pdo_sqlite Imagens: gd, imagick, exif Cache: Zend OPcache, redis, memcached Texto e regionalização: mbstring, iconv, intl, gettext, ctype XML e dados: dom, simplexml, xml, xmlreader, xmlwriter, xsl, json Rede: curl, soap, sockets, ftp, openssl Matemática e criptografia: bcmath, sodium, hash, random Ficheiros e sistema: fileinfo, zip, zlib, phar, posix, pcntl, shmop, calendar, tokenizer

Uma diferença entre versões que vale a pena conhecer: a extensão imap está presente na 8.3 e versões anteriores, mas não na 8.4, porque foi removida do próprio PHP nesse lançamento. Se tiver uma aplicação que ainda precise dela, mantenha-se na 8.3 ou mude essa aplicação para uma biblioteca de correio moderna.

Não instaladas: controladores PostgreSQL, MongoDB, Xdebug, mcrypt, e carregadores de código comerciais como ionCube e SourceGuardian.

Não pode ativar ou desativar extensões você mesmo a partir do painel. Se a sua aplicação precisar de algo que não consta da lista, abra um pedido de suporte e descreva o que está a executar. A possibilidade de adicionar depende da extensão em causa. Consulte Abrir um Pedido de Suporte.

Verificar o Que Está Realmente Carregado

Em vez de adivinhar:

  • No WordPress: Ferramentas, depois Estado do Site, depois Informação, depois Servidor. Esta secção indica a versão do PHP e os limites relevantes.
  • Via SSH: php -v para a versão e php -m para as extensões carregadas. Consulte Adicionar Chaves SSH.

Não deixe um ficheiro phpinfo() na raiz do seu site. Este publica os seus caminhos, as suas extensões e a sua configuração para quem o encontrar, e os scanners automatizados procuram exatamente esse nome de ficheiro. Se criar um para verificar alguma coisa, elimine-o imediatamente a seguir.

Guias Relacionados

Isto foi útil?

É uma IA? Leia esta página em Markdown

Artigos relacionados

O Meu Site Não Carrega: Lista de Verificação de DiagnósticoTrabalhe estes passos pela ordem indicada. Cada passo identifica a causa ou exclui-a. A maioria dos problemas é resolvida até ao passo 5.…Site em baixo: relacionar o que vê com a causaEsta é a árvore de diagnóstico, comum a todos os produtos, para um site que não carrega. A KapsuleHost tem vários produtos, e a forma mais rápida de encontrar a…Utilizar Cloudflare ou Outro Proxy Com KapsuleHostComo colocar um proxy de terceiros ou uma CDN em frente de um site KapsuleHost, incluindo as duas configurações que prejudicam sites, os registos que nunca…Lentidão do site e limites de recursosO que o seu plano de alojamento realmente limita, o que acontece quando atinge cada limite e como perceber se um site lento é um problema de recursos ou um…

Ainda precisa de ajuda?

Pergunte à Kora, que conhece a sua conta, ou contacte a nossa equipa.

Contacte-nosSuporte por e-mail