Resolução de problemas

Extensões e Configurações PHP

Which PHP versions and extensions KapsuleHost web hosting provides, which settings you can change yourself, and why a change can take up to five minutes to appear.

Quais versões PHP e extensões o KapsuleHost fornece, quais configurações você pode alterar por conta própria e por que uma alteração pode levar até cinco minutos para aparecer.

Tudo relacionado a PHP para um site fica em um único lugar: Websites, clique no site, Advanced, depois PHP. Essa página contém o seletor de versão, as configurações que você pode alterar, um executor de Composer e o log de erros do PHP.

A aba PHP para um site no KPanel

Escolhendo uma Versão do PHP

Quatro versões são selecionáveis: 8.4, 8.3, 8.2 e 8.1. Novos sites usam como padrão a versão 8.3.

Escolha a versão mais recente que seu software realmente suporta. PHP mais recente é significativamente mais rápido e é suportado com correções de segurança por mais tempo. O motivo para não pular direto para a versão mais recente é a compatibilidade: um plugin antigo ou um código personalizado escrito anos atrás pode falhar completamente em uma versão que nunca foi testada.

Para alterar, selecione a versão e clique em Apply Version. A alteração entra em vigor imediatamente, sem necessidade de reinicialização da sua parte e sem tempo de inatividade.

Altere a versão do PHP no staging primeiro, clique no site e somente depois altere na produção. Se você precisar fazer isso ao vivo, faça quando puder acompanhar e saiba que voltar é um único clique. Veja Staging Environments.

Se uma alteração de versão quebrar o site, volte para a versão anterior e leia o log. O erro nomeará o arquivo que não pôde ser executado. Veja Changing PHP Version e Error Logs.

Configurações que Você Pode Alterar

A página PHP expõe cinco configurações como listas suspensas. Estas são as que realmente causam problemas na prática, e é por isso que são as únicas expostas.

ConfiguraçãoPadrãoValores disponíveisO que controla
memory_limit256M128M, 256M, 512M, 1024M, 2048MQuanto de memória uma solicitação pode usar
max_execution_time3030, 60, 120, 300, 600Quantos segundos uma solicitação pode executar
upload_max_filesize64M16M, 32M, 64M, 128M, 256MO maior arquivo único que pode ser enviado
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 você precisa:

  • Envios falhando acima de um certo tamanho: aumente upload_max_filesize e post_max_size junto com ela.
  • Um formulário grande ou um construtor de páginas perdendo campos ao salvar: aumente max_input_vars. Este é invisível e frustrante, porque nada gera erro. Os campos extras são silenciosamente descartados.
  • Uma página morrendo no meio sem erro: aumente memory_limit. Veja WordPress Memory Limit.
  • Uma importação ou exportação longa expirando: aumente max_execution_time e considere executar o trabalho pela linha de comando. Veja WP-CLI.

post_max_size deve ser maior que upload_max_filesize, porque o envio viaja dentro do post. Se você escolher uma combinação onde isso não for verdade, a plataforma corrige post_max_size para você. É por isso que você pode ver um valor que não escolheu.

Por que uma Alteração Leva até Cinco Minutos

Esta é a confusão mais comum nesta página, então vale a pena ser preciso.

Suas configurações são escritas em um arquivo .user.ini na raiz do documento do seu site. O PHP lê esse arquivo e então o coloca em cache por 300 segundos, que é cinco minutos. Até que esse cache expire, o PHP continua usando os valores anteriores.

Então, após salvar uma alteração:

  • A página ainda reportará o limite antigo por até cinco minutos.
  • phpinfo() ainda reportará o limite antigo por até cinco minutos.
  • Uma atualização forçada não ajuda. Nem limpar o cache do navegador.
  • Você não precisa reiniciar nada e não pode. Apenas aguarde.

Se passaram mais de cinco minutos e o valor não mudou, algo está genuinamente errado e vale a pena abrir um ticket.

Editando .user.ini Você Mesmo

Você pode editar .user.ini diretamente por SFTP ou SSH se preferir, ou se precisar de uma diretiva que o painel não exponha. Fica na raiz do documento do seu site. Veja SFTP Access.

O formato é uma diretiva por linha:

memory_limit = 512M
max_execution_time = 120

Dois limites importantes no que .user.ini pode fazer:

Funciona apenas para diretivas que o PHP permite serem definidas por diretório ou por usuário. As cinco acima se qualificam. Diretivas que podem ser definidas apenas no nível do sistema, como disable_functions ou carregar uma extensão com extension=, são ignoradas em um arquivo .user.ini. Elas não gerarão erro, simplesmente não farão nada, e é por isso que as pessoas gastam uma tarde com elas.

O painel apenas relê chaves simples. Diretivas contendo um ponto, como opcache.enable ou date.timezone, são respeitadas pelo PHP mas não aparecerão no formulário do painel. Se você definir uma manualmente e depois alterar algo através do painel, verifique o arquivo depois.

A hospedagem web Kapsule executa nginx, não Apache. Arquivos .htaccess são lidos por ninguém. Diretivas PHP colocadas em um arquivo .htaccess, como php_value memory_limit, não fazem absolutamente nada aqui. Use .user.ini ou o painel. Veja WordPress and .htaccess.

Quais Extensões Estão Disponíveis

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

Bancos de dados: mysqli, pdo_mysql, sqlite3, pdo_sqlite Imagens: gd, imagick, exif Cache: Zend OPcache, redis, memcached Texto e localidade: 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 Arquivos e sistema: fileinfo, zip, zlib, phar, posix, pcntl, shmop, calendar, tokenizer

Uma diferença de versão que vale a pena conhecer: a extensão imap está presente em 8.3 e anteriores, mas não em 8.4, porque foi removida do próprio PHP nessa versão. Se você tiver uma aplicação que ainda precisa dela, fique em 8.3 ou mova essa aplicação para uma biblioteca de correio moderna.

Não instalado: drivers PostgreSQL, MongoDB, Xdebug, mcrypt e carregadores de código comercial como ionCube e SourceGuardian.

Você não pode ativar ou desativar extensões por conta própria no painel. Se sua aplicação precisa de algo que não está na lista, abra um ticket e descreva o que você está executando. Se pode ser adicionado depende da extensão. Veja Opening a Support Ticket.

Verificando o Que Está Realmente Carregado

Em vez de adivinhar:

  • No WordPress: Tools, depois Site Health, depois Info, depois Server. Ele lista a versão do PHP e os limites relevantes.
  • Por SSH: php -v para a versão e php -m para as extensões carregadas. Veja Adding SSH Keys.

Não deixe um arquivo phpinfo() na raiz da sua web. Ele publica seus caminhos, suas extensões e sua configuração para qualquer pessoa que o encontre, e scanners automatizados procuram exatamente por esse nome de arquivo. Se você criar um para verificar algo, delete-o imediatamente depois.

Guias Relacionados

Ainda precisa de ajuda?

Envie-nos um email para support@kapsulehost.com ou abra um chat no KPanel.

Abrir KPanel
Extensões e Configurações PHP