WordPress Logo

Se você já fez pelo menos uma instalação do WordPress, teve que alterar algumas configurações básicas do arquivo wp-config.php. Este arquivo está presente na raiz da instalação do CMS e trata das configurações sobre a base de dados, chaves únicas de autenticação e salts (para segurança) e o modo de desenvolvimento ou modo debugging do WordPress para desenvolvedores.

De fato, o arquivo wp-config.php não existe quando você acaba de baixar o WordPress, sendo necessário criá-lo com base em outro arquivo, chamado wp-config-sample.php.

O wp-config-sample.php traz as configurações mais básicas possíveis para sua instalação do WordPress, somente o necessário para seu CMS funcionar corretamente, e como ele é um exemplo para criarmos nosso wp-config.php, acabamos por não conhecer partes mais avançadas sobre as possibilidades de configurações.

Neste artigo vamos analisar as configurações mais avançadas que pode modificar completamente o funcionamento do seu WordPress. Também vamos ver algumas configurações básicas para que você entenda como funciona a configuração.

wp-config-sample.php e wp-config.php

A primeira coisa que você deve fazer em qualquer instalação do WordPress, é copiar o arquivo wp-config-sample.php para o novo arquivo (que você deve criar) chamado de wp-config.php.

Feito isso, você terá o seguinte:

<?php
/** 
 * As configurações básicas do WordPress.
 *
 * Esse arquivo contém as seguintes configurações: configurações de MySQL, Prefixo de Tabelas,
 * Chaves secretas, Idioma do WordPress, e ABSPATH. Você pode encontrar mais informações
 * visitando {@link http://codex.wordpress.org/Editing_wp-config.php Editing
 * wp-config.php} Codex page. Você pode obter as configurações de MySQL de seu servidor de hospedagem.
 *
 * Esse arquivo é usado pelo script ed criação wp-config.php durante a
 * instalação. Você não precisa usar o site, você pode apenas salvar esse arquivo
 * como "wp-config.php" e preencher os valores.
 *
 * @package WordPress
 */

// ** Configurações do MySQL - Você pode pegar essas informações com o serviço de hospedagem ** //
/** O nome do banco de dados do WordPress */
define('DB_NAME', 'nomedoBD');

/** Usuário do banco de dados MySQL */
define('DB_USER', 'username_here');

/** Senha do banco de dados MySQL */
define('DB_PASSWORD', 'password_here');

/** nome do host do MySQL */
define('DB_HOST', 'localhost');

/** Conjunto de caracteres do banco de dados a ser usado na criação das tabelas. */
define('DB_CHARSET', 'utf8');

/** O tipo de collate do banco de dados. Não altere isso se tiver dúvidas. */
define('DB_COLLATE', '');

/**#@+
 * Chaves únicas de autenticação e salts.
 *
 * Altere cada chave para um frase única!
 * Você pode gerá-las usando o {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
 * Você pode alterá-las a qualquer momento para desvalidar quaisquer cookies existentes. Isto irá forçar todos os usuários a fazerem login novamente.
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

/**#@-*/

/**
 * Prefixo da tabela do banco de dados do WordPress.
 *
 * Você pode ter várias instalações em um único banco de dados se você der para cada um um único
 * prefixo. Somente números, letras e sublinhados!
 */
$table_prefix  = 'wp_';


/**
 * Para desenvolvedores: Modo debugging WordPress.
 *
 * altere isto para true para ativar a exibição de avisos durante o desenvolvimento.
 * é altamente recomendável que os desenvolvedores de plugins e temas usem o WP_DEBUG
 * em seus ambientes de desenvolvimento.
 */
define('WP_DEBUG', false);

/* Isto é tudo, pode parar de editar! :) */

/** Caminho absoluto para o diretório WordPress. */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');
	
/** Configura as variáveis do WordPress e arquivos inclusos. */
require_once(ABSPATH . 'wp-settings.php');

Para seu CMS funcionar, você deve configurar os dados sobre as Configurações do MySQL (que você pode obter no seu serviço de hospedagem) e as Chaves únicas de autenticação e salts (que você pode obter aqui).

Veja um exemplo de configuração que utilizo em meu servidor local:

/** Usuário do banco de dados MySQL */
define('DB_USER', 'root');

/** Senha do banco de dados MySQL */
define('DB_PASSWORD', ''); // O usuário do BD não tem senha

/** nome do host do MySQL */
define('DB_HOST', 'localhost');

/** Conjunto de caracteres do banco de dados a ser usado na criação das tabelas. */
define('DB_CHARSET', 'utf8');

/** O tipo de collate do banco de dados. Não altere isso se tiver dúvidas. */
define('DB_COLLATE', '');

E as Chaves únicas de autenticação e salts:

/**#@+
 * Chaves únicas de autenticação e salts.
 *
 * Altere cada chave para um frase única!
 * Você pode gerá-las usando o {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
 * Você pode alterá-las a qualquer momento para desvalidar quaisquer cookies existentes. Isto irá forçar todos os usuários a fazerem login novamente.
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         '5A+$=3kZOPz8JV+^pJ_e!57HiddCd>P<znhOWc~!|ix54DHg`i+OYH7}J31qO|0A');
define('SECURE_AUTH_KEY',  '< O2k<KcpoMuM7-]{8T=:C.DB<76O`07z^/2}swjHVRc{{DyYQUb^`|<qi9^B0S-');
define('LOGGED_IN_KEY',    '8;6t+cIv9()pN:WI{ZbUYn4K[wVme*6L.7Xw|J-d.~`mftm)[email protected](6s');
define('NONCE_KEY',        'QF5%WO,!v|6DPK4?E%?RsRe+HR}S=2L$q,5&tDjkM:evk<+j<[email protected]&#)W+|)|t!');
define('AUTH_SALT',        'a5/DqvSfD%obig4TJz$o(2^ wCm|#RtK`]p?wh2lJ|%|w[%R.YMF)WdnL[$rDl#>');
define('SECURE_AUTH_SALT', '.UtG~oZ=.-dLVm.[VD$fYI2[[email protected])vwSC;y4F<Z%j$f2}DqL5_cw;L$t8)~');
define('LOGGED_IN_SALT',   '[email protected]_l!2vjN+H<Aw]@bGe_(FfFfK11[] <:O)at`eGo+lAZ(%7=vR-o_3z');
define('NONCE_SALT',       'Ez{x56bA$$E;8R_EP$2BDmRfLfTB*_{.); f $RNp:!BYbbk-}rq<W;e!|Id-=JQ');

Essas chaves são geradas automaticamente, você só precisa copiá-las e colar no seu wp-config.php.

Se as configurações acima estiverem corretas para sua base de dados MySQL, seu WordPress já deve estar funcionando. Você só vai precisar configurar seu novo site com as informações requisitadas por um formulário que o CMS gera para você preencher.

Detalhe importante sobre as Chaves únicas de autenticação e salts: Elas servem para dar mais segurança ao seu WordPress encriptando os cookies utilizados para autenticação. Você pode alterá-las há qualquer momento para fazer com que todos os usuários logados no seu site saiam e tenham de fazer login novamente.

Indo mais além

Talvez seu servidor de hospedagem tenha configurações diferenciadas, como a porta para utilização do servidor MySQL, ou coisas do tipo. Veja abaixo como fazer algumas configurações diferenciadas.

Porta do servidor MySQL

Se a porta do seu servidor MySQL não for a padrão, você pode colocar dois pontos na frente do nome do host e adicionar o número da porta, veja um exemplo:

define('DB_HOST', 'meuservidormysql:3307');

// OU

define('DB_HOST', 'localhost:3307'); // Pelo nome do host

// Ou ainda

define('DB_HOST', '127.0.0.1:3307'); // pelo IP

 Charset e collate do BD

Há pouco tempo criei um artigo dando várias dicas sobre as configurações de charset (codificação de caracteres) para desenvolvedores, e conforme descrevi, sempre utilize UTF-8 em qualquer área do seu desenvolvimento.

Se por algum motivo você precisar modificar essa configuração (da qual não sou a favor), basta modificar a constante:

define('DB_CHARSET', 'utf8');

Você também pode modificar o tipo de collate do banco de dados (BD), mas essa configuração também não deve ser alterada. Se a constante DB_COLLATE estiver vazia, o servidor irá selecionar isso automaticamente para você. Mesmo assim, caso queira modificar, veja um exemplo abaixo:

define('DB_COLLATE', 'utf8_turkish_ci');

Collate trata da ordem de classificação do conjunto de caracteres (charset).

Prefixo das tabelas

Se você pretende deixar o seu WordPress ainda mais diferenciado e seguro do que outras instalações, basta modificar o prefixo das tabelas da base de dados.

Eu sempre ouvi falar que “quando mais você ocultar detalhes sobre sua base de dados, mais seguro estará”, e isso é totalmente ao contrário no WordPress. Se você deixar o prefixo de tabelas padrão “wp_”, todo mundo do mundo vai saber todos os nomes de suas tabelas.

Você pode alterar isso modificando a seguinte linha do arquivo wp_config.php.

// Ops, agora está diferente
$table_prefix  = 'ops_';

Fazendo isso, todos os nomes de tabelas do seu WordPress irá iniciar com “ops_”, por exemplo “ops_options”, “ops_posts”, e assim por diante.

Nota: Isso deve ser feito antes da instalação do seu WordPress.

Configurações avançadas do wp-config.php

A partir daqui, vamos falar apenas sobre configurações avançadas, que modificam o modo como o seu WordPress irá funcionar. Muito cuidado ao alterar qualquer uma das configurações descritas abaixo, pois seu site poderá parar de funcionar corretamente.

Endereço do core do WordPress

Existe uma configuração que está na tabela de opções “wp_options” chamada “siteurl”. Essa configuração pode ser definida pelo próprio dono do site indo até “Configurações” – “Geral”.

Você pode sobrescrever essa opção utilizando a seguinte constante:

define('WP_SITEURL', 'http://exemplo.com/wordpress');

Essa constante define onde estão os arquivos do “Core” do seu WordPress e deve incluir “http://” e não pode ter uma barra (/) no final.

Endereço da home do WordPress

Parecida com a opção anterior, aqui você estará sobrescrevendo a opção “home” da tabela “wp_options”. Para isso basta definir aconstante WP_HOME.

define('WP_HOME', 'http://exemplo.com/wordpress');

Mas, ao contrário da opção anterior, essa configuração indica o local para onde os usuários devem navegar para acessar a página inicial do seu site.

Combinando WP_SITEURL e WP_HOME, você pode mover seu WordPress para outra pasta do servidor e continuar tendo a “home” no mesmo endereço.

Movendo a pasta wp-content

Se por algum motivo você quiser mover a pasta wp-content para outro local, você deve configurar duas constantes.

Uma configura o caminho completo da pasta dentro do seu servidor:

define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content' );

A outra a URL completa para a mesma pasta:

define( 'WP_CONTENT_URL', 'http://127.0.0.1/wordpress/wp-content' );

 Modificando o intervalo de autosave

O intervalo de autosave define o tempo que seu WordPress leva para salvar automaticamente um post enquanto você está digitando. Isso garante que você não perca nada caso seu computador desligue ou você feche o navegador sem querer.

Para modificar este tempo, basta fazer o seguinte:

define('AUTOSAVE_INTERVAL', 30 );  // segundos

Agora os posts serão salvos de 30 em 30 segundos. Você pode colocar quantos segundos achar melhor.

Modificando as revisões de posts

Revisões de posts são salvas a cada vez que você salva um post novamente. Alterar um ponto no artigo e salvar, gera uma nova revisão.

Com isso, sua base de dados vai ficar cheia de posts e revisões de um mesmo artigo.

Se você quiser desativar este recurso, basta fazer o seguinte:

define('WP_POST_REVISIONS', false );

Se você quiser limitar o número de revisões, basta fazer isso:

define('WP_POST_REVISIONS', 3);

Agora só serão salvas 3 revisões do mesmo post.

 Domínio dos Cookies

Você pode alterar o domínio dos cookies fazendo o seguinte:

define('COOKIE_DOMAIN', 'www.dominio.com');

 Ativar Multisite

Eu já expliquei como ativar uma rede multisite no WordPress, mas vale descrever aqui:

define('WP_ALLOW_MULTISITE', true);

 Limite de memória

Você também pode definir o limite de memória para seu WordPress, para isso faça o seguinte:

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

Agora o limite é 96MB.

Cache

Para definir o cache do WordPress, faça o seguinte:

define('WP_CACHE', true);

 Salvar consultas para análise

Você pode querer analisar as consultas MySQL realizadas para WordPress, para isso faça o seguinte:

define('SAVEQUERIES', true);

No rodapé do seu tema adicione o seguinte:

<?php
if (current_user_can('administrator')){
    global $wpdb;
    echo "<pre>";
    print_r($wpdb->queries);
    echo "</pre>";
}
?>

 Esvaziando a lixeira

Você pode definir que o WordPress limpe a lixeira entre dias determinados, para isso faça o seguinte:

define('EMPTY_TRASH_DAYS', 30 );

Se você colocar “0” (zero), as lixeiras nunca serão esvaziadas.

Reparando a base de dados

O WordPress pode reparar as tabelas da base de dados para você caso queira. Para isso basta definir:

define('WP_ALLOW_REPAIR', true);

É sempre bom reparar a base de dados de tempos em tempo para otimizar a performance do seu site.

Concluindo

Isso não é tudo, você pode ler o artigo Editando wp-config.php do Codex para maiores informações. Mas lembre-se, qualquer alteração indicada neste artigo, pode fazer seu WordPress parar de funcionar corretamente caso seu valor não esteja correto, portanto, tenha cuidado ao extremo ao alterar qualquer uma das opções indicadas anteriormente.