Módulo 7 · 7.2
O que uma loja exige do alojamento
Módulo 7: Ser encontrado e alojamento · Tempo de leitura: 10 minutos
Objetivo de aprendizagem: No final desta lição, saberá avaliar se um plano de alojamento é adequado a uma loja WooCommerce, verificar e ajustar as definições de PHP mais importantes e reconhecer quando o seu plano começa a ficar pequeno.
Conceitos-chave: recomendações de servidor, versão do PHP, limite de memória do WordPress (WP_MEMORY_LIMIT), memory_limit, max_execution_time, max_input_vars, upload_max_filesize, base de dados, cache de objetos, CPU, processos, 503, Resource Limit Is Reached, WooCommerce > Estado, crescer
Uma loja é mais exigente do que um site comum
Um site WordPress comum com cache de páginas serve a maioria dos visitantes a partir de HTML guardado. Uma loja só o consegue fazer em parte (lição 6.4): o carrinho, a finalização da compra e A minha conta são gerados de novo para cada visitante e, assim que alguém coloca um artigo no carrinho, recebe uma sessão e a cache muitas vezes deixa de se aplicar a essa pessoa. A isto acresce:
- cada encomenda escreve na base de dados (encomenda, linhas, moradas, stock, notas);
- o fornecedor de pagamentos comunica através de um webhook que o pagamento foi efetuado, e esse pedido tem de receber resposta rapidamente;
- o WooCommerce tem ações agendadas que são executadas em segundo plano (lição 7.3);
- a gestão (encomendas, relatórios, edição de produtos) é mais pesada do que num blogue.
Uma loja que funciona perfeitamente num plano pequeno com dez encomendas por dia pode bloquear durante uns saldos com centenas de visitantes em simultâneo. Por isso, compensa saber do que o seu plano é capaz.
O que o WooCommerce recomenda
O WooCommerce publica definições de servidor recomendadas (situação em novembro de 2026, para a versão 10.8 e posteriores):
| Componente | Recomendação |
|---|---|
| WordPress | 6.9 ou superior |
| PHP | 8.3 ou superior (testado até à 8.4, inclusive) |
| Base de dados | MySQL 8.0 ou superior, ou MariaDB 10.6 ou superior |
| Limite de memória do WordPress | 256 MB ou mais |
| HTTPS | obrigatório |
Trata-se de recomendações, não de mínimos: o próprio plugin exige PHP 7.4 para ser instalado. No entanto, uma loja numa versão antiga do PHP é mais lenta e deixa de receber atualizações de segurança. A forma de mudar com segurança para uma versão mais recente do PHP é explicada no curso de WordPress, lição 8.4; o processo é o mesmo para uma loja, só que deve testar a finalização da compra e o pagamento com especial cuidado no ambiente de staging.
Onde pode ver o que tem atualmente? Em WooCommerce > Estado (Estado do sistema). Aí encontra, em Ambiente do WordPress, entre outros, o Limite de memória do WordPress e, em Ambiente do Servidor, a Versão do PHP, os limites do PHP e a versão da base de dados. Em caso de problemas, um programador ou o suporte de um plugin pedem muitas vezes este relatório; com o botão para obter o relatório do sistema ("Get system report") pode copiá-lo.
As definições de PHP que importam
Numa loja, há quatro definições com que se depara com mais frequência:
- memory_limit (e WP_MEMORY_LIMIT): quanta memória de trabalho um único pedido PHP pode utilizar. Memória insuficiente resulta numa página em branco ou em "Allowed memory size exhausted", muitas vezes em relatórios, importações ou na edição de um produto variável grande. O WooCommerce recomenda um limite de memória do WordPress de 256 MB. O WordPress utiliza o valor definido no wp-config.php (
WP_MEMORY_LIMIT), mas nunca mais do que o próprio PHP permite. - max_execution_time: quanto tempo um único pedido pode demorar. Uma importação CSV ou uma exportação de mil encomendas pode demorar mais do que o valor predefinido. É preferível importar em partes mais pequenas do que definir um limite muito elevado.
- max_input_vars: quantos campos um formulário pode enviar. Num produto variável com muitas variações, ou num menu grande, a área de gestão envia centenas de campos. Se o limite for demasiado baixo, os últimos campos são descartados sem aviso: clica em Atualizar, não vê qualquer erro, mas parte das suas variações não foi guardada. Se notar isto, aumente o valor (por exemplo para 3000 ou 5000) ou crie menos variações (lição 3.2).
- upload_max_filesize e post_max_size: o tamanho máximo de um carregamento. Importante para as fotografias de produtos e para os produtos descarregáveis (lição 3.3).
Na maioria dos fornecedores de alojamento, estes valores são ajustados no painel. Na WebOké, isso faz-se no DirectAdmin, nas definições de PHP do seu plano (consulte KB 212 e KB 200); noutros fornecedores funciona de forma semelhante, por vezes através de um .user.ini ou de um ecrã php.ini. Altere um valor de cada vez e confirme em WooCommerce > Estado se foi aplicado.
Quando o plano fica pequeno
No alojamento partilhado, cada plano tem limites: quanto CPU, quanta memória e quantos processos em simultâneo. Na WebOké e noutros fornecedores com CloudLinux, pode vê-los no DirectAdmin, na utilização do seu plano. Se a sua loja os ultrapassar, os visitantes recebem um 503 ou uma mensagem como "Resource Limit Is Reached". Numa loja isto é especialmente incómodo: um cliente que está prestes a pagar, ou um webhook do fornecedor de pagamentos que não recebe resposta, fazendo com que uma encomenda já paga fique em "Pagamento pendente".
Antes de passar para um plano maior, verifique primeiro o que está a causar a carga. As causas mais frequentes nas lojas:
- cache de páginas inexistente ou mal configurada (lição 6.4);
- bots que percorrem filtros, resultados de pesquisa ou ligações
?add-to-cart=; - WP-Cron em cada visita e uma fila cheia de ações agendadas (lição 7.3);
- plugins pesados ou um tema que faz muitas consultas à base de dados em cada página;
- ausência de cache de objetos (Redis) quando há muitos clientes com sessão iniciada (lição 6.4).
Para encontrar a causa, pode recorrer à visão geral da utilização do seu plano, aos registos e, em alguns fornecedores, a uma ferramenta como o PHP X-Ray, que mostra por página qual a função lenta (KB 227).
Se a loja estiver bem configurada e mesmo assim atingir os limites, então justifica-se crescer: um plano maior, ou um servidor próprio (VPS) em que decide quantos processos o PHP pode executar. Esse passo também exige mais gestão. Não o planeie a meio da sua semana mais movimentada; teste primeiro no novo local (lição 7.3).
O que mais faz parte de uma loja
Além do PHP, uma loja exige do seu alojamento:
- HTTPS com renovação automática do certificado (curso de WordPress, lição 3.1);
- cópias de segurança com frequência suficiente para as suas encomendas, com um teste de restauro (lição 6.2);
- cron real para tarefas agendadas (lição 7.3);
- e-mail fiável ou uma ligação a um serviço de e-mail (lição 6.1);
- uma opção de staging (lição 7.3);
- uma base de dados com espaço suficiente: as encomendas e as ações agendadas crescem todos os dias.
No Theehuis Example, a loja começou num plano de alojamento comum. Após uma newsletter com desconto, chegou numa hora mais tráfego do que o normal numa semana, e os pagamentos ficaram pendurados. Na visão geral da utilização, o número máximo de processos aparecia constantemente atingido. A causa: a cache de páginas estava desligada depois de uma atualização do tema. Com a cache novamente ligada, a campanha seguinte decorreu sem 503.
Resumo
- Uma loja é mais exigente do que um site comum: páginas dinâmicas, escritas na base de dados, webhooks e ações agendadas.
- O WooCommerce recomenda PHP 8.3+, MySQL 8.0+ ou MariaDB 10.6+, um limite de memória de 256 MB e HTTPS; os seus valores aparecem em WooCommerce > Estado.
- Tenha atenção a memory_limit, max_execution_time, max_input_vars (perda silenciosa de dados com muitas variações) e aos limites de carregamento.
- Um 503 ou Resource Limit Is Reached significa que os limites do seu plano foram atingidos; procure primeiro a causa e só depois cresça.
Questionário
Exercício
Exercício A7.2: A sua versão de PHP é adequada ao WooCommerce? Abra WooCommerce > Estado e anote a Versão do PHP (Ambiente do Servidor) e o Limite de memória do WordPress em MB (Ambiente do WordPress). Introduza o endereço da sua loja e esses dois valores. O programa procura a série da sua versão do PHP na tabela do php.net (que versões ainda recebem atualizações) e verifica se a página inicial mostra um cabeçalho X-Powered-By com uma versão do PHP. Verde se a sua série ainda tiver suporte ativo e for pelo menos 8.3, e o limite de memória for pelo menos 256. Laranja se a sua série só receber atualizações de segurança, se for inferior a 8.3 mas ainda suportada, se o limite de memória estiver entre 128 e 255, ou se o seu site mostrar a versão do PHP num cabeçalho. Vermelho se a sua série já não receber atualizações ou for desconhecida, se o limite de memória for inferior a 128, ou se o cabeçalho mostrar uma série diferente da que introduziu ("existem várias versões do PHP?").
Pergunta para si (não é corrigida): o que aparece em WooCommerce > Estado para max_input_vars e para o tamanho máximo de carregamento? É suficiente para o seu maior produto e o seu maior ficheiro descarregável?
Para saber mais
Estes artigos descrevem os passos nos painéis da WebOké; noutros painéis funcionam de forma semelhante.
- Alterar a versão do PHP e as definições do PHP (e o que fazer em caso de erros após uma atualização)
- Não é possível carregar: aumente os valores de upload_max_filesize e max_execution_time
- Manual DirectAdmin 14.1: Escolher a versão do PHP (Select PHP version)
- Resource Usage do DirectAdmin e websites lentos (Resource Limit Is Reached)
- Manual DirectAdmin 17.5: 503 ou "Resource Limit Is Reached": o que fazer agora?
- Curso gratuito de WordPress 8.4: Versões e atualizações de PHP
- Server requirements (woocommerce.com, em inglês): https://woocommerce.com/document/server-requirements/
