Saltar para o conteúdo
BeoHosting
BeoHosting
WordPress

Guia do wp-config.php do WordPress

BeoHosting Team··11 min de leitura de leitura
Guia do wp-config.php do WordPress

O que é o wp-config.php

O ficheiro wp-config.php é um dos ficheiros mais importantes de uma instalação WordPress, porque contém a configuração que controla a forma como o WordPress comunica com a base de dados, gere a segurança, trata os erros e atribui os recursos do sistema. Este ficheiro é criado durante a instalação do WordPress e encontra-se na diretoria raiz do site. Ao contrário das definições do painel de administração, armazenadas na base de dados, as definições do wp-config.php são aplicadas antes de o WordPress sequer estabelecer ligação à base de dados.

Compreender o wp-config.php é essencial para quem gere um site WordPress de forma séria. Uma configuração correta deste ficheiro pode melhorar significativamente a segurança, o desempenho e a estabilidade do site. Erros no wp-config.php podem tornar o site completamente indisponível, porque o ficheiro é carregado antes de tudo o resto. Neste guia, percorremos todas as definições importantes com explicações do que fazem, que valores utilizar e quando alterá-los.

Definições da base de dados

Constantes básicas

A DB_NAME define o nome da base de dados que o WordPress utiliza. Este nome é criado no painel de controlo do alojamento ou através da linha de comandos do MySQL antes da instalação do WordPress. A DB_USER é o nome de utilizador para o acesso à base de dados, com privilégios suficientes para leitura e escrita. A DB_PASSWORD é a palavra-passe desse utilizador, que deve ser forte e única. Nunca utilize o utilizador root para o WordPress, pois isso representa um risco de segurança.

A DB_HOST é o endereço do servidor da base de dados, normalmente localhost quando o servidor web e a base de dados estão no mesmo servidor. Em algumas plataformas de alojamento, este valor pode ser diferente, como um endereço IP ou o caminho de um socket. A DB_CHARSET define o conjunto de caracteres da base de dados e deve ser utf8mb4, que suporta todos os caracteres Unicode, incluindo emojis. A DB_COLLATE define as regras de ordenação e comparação de texto e é normalmente deixada vazia para que o MySQL utilize a collation predefinida para o charset selecionado.

Prefixo das tabelas

A constante table_prefix define o prefixo de todas as tabelas do WordPress na base de dados. O valor predefinido é wp_, mas recomenda-se alterá-lo para algo único, como abc123_, durante a instalação. Esta é uma medida de segurança básica que dificulta os ataques de injeção de SQL, porque o atacante não consegue adivinhar os nomes das tabelas. Alterar o prefixo após a instalação é possível, mas exige renomear cuidadosamente todas as tabelas e atualizar as referências nas opções e nos metadados dos utilizadores.

Chaves de segurança e salts

O que são as chaves de segurança

O WordPress utiliza oito constantes de segurança — AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY e as suas variantes SALT correspondentes. Estas chaves são utilizadas para encriptar a informação armazenada nos cookies dos utilizadores. Sem estas chaves, as sessões dos utilizadores ficariam vulneráveis à interceção e ao roubo de identidade. Cada chave deve ser única, longa e aleatória, com uma combinação de letras, números e caracteres especiais.

O WordPress disponibiliza um gerador online em api.wordpress.org/secret-key que gera oito chaves aleatórias prontas a copiar para o wp-config.php. As alterações periódicas das chaves são recomendadas, sobretudo após um incidente de segurança, porque alterar as chaves invalida todas as sessões existentes e obriga todos os utilizadores a iniciar sessão novamente. Esta é uma forma eficaz de terminar imediatamente a sessão de todos os utilizadores, incluindo um eventual atacante que tenha comprometido uma conta de administrador.

Implementação correta

Copie as chaves geradas e substitua os valores de marcador no wp-config.php. Cada chave deve ser única e nunca deve utilizar as mesmas chaves em dois sites diferentes. Se migrar um site para um novo servidor, copie as chaves do wp-config.php antigo para que os utilizadores não tenham de iniciar sessão novamente. Mantenha uma cópia de segurança das chaves num local seguro, porque a sua perda não causa danos permanentes, mas obriga todos os utilizadores a iniciar sessão novamente.

Modo de depuração

WP_DEBUG

A constante WP_DEBUG controla se o WordPress apresenta erros, avisos e notices de PHP. O valor predefinido é false, que oculta todos os erros dos visitantes. Definir como true ativa a apresentação de erros e é útil durante o desenvolvimento ou a resolução de problemas. Num site de produção, a WP_DEBUG nunca deve estar a true, porque apresentar erros aos visitantes revela informações sobre a estrutura do site que um atacante pode explorar.

WP_DEBUG_LOG

Quando a WP_DEBUG_LOG está definida como true, o WordPress regista todos os erros no ficheiro wp-content/debug.log em vez de os apresentar no ecrã. Isto é ideal para sites de produção onde pretende acompanhar os erros sem os mostrar aos visitantes. Pode definir um caminho personalizado com a WP_DEBUG_LOG configurada para um caminho absoluto até ao ficheiro de log. Reveja regularmente o ficheiro de log e elimine-o quando se tornar demasiado grande, porque pode ocupar um espaço de disco significativo.

WP_DEBUG_DISPLAY

A WP_DEBUG_DISPLAY controla se os erros são apresentados na página HTML. Defina como false em combinação com a WP_DEBUG a true e a WP_DEBUG_LOG a true, para que os erros sejam registados mas não apresentados aos visitantes. A SCRIPT_DEBUG, quando definida como true, força o WordPress a utilizar versões não comprimidas dos ficheiros CSS e JavaScript, o que é útil no desenvolvimento de temas e plugins, mas torna o site lento em produção.

Limite de memória

WP_MEMORY_LIMIT

A WP_MEMORY_LIMIT define a quantidade máxima de memória PHP que o WordPress pode utilizar para processar pedidos no frontend. O valor predefinido é 40M para instalações standard e 64M para Multisite. Para sites com muitos plugins, grandes bibliotecas multimédia ou WooCommerce, recomenda-se aumentar para 128M ou 256M. Este valor não pode exceder a definição PHP memory_limit do servidor, porque o WordPress não pode pedir mais memória do que o PHP permite.

WP_MAX_MEMORY_LIMIT

A WP_MAX_MEMORY_LIMIT define o limite de memória para o painel de administração, que normalmente exige mais memória do que o frontend devido ao processamento de imagens, às atualizações e à gestão de conteúdos. O valor predefinido é 256M. Se obtiver erros como "Allowed memory size exhausted" no painel de administração, aumente este valor. Note que um limite de memória excessivamente elevado pode mascarar um problema de fuga de memória num plugin ou tema em vez de o resolver.

Constantes avançadas

Gravação automática e revisões

A AUTOSAVE_INTERVAL define o intervalo em segundos entre as gravações automáticas dos artigos no editor. O valor predefinido é de 60 segundos. Reduzir para 30 segundos proporciona cópias de segurança mais frequentes do conteúdo durante a escrita, mas aumenta os pedidos ao servidor. A WP_POST_REVISIONS controla quantas revisões são armazenadas para cada artigo. Por predefinição, o WordPress mantém um número ilimitado de revisões, o que pode encher a base de dados em sites com muito conteúdo. Defina um número específico, como 5 ou 10, para um compromisso razoável entre a segurança do conteúdo e o tamanho da base de dados.

Reciclagem

A EMPTY_TRASH_DAYS define quantos dias o conteúdo eliminado é mantido na reciclagem antes da eliminação permanente. O valor predefinido é de 30 dias. Reduza para 7 dias se quiser limpar automaticamente o conteúdo eliminado mais depressa. Defina como 0 para desativar completamente a reciclagem, o que significa que o conteúdo é eliminado permanentemente de imediato. Isto não é recomendado, pois não existe opção de recuperação para conteúdo eliminado acidentalmente.

Atualizações automáticas

A WP_AUTO_UPDATE_CORE controla as atualizações automáticas do núcleo do WordPress. O valor true ativa todas as atualizações, incluindo as versões principais; minor ativa apenas as atualizações de segurança menores, que é a predefinição; e false desativa completamente as atualizações automáticas. A AUTOMATIC_UPDATER_DISABLED definida como true desativa todos os processos de atualização automática, incluindo os plugins e temas com a opção de atualização automática.

SSL e URLs

A FORCE_SSL_ADMIN definida como true força o HTTPS no início de sessão e no painel de administração. Saiba mais sobre a configuração de certificados SSL. Isto é obrigatório em todos os sites com um certificado SSL, porque protege as credenciais do administrador contra a interceção. A WP_HOME e a WP_SITEURL definem o URL do site e podem ser úteis ao migrar um site para um novo endereço. Estas constantes têm prioridade sobre as definições da base de dados, o que significa que pode utilizá-las para alterações rápidas de URL sem acesso ao painel de administração.

Cron e tarefas agendadas

O WordPress utiliza o sistema wp-cron para tarefas agendadas, como a publicação de artigos agendados, a verificação de atualizações e o envio de notificações por email. O WP-cron é executado a cada visita ao site, o que não é ideal para sites com tráfego baixo ou muito elevado. A DISABLE_WP_CRON definida como true desativa este sistema e exige a configuração de um cron de sistema que execute o wp-cron.php em intervalos regulares, normalmente a cada 5 ou 15 minutos.

A ALTERNATE_WP_CRON utiliza um método alternativo para executar tarefas agendadas que é mais fiável em alguns ambientes de alojamento. A WP_CRON_LOCK_TIMEOUT define o tempo em segundos durante o qual o wp-cron fica bloqueado para impedir o lançamento simultâneo de várias instâncias. Na BeoHosting, os nossos planos de alojamento suportam o cron de sistema, que é mais fiável do que o sistema cron interno do WordPress, e podemos configurá-lo para o seu site.

Constantes de segurança

Proteção do sistema de ficheiros

A DISALLOW_FILE_EDIT definida como true desativa o editor integrado de temas e plugins no painel de administração. Esta é uma medida de segurança importante, porque se um atacante comprometer uma conta de administrador não poderá utilizar o editor para injetar código malicioso nos ficheiros de temas ou plugins. A DISALLOW_FILE_MODS vai um passo mais além e desativa a instalação e atualização de temas e plugins através do painel de administração, obrigando a que todas as alterações sejam feitas por FTP ou SSH.

Mover o wp-config.php uma diretoria acima da raiz do site é possível, porque o WordPress procura automaticamente o ficheiro na diretoria superior. Isto impede o acesso direto ao ficheiro através do navegador web caso o PHP deixe de funcionar e o servidor comece a servir os ficheiros PHP como texto. Combinar estas medidas com permissões de ficheiro corretas, 644 para o wp-config.php ou até 440 em servidores onde o utilizador do servidor web tem acesso, melhora significativamente a segurança.

Otimização do desempenho

Caching e compressão

A WP_CACHE definida como true ativa o mecanismo para plugins de cache avançados como o WP Super Cache ou o W3 Total Cache. Esta constante permite carregar o ficheiro advanced-cache.php que o plugin de cache cria para processar os pedidos antes de o WordPress carregar todos os plugins e o tema. Sem esta constante, os plugins de cache não conseguem funcionar de forma ótima. A compressão de conteúdo com define COMPRESS_CSS true e define COMPRESS_SCRIPTS true pode reduzir o tamanho dos ficheiros CSS e JavaScript.

Base de dados

A SAVEQUERIES definida como true regista todas as consultas à base de dados e o tempo de execução na variável global wpdb queries. Isto é útil para diagnosticar um site lento, porque permite identificar consultas que demoram demasiado tempo ou que são repetidas desnecessariamente. Nunca deixe esta opção ativada em produção, porque armazenar todas as consultas em memória aumenta o consumo de recursos. Utilize-a apenas temporariamente para análise de desempenho, em combinação com um plugin como o Query Monitor.

Conclusão

O ficheiro wp-config.php é o centro de controlo da instalação WordPress, definindo o comportamento do site a um nível fundamental. A configuração correta das chaves de segurança, do modo de depuração, dos limites de memória e das constantes avançadas pode melhorar significativamente a segurança, o desempenho e a estabilidade do site. Reveja e atualize regularmente as definições de acordo com o crescimento do site e as alterações da infraestrutura. Na BeoHosting, a nossa equipa pode ajudar a otimizar as definições do wp-config.php para um desempenho máximo na nossa plataforma de alojamento.

BeoHosting Team

10+ anos de experiência — Especialistas em alojamento web e infraestrutura

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Última atualização: