Módulo 1 · 1.3
Ficheiros, wp-config e a base de dados
Módulo 1: Como funciona o WordPress · Tempo de leitura: 9 minutos
Objetivo de aprendizagem: Depois desta lição, reconhece as pastas do WordPress, as definições em wp-config.php e as principais tabelas da base de dados, e sabe onde encontrar o quê.
Conceitos-chave: wp-admin, wp-includes, wp-content (themes, plugins, uploads, mu-plugins), wp-config.php (DB_*, table_prefix, chaves e salts, WP_DEBUG), .htaccess, wp_options (siteurl, home), wp_posts, wp_users
Duas metades: ficheiros e base de dados
Uma site WordPress é sempre composta por duas partes que andam juntas:
- Ficheiros na pasta web do seu domínio (no DirectAdmin
domains/example.com/public_html): o código do WordPress, os seus temas, os seus plugins e tudo o que carrega. - Uma base de dados: todos os seus textos, páginas, menus, definições, utilizadores e comentários.
Esta distinção é importante nas cópias de segurança e nas migrações. Uma cópia de segurança só com os ficheiros não tem os seus textos. Uma cópia de segurança só com a base de dados não tem as suas fotografias. Precisa das duas (lição 8.1).
As pastas
Abra a sua pasta web no Gerenciador de arquivos ou com um programa de FTP e verá algo assim:
public_html/
├── wp-admin/ o painel de administração (core)
├── wp-includes/ o resto do WordPress (core)
├── wp-content/ tudo o que é seu
│ ├── themes/ os temas
│ ├── plugins/ os plugins
│ ├── uploads/ os seus ficheiros de media, por ano e mês: uploads/2026/11/
│ ├── mu-plugins/ plugins "must use" (se existirem)
│ ├── languages/ traduções
│ └── upgrade/ pasta temporária para atualizações
├── .htaccess regras para o servidor web
├── index.php o ponto de partida de cada pedido de página
├── wp-config.php as definições desta instalação
├── wp-login.php a página de início de sessão
├── xmlrpc.php uma ligação antiga para aplicações (lição 7.3)
└── ... outros ficheiros wp-*.php do coreA regra prática: wp-admin, wp-includes e os ficheiros wp-*.php avulsos pertencem ao WordPress. São substituídos em cada atualização. Nunca coloque nada aí nem altere nada.
wp-content é seu. Uma atualização do WordPress não mexe nessa pasta (exceto os temas e plugins predefinidos que vêm incluídos). É aqui que ficam os seus temas, plugins e ficheiros carregados. Algumas coisas a saber:
- uploads é a que cresce mais depressa. Cada fotografia que carrega é guardada pelo WordPress em vários formatos (lição 4.4). Uma site com anos de notícias pode ter gigabytes de ficheiros carregados.
- mu-plugins (must use) são plugins sempre ativos que não é possível desativar no painel de administração. Alguns fornecedores de alojamento e plugins utilizam-nos. Também é um local onde invasores gostam de esconder algo (lição 7.5). Se não reconhecer um ficheiro aí, descubra de onde veio.
- Um plugin eliminado desaparece de
plugins. Um plugin desativado continua lá, com todo o seu código (lição 5.4).
wp-config.php: as definições
wp-config.php é o primeiro ficheiro que o WordPress carrega. Contém os dados com que o WordPress acede à base de dados, e algumas definições para toda a instalação. Uma versão resumida:
define( 'DB_NAME', 'gebruiker_wp1' );
define( 'DB_USER', 'gebruiker_wp1' );
define( 'DB_PASSWORD', 'uma-palavra-passe-aleatoria-longa' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'AUTH_KEY', 'texto aleatório longo' );
define( 'SECURE_AUTH_KEY', 'texto aleatório longo' );
define( 'LOGGED_IN_KEY', 'texto aleatório longo' );
define( 'NONCE_KEY', 'texto aleatório longo' );
define( 'AUTH_SALT', 'texto aleatório longo' );
define( 'SECURE_AUTH_SALT', 'texto aleatório longo' );
define( 'LOGGED_IN_SALT', 'texto aleatório longo' );
define( 'NONCE_SALT', 'texto aleatório longo' );
$table_prefix = 'wp_';
define( 'WP_DEBUG', false );
/* Dat is alles, stop met bewerken! */
require_once ABSPATH . 'wp-settings.php';O que significa:
- DB_NAME, DB_USER, DB_PASSWORD, DB_HOST: com que base de dados, utilizador e palavra-passe o WordPress estabelece ligação, e em que servidor. Se algum destes dados estiver errado, verá "Error establishing a database connection". Isto acontece frequentemente após uma migração ou após alterar uma palavra-passe da base de dados.
- As chaves e salts (as oito linhas com KEY e SALT): textos aleatórios com que o WordPress assina os cookies de início de sessão. Quem os conhecer pode, em teoria, criar um cookie de início de sessão válido. Se os substituir, todos são desligados. É exatamente isso que faz depois de um ataque informático (lição 7.5). Obtém novos valores em
https://api.wordpress.org/secret-key/1.1/salt/. - $table_prefix: o prefixo de todos os nomes de tabelas, normalmente
wp_. Assim, várias instalações podem partilhar uma base de dados. Escolher outro prefixo não é uma medida de segurança real, mas também não é prejudicial. - WP_DEBUG: ativa as mensagens de erro. Numa site em produção, isto está desligado (
false). Como consultar erros em segurança sem os mostrar aos visitantes, lê na lição 5.4. - Definições que você próprio adiciona (por exemplo,
DISALLOW_FILE_EDITna lição 7.4 ouDISABLE_WP_CRONna lição 6.3) devem ficar antes da linha "stop met bewerken" (pare de editar).
O wp-config.php contém a sua palavra-passe da base de dados. Nunca partilhe o ficheiro, não coloque uma cópia na pasta web (como wp-config.php.bak ou wp-config.old: qualquer pessoa pode transferi-la, porque o servidor web não as executa como PHP) e aplique-lhe permissões de ficheiro rigorosas (lição 7.4).
.htaccess
No LiteSpeed e no Apache existe na pasta web um ficheiro .htaccess com regras para o servidor web. Começa com um ponto, por isso está oculto em muitos programas. O WordPress coloca aqui este bloco para endereços organizados (permalinks):
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressEm termos simples: "se não é um ficheiro existente (!-f) nem uma pasta existente (!-d), entrega ao index.php." É o passo 2 da lição 1.2. Os plugins (de cache, de segurança) costumam acrescentar os seus próprios blocos. Coloque as suas próprias regras fora dos blocos do WordPress e dos plugins, porque esses blocos por vezes são reescritos. No nginx não existe .htaccess; aí, isto é tratado pelo fornecedor de alojamento na configuração do servidor.
A base de dados: que tabela serve para quê
Com o phpMyAdmin (no DirectAdmin, em Gestão de bases de dados) pode consultar a base de dados. Uma instalação normal tem doze tabelas; os plugins costumam acrescentar mais. As principais:
| Tabela | O que contém |
|---|---|
wp_posts | Artigos, páginas, revisões, itens de menu e, nos temas de blocos, também modelos e padrões. Também as imagens são aqui um "artigo" do tipo attachment |
wp_postmeta | Dados adicionais associados aos artigos, como o preço de um produto ou definições de um criador de páginas |
wp_options | Definições da site e dos plugins. Aqui estão siteurl e home (lição 3.1), o nome do tema ativo e a lista de plugins ativos |
wp_users e wp_usermeta | Utilizadores, as suas palavras-passe (encriptadas) e a sua função |
wp_terms, wp_term_taxonomy, wp_term_relationships | Categorias, etiquetas e a que artigos pertencem |
wp_comments e wp_commentmeta | Comentários |
Duas curiosidades úteis. Primeiro: em wp_options estão siteurl e home. Se estiverem errados (por exemplo, após uma migração), a sua site envia todos para o endereço errado e deixa de conseguir aceder à administração. Nesse caso, pode corrigi-los no phpMyAdmin ou com regras no wp-config.php (lição 3.1). Segundo: muitas definições são guardadas serializadas, um formato do PHP em que o comprimento de cada texto é contabilizado. Se alterar manualmente um desses valores, ou se aplicar um simples "procurar e substituir" na base de dados, esse comprimento deixa de corresponder e a definição fica danificada (lição 3.2).
Consultar o phpMyAdmin é seguro. Só deve alterar algo se souber o que está a fazer, e sempre com uma cópia de segurança.
Na prática: como se apresenta num painel
Como exemplo, utilizamos o DirectAdmin. No cPanel e no Plesk, as funcionalidades Gerenciador de arquivos (File Manager) e phpMyAdmin chamam-se da mesma forma.
- Abra o Gerenciador de arquivos e vá a
domains/example.com/public_html. Ative a visualização de ficheiros ocultos para ver o.htaccess. - Clique em
wp-config.phpe escolha visualizar (não editar). ProcureDB_NAMEe$table_prefix. - Abra o phpMyAdmin, escolha à esquerda a base de dados com esse nome e veja que tabelas existem.
- Clique na tabela
wp_options(com o seu prefixo) e procure as linhassiteurlehome.
Resumo
- Uma site WordPress é composta por ficheiros mais base de dados; uma cópia de segurança precisa de ambos.
wp-admin,wp-includese os ficheiros avulsos do core pertencem ao WordPress;wp-contenté seu.- O wp-config.php contém os dados da base de dados, as chaves e salts, o prefixo das tabelas e definições como WP_DEBUG. Nunca guarde uma cópia dele na pasta web.
- O
.htaccessenvia tudo o que não é um ficheiro para o index.php; as suas próprias regras devem ficar fora dos blocos do WordPress. - Em
wp_optionsestão siteurl e home; os dados serializados não se alteram manualmente.
Questionário
Exercício
Exercício D1.3: Explore a sua própria instalação. Abra a sua pasta web no Gerenciador de arquivos ou com um programa de FTP e depois a sua base de dados no phpMyAdmin. Não faça nada além de observar. Assinale o que encontrou e preencha: o prefixo das tabelas, o número de tabelas na base de dados, os valores de siteurl e home em wp_options, e as pastas em wp-content. Escreva também se existem ficheiros em wp-content/mu-plugins e se sabe de onde vêm. Nunca partilhe a sua palavra-passe da base de dados, nem mesmo neste formulário.
Exercício D1.3: Explore a sua própria instalação
Este exercício faz você mesmo; ninguém o verifica. Assinale o que já fez e marque o exercício como concluído.
O prefixo termina num travessão inferior (por exemplo wp_ ou um código aleatório). Uma instalação normal tem 12 tabelas; os plugins acrescentam mais. siteurl e home começam com https://. Nunca partilhe a palavra-passe da base de dados do wp-config.php, também aqui não.
As suas marcações e notas ficam apenas neste navegador; não as enviamos para lado nenhum. Se tiver sessão iniciada, guardamos em Os meus cursos apenas que concluiu o exercício.
Leitura adicional
Estes artigos descrevem os passos nos painéis da WebOké; noutros painéis funcionam de forma semelhante.
- Manual DirectAdmin 11.1: Abrir o Gerenciador de arquivos: as pastas do seu pacote
- Manual DirectAdmin 11.4: Mostrar e editar ficheiros ocultos como .htaccess
- Manual DirectAdmin 12.3: Abrir e utilizar o phpMyAdmin
- Qual é o nome de utilizador / a palavra-passe / o nome da base de dados para o MySQL?
- Manual DirectAdmin 18.6: Erro ao estabelecer uma ligação à base de dados
- wp-config.php (developer.wordpress.org, Inglês): https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
