Arquivo WP-Config Vitaminado: Não se conforme com o padrão, Otimize-o

Arquivo WP-Config Vitaminado: Não se conforme com o padrão, Otimize-o

Como o próprio nome sugere, o arquivo wp-config é responsável por conter os detalhes de configuração do WordPress. Quando instalamos um site, esse arquivo é criado com uma configuração básica, mas por que se contentar com isso? Vamos ver como você pode criar seu arquivo wp-config vitaminado.

Neste artigo, eu gostaria de:

  1. Explicar o que é o arquivo wp-config e para que serve.
  2. Mostrar as diferentes maneiras de criá-lo.
  3. Revelar como é um arquivo wp-config em uma instalação limpa do WordPress.
  4. Dar luz a alguns truques de configuração para melhorar, tanto o desempenho quanto a segurança do seu site.

O que é o arquivo wp-config e para que serve?

Bem, como eu disse no começo deste artigo, é o arquivo onde as configurações do WordPress são salvas. Podemos encontrá-lo na pasta raiz do site, depois de instalar o WordPress. Ou seja, se você acabou de fazer o download, mas ainda não o instalou, ele não aparecerá.

Como você pode criar o arquivo wp-config?

À primeira vista parece muito fácil e você tem duas opções: a forma automática (que é como 99% dos usuários fazem, inclusive eu) ou a manual.

A maneira automática é criá-lo através da instalação do WordPress. Ao inserir o URL do seu site pela primeira vez, você obtém a tela de configuração do WordPress. Depois de preencher todas as informações solicitadas, o arquivo wp-config é gerado.

A outra maneira é duplicar o arquivo wp-config-sample.php, renomeá-lo com wp-config.php e editá-lo com sua configuração.

Quais dados de configuração o arquivo wp-config.php possui em uma instalação limpa do WordPress?

Parâmetros de acesso ao banco de dados.
Esta é a primeira informação que aparece na tela ao abrir seu arquivo wp-config.

define( 'DB_NAME', 'your-database-name' );
define( 'DB_USER', 'your-database-user' );
define( 'DB_PASSWORD', 'your-database-password' );

define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8' );
define( 'DB_COLLATE', '' );

Como você pôde ver, essas constantes se referem ao nome do banco de dados ao usuário e a senha de acesso ao servidor no qual está instalado, a codificação de caracteres e ao agrupamento.

Quando você instala o WordPress, esses parâmetros são preenchidos automaticamente, desde que você tenha escolhido criar o arquivo wp-config automaticamente. Caso contrário, você precisará preenchê-los manualmente.

As informações dos três primeiros variam de acordo com o banco de dados do seu site, a menos que você tenha todas as instalações do WordPress no mesmo banco de dados (o que eu não recomendo), enquanto as informações dos três últimos, geralmente é comum para todos os bancos de dados.

Chaves de autenticação exclusivas
Sob os parâmetros de configuração do banco de dados, você encontrará as chaves de autenticação exclusivas. Podemos defini-las como senhas, com elementos que tornam sua descriptografia mais difícil e, portanto, mais complicado de quebrar a barreira de segurança de um site.

define ('AUTH_KEY', 'sua-frase-aleatória-criptografada-aqui');
define ('SECURE_AUTH_KEY', 'sua-frase-aleatória-criptografada-aqui');
define ('LOGGED_IN_KEY', 'sua-frase-aleatória-criptografada-aqui');
define ('NONCE_KEY', 'sua-frase-aleatória-criptografada-aqui');

define ('AUTH_SALT', 'sua-frase-aleatória-criptografada-aqui');
define ('SECURE_AUTH_SALT', 'sua-frase-aleatória-criptografada-aqui');
define ('LOGGED_IN_SALT', 'sua-frase-aleatória-criptografada-aqui');
define ('NONCE_SALT', 'sua-frase-aleatória-criptografada-aqui');

Se você optou pela configuração manual do arquivo wp-config, precisará gerar as chaves para inseri-las aqui. Para isso, o WordPress coloca à sua disposição um gerador online, para que você não precise pensar em todos esses personagens.

Por outro lado, também é recomendável que você altere essas chaves de tempos em tempos (a cada mês, por exemplo) como forma de protegê-las.

Prefixo do banco de dados
Abaixo, você pode encontrar o prefixo das tabelas do banco de dados.

$table_prefix = 'wp_';

O WordPress é composto de 13 tabelas básicas, além de todas as que podem ser criadas ao instalar plugins … e algum outro tema. O prefixo é usado para que, no caso de querer usar o mesmo banco de dados para várias instalações (o que já disse que não recomendo), as tabelas não se sobrescrevam.

Por outro lado, alterar o prefixo padrão também pode nos ajudar a evitar possíveis ataques.

Modo de depuração do WordPress
Este é um parâmetro muito útil, especialmente se você se dedicar ao desenvolvimento de plugins ou temas para o WordPress, pois ele pode ocultar (ou mostrar) erros de operação e compatibilidade, com outros plugins ou com o próprio núcleo.

define ('WP_DEBUG', false);

Por padrão, o modo de depuração está desativado (e também deve estar em produção). Mas para testar no seu ambiente de trabalho local, o ideal é ativá-lo, definindo a constante como TRUE e limpar seu código de incidentes.

Caminho da instalação do WordPress e o arquivo em que as variáveis ​​e outros arquivos usados ​​são definidos
Embora essas informações também sejam definidas no arquivo wp-config.php, você seguirá o que diz algumas linhas acima e interromperá a edição do arquivo a partir daí. Editar esses arquivos e até mesmo essas linhas, sem conhecimento, pode fazer com que você carregue a web (e, se você tiver conhecimento, crie melhor seu próprio CMS / Framework e não brinque com o núcleo do WordPress).

As informações de que estou falando são as seguintes:

if (! definido ('ABSPATH'))
define ('ABSPATH', nome do diretório (FILE). '/');

require_once (ABSPATH. 'wp-settings.php');

Bem, até agora você conseguiu ver o que o arquivo serial wp-config traz, mas não veio aqui para isso, certo? Vamos ver como você pode vitaminar o seu arquivo.

Truques de configuração para melhorar o desempenho e a segurança da Web

  • aprimorando o arquivo wp-config

Evite atualizações automáticas
O WordPress, por padrão, se atualiza automaticamente se você não fizer isso sozinho. Embora seja sempre necessário atualizar o kernel, os plugins e os temas, há momentos em que isso pode causar conflitos.

Por esse motivo, prefiro sempre atualizar manualmente, fazendo um backup anterior, para que, em caso de falha, você tenha a opção de retornar a um estado anterior. Para desativar as atualizações automáticas do WordPress, você pode usar a seguinte constante:

define ('AUTOMATIC_UPDATER_DISABLED', true);

Ativar e desativar o cache do WordPress
Se você trabalha localmente, talvez o cache ativado seja um truque ao exibir as alterações na frente e certamente na produção isso ajuda muito. Na verdade, favorece a velocidade da Web. Com essas três constantes, você pode ativar (ou desativar o cache), conforme necessário.

//Ativar o caché
define( 'WP_CACHE', true );
define( 'ENABLE_CACHE', true );

//Desativar o caché
define( 'WP_CACHE', false );
define( 'DISABLE_CACHE', true );

Limitar (ou desativar) comentários do WordPress
Não sei se notou, mas, toda vez que você escreve uma entrada e salva, uma mensagem aparece logo acima do botão de publicação, que diz «X revisões». Essas são cópias da entrada e que são salvas no banco de dados, como um controle de versão.

Agora pense no número de vezes que você pode clicar em “Salvar” ao escrever uma entrada. Colocamos uma média de 10? Supondo que tenha 100 entradas em seu blog, e considerando que para cada uma você salvou cópias 10 vezes, então você possui 1000 registros no banco de dados. 1000 registros para apenas 100 entradas. Dessa forma, você tem mais de 900. 900 registros ocupando um espaço valioso no seu banco de dados.

O que fazer, então?

Com essa constante, você pode limitar o número de revisões criadas para o número que você indicar. Assim, quando você exceder esse número, excluirá automaticamente as cópias.

define ('WP_POST_REVISIONS', 5);

Você também pode dizer para não salvar nenhum, desde que defina a constante como FALSE.

define ('WP_POST_REVISIONS', false);

Esvaziar o lixo automaticamente
Outra coisa que enche o banco de dados é o conteúdo que está no lixo. Ao enviar para a lixeira os conteúdos que não interessam mais, você apenas os tira da vista, no entanto eles continuam ocupado espaço.

Decerto que é comum esquecer de esvaziar a lixeira, mas agora você já aprendeu que, para manter o espaço no seu banco de dados, essa é uma atitude extremamente necessária.

Mas tenha certeza, se você também tem uma memória de peixes como eu, há uma solução. Ao adicionar esta linha em nosso arquivo wp-config, você pode dizer ao WordPress para esvaziar o lixo automaticamente a cada X dias (eu recomendo colocar uma semana ou mais, para que você tenha tempo de reconsiderar se realmente deseja excluir esse conteúdo ou não).

define ('EMPTY_TRASH_DAYS', 7);

Desativar o editor de código do WordPress
Como já deve ter visto, o WordPress incorpora um editor de código em seu wp-admin, a partir do qual você pode acessar e modificar o código do tema e os plug-ins instalados. À princípio, embora pareça prático, uma vez que poupa a necessidade de fazer o download de um arquivo para editá-lo, isso deixa seu site muito vulnerável. Aconselho, portanto, desativá-lo. Para tal, inclua a seguinte linha.

define ('DISALLOW_FILE_EDIT', false);

Evite a possibilidade de instalar, desinstalar e atualizar plugins
Mas, se além de editar o código, você deseja evitar a instalação de novos plug-ins e atualizar ou desinstalar os existentes, use a constante definida como TRUE.

Á princípio, recomendo essa configuração apenas se você for dedicado à manutenção na Web e se deseja impedir que os clientes quebrem alguma coisa. Caso contrário, não impeça o usuário de atualizar seus plug-ins, sempre que desejar.

define ('DISALLOW_FILE_MODS', true);

A propósito, adicionando essa linha, a anterior não é necessária.

Definir limite de memória para PHP
O WordPress, como qualquer outro aplicativo desenvolvido com PHP, consome memória do servidor. Há ocasiões, portanto, que dependendo do processo, se a memória máxima necessária for atingida, o servidor lançará um erro e interromperá a execução do aplicativo.

Para evitar isso, aumente o limite de memória do servidor, incluindo a constante a seguir no seu arquivo wp-config.  Todavia, isso apenas se ajustará ao WordPress, já que não se aplica aos outros aplicativos que talvez tenha no seu servidor.

define ('WP_MEMORY_LIMIT', '128M');

Também podemos definir um limite máximo de memória, para não abusar.

define ('WP_MAX_MEMORY_LIMIT', '256M');

Desativar o CRON do WordPress
As tarefas do CRON permitem automatizar os processos do site, como criar um backup ou publicar uma entrada em um determinado momento. O WordPress, por padrão, traz seu próprio sistema de tarefas CRON. No entanto, ele só funciona se a web receber uma visita naquele dia. O que acontece se isso não se realizar? Bem, naquele dia, o site não seria copiado ou a entrada não seria publicada.

Para evitar isso, o que eu recomendo é desativar o sistema CRON do WordPress com esta linha …

define ('DISABLE_WP_CRON', true);

… E crie uma tarefa no seu servidor que execute o arquivo wp-cron do WordPress X vezes por dia. Dessa forma, você não apenas impedirá a execução de algo em seu site, mas também não retardará sua operação.

Otimizar banco de dados WordPress
Como já disse anteriormente, muitos plugins e temas, depois de desinstalados (ou até atualizados), deixam resíduos no banco de dados, o que ocupa um espaço valioso. Para eliminar esses resíduos, recomendo fazer uma otimização do banco de dados toda vez X (eu costumo fazer isso uma vez por mês).

Mas como você pode fazer isso? Bem, muito fácil. Primeiro, você deve adicionar esta linha ao arquivo wp-config.

define ('WP_ALLOW_REPAIR', true);

Em seguida, digite o seguinte URL (substitua “seudominio.com” pelo domínio do seu site): http://www.seudominio.com/wp-admin/maint/repair.php

Depois de fazer a otimização, defina a constante como FALSE e TRUE novamente, na próxima vez que desejar fazer outra otimização do banco de dados.

Compactar arquivos
Para finalizar, mostrarei três linhas que ajudam a melhorar a velocidade do seu site:

O primeiro deles servirá para compactar os arquivos CSS.
define ('COMPRESS_CSS', true);
O segundo, tem a mesma operação, mas para arquivos JavaScript na web.
define ('COMPRESS_SCRIPTS', true);
E o terceiro ativará a compactação GZIP para a web.
define ('ENFORCE_GZIP', true);
Com essas três linhas, você pode evitar a instalação de um plug-in de compactação de arquivos.

Bônus extra
Por último, vou revelar um truque interessante. Algumas das constantes que venho ensinando são para ambientes de desenvolvimento, já outras para os de produção.

Sem me alongar muito, os próprios parâmetros do banco de dados podem variar do servidor local para o servidor da web, portanto, dependendo do ambiente no qual está trabalhando, talvez tenha que adicionar linhas, remover outras e alterar valores.

Enfim, para evitar tudo isso, costumo definir uma constante e atribuo a ela o ambiente em que estou agora, eu as chamei de “local” e “site”, mas você pode chamá-las do que quiser.

define( 'WORKING_IN', 'local' );

Então, usando um switch, adiciono as constantes de que preciso com seus respectivos valores. Dessa forma, com apenas algumas alterações no código, consigo configurar o ambiente de que preciso.

switch( WORKING_IN )
{
case 'local':
//escreva aqui suas configurações local
break;
case 'website':
//escreva aqui suas configurações de produção
break;
}

É isso, espero ter ajudado você ou a sua empresa

Ah! caso necessite uma Hospedagem de Sites e Lojas Virtuais conte com meus servidores, todos são otimizados para wordpress e contam com meu apoio técnico para otimização do wp-config.php

Sobre Hugo Calixto

Hugo CalixtoOlá! Sou Hugo Calixto, Programador WEB e Profissional de SEO desde 2017.

Sou natural do Rio de Janeiro e vivo em São Paulo e Madrid.

O que faço: Desenvolvo Sites Personalizados (com ou sem Wordpress), Administro Servidores e sou Especialista em SEO (otimização de sites para mecanismos de busca).

E o que mais gosto no meu trabalho é : "Ajudar as pessoas" e "Experimentar de tudo" e "usar o que aprendo para poder fazer coisas novas".

Ah! Se precisar de ajuda, não excite, chama o Hugo Calixto.