# Aumentar o Limite de Memória do WordPress

Source: https://support.kapsulehost.com/pt-pt/wordpress-memory-limit

Quando o WordPress ou um plugin falha com um erro de esgotamento de memória, a solução é aumentar o limite de memória do PHP, e no KapsuleHost isso é feito através de um menu pendente no KPanel, em vez de uma edição de ficheiro. Este guia aborda o que o erro significa, como alterar o limite, que valor escolher e o que fazer quando mais memória não resolve o problema.

## O Aspeto do Erro

A forma mais clara é um erro fatal impresso na página ou escrito no registo de erros:

```
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)
```

Divida o valor em bytes por 1.048.576 para o ler em megabytes: `268435456` são 256 MB, `134217728` são 128 MB.

Nem sempre se anuncia de forma tão clara. O mesmo problema subjacente surge como:

- Uma página completamente em branco, sem qualquer mensagem, muitas vezes num único ecrã específico.
- O painel do WordPress a carregar normalmente, mas uma página de administração específica (Plugins, Produtos, Site Health) a falhar.
- Um carregamento de ficheiros multimédia ou uma importação que avança parcialmente e depois para.
- Um erro 500 que só aparece sob carga.

> **Note:** Antes de alterar seja o que for, confirme que se trata mesmo de memória. Abra as **Definições** do site, depois o separador **PHP**, percorra até **Registo de erros do PHP** e clique em **Carregar registo**. Isso mostra as últimas 200 entradas com um filtro de nível. Um erro de esgotamento de memória aparece como **Fatal**. Se o registo estiver vazio, o problema está noutro lado: experimente [Ecrã Branco do WordPress](https://support.kapsulehost.com/pt-pt/wordpress-white-screen) e [Como Ler os Seus Registos de Erros](https://support.kapsulehost.com/pt-pt/error-logs).

## Alterar o Limite no KPanel

1. Inicie sessão no [KPanel](https://kpanel.kapsulehost.com) e clique em **Websites** na barra lateral esquerda.
2. Clique no site que pretende alterar.
3. No menu próprio do site, abra **Definições**, depois **PHP**.
4. Localize o cartão **Definições do PHP** e a linha **Limite de memória**.
5. Escolha um valor na lista pendente: `128M`, `256M`, `512M`, `1024M` ou `2048M`.
6. Clique em **Guardar definições**.

![As definições do PHP de um site no KPanel, onde é escolhido o limite de memória](https://support.kapsulehost.com/help/screenshots/wordpress-memory-limit.b15db306.webp)

Não é necessário reiniciar e o site mantém-se online durante todo o processo. As suas definições são escritas num ficheiro `.user.ini` na raiz do seu site, que o KPanel gere por si.

> **Tip:** O novo valor nem sempre fica ativo logo no carregamento de página seguinte. O servidor mantém `.user.ini` em cache durante até cinco minutos, por isso, se o limite antigo continuar a ser apresentado, aguarde alguns minutos e verifique novamente antes de assumir que a alteração não teve efeito.

O mesmo cartão controla outros quatro valores que, muitas vezes, precisam de ser ajustados em conjunto com a memória:

| Definição | Opções | Aumente quando |
|---|---|---|
| Limite de memória | 128M a 2048M | Erros fatais de memória, ecrãs de administração em branco |
| Tempo máximo de execução | 30 a 600 segundos | Importações, exportações e criações de relatórios que param a meio |
| Tamanho máximo de upload | 16M a 256M | Um ficheiro zip de tema ou um vídeo é rejeitado por ser demasiado grande |
| Máximo de variáveis de entrada | 1000 a 10000 | Menus grandes, formulários extensos, produtos com muitas variações |

O tamanho máximo de publicação não é apresentado porque o KapsuleHost o define automaticamente, sempre 1 MB acima do seu limite de upload, para que um formulário com um ficheiro no limite ainda assim seja aceite.

## Que Valor Escolher

Todos os sites do KapsuleHost começam em **256M**, o que já é o dobro do valor predefinido do WordPress e suficiente para a grande maioria dos sites. Só deve aumentar quando tiver um erro real.

| Site | Limite sugerido |
|---|---|
| Site institucional ou blogue com um tema leve | 256M é mais do que suficiente |
| Site com tema de criação por blocos e 20 ou mais plugins | 256M, depois 512M se os erros persistirem |
| Loja WooCommerce, catálogo modesto | 256M |
| WooCommerce com subscrições, muitas variações ou plugins de inventário pesados | 512M |
| Rede multisite ou site de associados de grande dimensão | 512M a 1024M |

> **Warning:** Não salte diretamente para 2048M. Um limite muito elevado não torna um site mais rápido: permite que um plugin descontrolado consuma muito mais recursos do servidor antes de falhar, o que transforma uma única página avariada num site lento para todos os visitantes. Aumente um nível de cada vez, volte a testar e pare assim que o erro desaparecer.

## Definir um Limite no wp-config.php

A lista pendente do KPanel define o limite máximo do servidor. O WordPress tem duas constantes próprias que solicitam memória até esse limite máximo, e alguma documentação pode indicar-lhe para as definir:

```php
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
```

`WP_MEMORY_LIMIT` aplica-se à área pública. `WP_MAX_MEMORY_LIMIT` aplica-se à área de administração, que normalmente precisa de mais memória. Adicione-as acima da linha `/* That's all, stop editing! */` em `wp-config.php`, utilizando o editor incorporado em **Definições**, depois **Gestor de Ficheiros**, ou através de SFTP.

> **Warning:** Uma constante do WordPress nunca pode exceder o limite do servidor. Definir `WP_MEMORY_LIMIT` como `1024M` enquanto a lista pendente do KPanel indica `256M` dá-lhe 256M e a falsa sensação de que resolveu o problema. Aumente sempre primeiro o valor no KPanel.

Para a maioria das pessoas, as constantes são desnecessárias. Defina o valor no KPanel e não altere `wp-config.php`.

## Notas sobre o WooCommerce

As lojas são o motivo mais comum para ultrapassar os 256M. Verifique a visão própria da loja sobre o limite em **WooCommerce**, depois **Status**, no wp-admin: o relatório System Status mostra o limite de memória do PHP que consegue detetar, o que é uma boa forma de confirmar que a sua alteração no KPanel foi efetivamente aplicada.

Aumente para 512M se utilizar alguma das seguintes situações:

- Produtos variáveis com dezenas de variações cada um.
- WooCommerce Subscriptions ou uma extensão de reservas.
- Dois ou mais plugins de gateway de pagamento ativos em simultâneo.
- Uma sincronização de inventário ou contabilidade a correr em segundo plano.

Páginas de administração do WooCommerce lentas ou com tempo de resposta esgotado são, normalmente, uma combinação de memória e tempo de execução. Aumente também o **Tempo máximo de execução** para 120 segundos e considere as opções de cache em [Configurar o WooCommerce](https://support.kapsulehost.com/pt-pt/wordpress-woocommerce).

## Verifique Também a Sua Versão PHP

Se os erros de memória começaram logo após uma alteração do PHP, a própria versão pode estar envolvida: um plugin mais antigo pode ter fugas de memória graves num runtime mais recente. O cartão **Versão PHP** no topo do mesmo separador mostra o que o site está a utilizar e permite alternar entre PHP 8.4, 8.3, 8.2 e 8.1.

Alterar a versão reinicia o pool PHP do site, pelo que deve esperar alguns segundos de indisponibilidade. Mais detalhes em [Alterar a Sua Versão PHP](https://support.kapsulehost.com/pt-pt/changing-php-version).

## Quando Mais Memória Não Resolve

Se aumentar o limite duas vezes sem qualquer melhoria, significa que algo está a consumir memória que não deveria. Siga esta ordem:

1. **Faça uma cópia de segurança.** [Fazer uma Cópia de Segurança](https://support.kapsulehost.com/pt-pt/taking-a-backup) primeiro, sempre.
2. **Encontre o plugin.** Desative os plugins em metades, em vez de um de cada vez: desligue metade, volte a testar, depois divida a metade que continuar a falhar. Também pode utilizar o **Modo de segurança de plugins** no separador **WordPress**, depois **Plugins**, que desliga todos os plugins de uma vez, sem eliminar quaisquer dados de plugins.
3. **Teste o tema.** Mude temporariamente para um tema predefinido do WordPress. Um tema que executa consultas pesadas em cada carregamento de página produz exatamente este padrão.
4. **Observe a operação, não o site.** Se apenas as importações falharem, o problema é o tempo de execução e o tamanho do lote, não a memória. Importe em blocos mais pequenos.
5. **Leia o registo.** O **Registo de erros do PHP** no separador PHP indica o ficheiro e a linha onde a memória se esgotou, o que, normalmente, identifica o plugin de imediato.

Se continuar sem resolver depois de 512M e de um teste limpo de plugins, envie um email para [support@kapsulehost.com](mailto:support@kapsulehost.com) com o domínio do site, a linha exata do erro fatal e o que estava a fazer quando ocorreu.
