WordPress é uma ferramenta de blog e sistema de gerenciamento de conteúdo (do inglês: "Content Management System" - CMS) livre e de código aberto (GNU GPLv2 ou superior) baseado em PHP e MySQL. Seus recursos incluem uma arquitetura de plug-in e um sistema de templates.
Versões do WordPress para as diferentes versões do Debian (atualizado em Outubro de 2022):
- Debian 10 (Buster): 5.0.15
- Debian 11 (Bullseye): 5.7.5
- Debian 12 (Bookworm): 6.0.2
Contents
Instalação dos Pacotes
Instalação
apt update apt install wordpress curl apache2 mariadb-server
Proteja a sua instalação MySQL com esse comando:
mysql_secure_installation
Guia de Instalação Básico
Criar um site
nano /etc/apache2/sites-available/wp.conf
Adicione esse conteúdo e substitua example.com pelo seu próprio domínio:
<VirtualHost *:80>
ServerName myblog.example.com
ServerAdmin webmaster@example.com
DocumentRoot /usr/share/wordpress
Alias /wp-content /var/lib/wordpress/wp-content
<Directory /usr/share/wordpress>
Options FollowSymLinks
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Require all granted
</Directory>
<Directory /var/lib/wordpress/wp-content>
Options FollowSymLinks
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Desabilite o ''Virtual Host'' padrão e habilite o site
a2dissite 000-default a2ensite wp
Recarregue o sevidor web
service apache2 reload
Crie /etc/wordpress/config-$DM.php. $DM é o nome do domínio, por exemplo, se o nome do domínio totalmente qualificado é myblog.example.com, crie um dos seguintes arquivos:
/etc/wordpress/config-myblog.example.com.php (esse é o padrão, use esse se não tiver certeza)
/etc/wordpress/config-example.com.php (esse é usado para multisite com subdomínios)
/etc/wordpress/config-default.php (esse é usado se nenhum outro arquivo corresponde ao nome do seu domínio)
O WordPress busca na ordem acima e usa o primeiro arquivo de configuração que ele encontra. O nome de domínio é obtido do "HTTP-Request" de seu navegador. Desse modo, você é capaz de definir arquivos de configuração diferentes para diferentes domínios que você está hospedando.
nano /etc/wordpress/config-myblog.example.com.php
Adicione esse conteúdo:
substitua password por uma senha segura adequada
Crie um arquivo que conterá as instruções para a criação do banco de dados
nano ~/wp.sql
Adicione esse conteúdo:
substitua password por sua "senha segura adequada"
Crie o banco de dados:
cat ~/wp.sql | mysql --defaults-extra-file=/etc/mysql/debian.cnf
Navegue para o diretório do wordpress em seu navegador, por exemplo, http://myblog.example.com/wp que redirecionará para http://myblog.example.com/wp/wp-admin/install.php onde você verá a "clássica" página de instalação em 5 minutos do wordpress (na verdade, são 5 segundos graças aos pacotes do Debian)
substitua myblog.example.com pelo nome do seu domínio (ou localhost se estiver rodando na mesma máquina que o seu navegador).
Atualizando a versão instalada do WordPress
Para manter seu WordPress atualizado e recebendo atualizações de segurança use o gerenciados de pacotes do Debian:
apt update && apt upgrade
Se você preferir usar uma versão mais recente do WordPress, considere usar Backports ou Debian testing.
Um método alternativo de instalação
Acredito que esse método está mais em conformidade com o que o mantenedor recomenda que seja feito. Várias fontes são utilizadas nesse método e esse método também é afetado por alguns bugs no momento da escrita dessa página. Esse método é basicamente centrado em uma instalação tipo multisite, mas recomendo esse método mesmo para um simples blog, pois de outra forma, quando no futuro decidir ter mais de um e compartilhar base de códigos dos pacotes, você terá bastante trabalho a mais.
O script chave aqui é /usr/share/doc/wordpress/examples/setup-mysql. Essa joia faz algumas coisas, como:
Cria um arquivo de configuração WordPress no diretório /etc/wordpress
Cria um banco de dados e um usuário WordPress
Configura uma estrutura wp-content no diretório /srv/www/wp-content/DOMAIN (esse é o principal passo para uma instalação multisite não-WordPress, que será abordada mais abaixo)
Execute o ''script'' auxiliar
Agora execute /usr/share/doc/wordpress/examples/setup-mysql, passando como argumento o nome do seu site; e.g. myblog.com. Muito provavelmente você também precisará de outros argumentos também -- para obter ajuda, passe como argumento -h.
# Pacote necessário apt install iputils-ping # Descompactar arquivo gzip -d /usr/share/doc/wordpress/examples/setup-mysql.gz # Definir como executável chmod +x /usr/share/doc/wordpress/examples/setup-mysql # Execute o setup, modifique myblog.example.com para o seu FQDN /usr/share/doc/wordpress/examples/setup-mysql myblog.example.com
Nesse ponto, como acima, você deverá ter criado um banco de dados para você e o arquivo de configuração /etc/wordpress/config-myblog.com.php. Leia-o e verifique.
Criar o site Apache
Citando /usr/share/doc/wordpress/examples/apache.conf:
Existem vários modos de configurar o Wordpress & Apache no Debian. Entretanto o o modo recomendado pelo mantenedor com o script auxiliar usa:
## Virtual host VirtualDocumentRoot
NameVirtualHost *:80
<VirtualHost *:80>
UseCanonicalName Off
VirtualDocumentRoot /usr/share/wordpress
Options All
# wp-content in /srv/www/wp-content/$0
RewriteEngine On
RewriteRule ^/wp-content/(.*)$ /srv/www/wp-content/%{HTTP_HOST}/$1
</VirtualHost>Para essa configuração funcionar você também precisará ter carregado e funcionando no os módulos mod_rewrite e mod_vhost_alias no Apache. Para habilitar esses módulos, execute
a2enmod rewrite a2enmod vhost_alias service apache2 restart
Coloque essa configuração em algo como /etc/apache2/sites-available/myblog.com e modifique de acordo com suas necessidades (host virtual baseado em IP, baseado em nome, logging, etc.)
Se estiver usando qualquer funcionalidade do Wordpress que necessite reescrever URL (tal como links permanentes), então você precisará de algo como isso nas configurações do Apache:
RewriteRule ^index\.php$ - [L]
RewriteCond /usr/share/wordpress%{REQUEST_URI} !-f
RewriteCond /usr/share/wordpress%{REQUEST_URI} !-d
RewriteRule . /usr/share/wordpress/index.php [L]
# Also needed if using PHP-FPM / Fast-CGI
RewriteCond %{REQUEST_URI} !^/php5-fcgi/*As condições de reescritas acima dependem do Apache encontrar os arquivos necessários em /usr/share/wordpress para os links não permanentes (como em wp-admin). Isso pode necessitar a linha abaixo para garantir que encontre o arquivo index quando solicitar /wp-admin/
DirectoryIndex index.php
Leitura final antes da configuração real
Agora seria uma boa hora para ler /usr/share/doc/wordpress/README.Debian se você ainda não leu. Todas as peças devem se encaixar assim que você fizer isso.
Dentre outras coisas, esse arquivo explica o excelente modo que o pacote Debian WordPress utiliza o framework do WordPress wp-config.php e, mais importante, como lidar com os famosos diretórios de "temas" e "plugins" em uma instalação do WordPress. A chave é que os links simbólicos estão em /var/lib/wordpress, assim os usuário podem cumprir melhor os FilesystemHierarchyStandard e podem usar os mecanismos de atualização no aplicativo do WordPress para atualizar plugins e temas, sem atrapalhar o pacote e trazer algum risco de segurança ao servidor.
Nele também é discutido as duas escolhas de instalação multisite, da qual esse descreve a versão não-WordPress.
Habilitar o site Apache
Agora nós habilitamos a configuração faita anteriormente do site Apache usando a2ensite, que basicamente cria um link simbólico em /etc/apache2/sites-enabled de sites-available, e recarrega o Apache:
a2ensite myblog.com service apache2 reload
Configure WordPress
Agora, navegue ao seu novo domínio e siga o processo normal de configuração do WP e você deverá ter terminado.
Problemas
Infelizmente a essa altura, podem haver alguns problemas relacionados com os links simbólicos e uma bagunça geralmente com WP_CONTENT_DIR.
O bug principla está descrito em https://core.trac.wordpress.org/ticket/16953. A maioria dos problemas devem estar consertados, mas algumas coisas podem estar quebradas, especialmente se os autores de plugin ou temas não fizeram as coisas direito ao determinar o sistema de arquivos correto ou os caminhos URIs a serem usados.
Veja também
Exemplos de configurações podem ser encontradas em /usr/share/doc/wordpress/examples/
Instruões espec´[ificas para o Debian estão em /usr/share/doc/wordpress/README.Debian
