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.

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ção | Predefinição | Valores disponíveis | O que controla |
|---|---|---|---|
memory_limit | 256M | 128M, 256M, 512M, 1024M, 2048M | Quanta memória um pedido pode usar |
max_execution_time | 30 | 30, 60, 120, 300, 600 | Quantos segundos um pedido pode demorar a executar |
upload_max_filesize | 64M | 16M, 32M, 64M, 128M, 256M | O maior ficheiro único que pode ser carregado |
post_max_size | 65M | 17M, 33M, 65M, 129M, 257M | O maior envio total de formulário |
max_input_vars | 3000 | 1000, 3000, 5000, 10000 | Quantos campos um envio pode conter |
Qual escolher:
- Carregamentos a falhar acima de um determinado tamanho: aumente
upload_max_filesize, e tambémpost_max_sizeem 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 -vpara a versão ephp -mpara 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.