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):

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:

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:

   1 <?php
   2 define('DB_NAME', 'wordpress');
   3 define('DB_USER', 'wordpress');
   4 define('DB_PASSWORD', 'password');
   5 define('DB_HOST', 'localhost');
   6 define('WP_CONTENT_DIR', '/var/lib/wordpress/wp-content');
   7 ?>

<!> 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"

   1 CREATE DATABASE wordpress;
   2 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
   3 ON wordpress.*
   4 TO wordpress@localhost
   5 IDENTIFIED BY 'password';
   6 FLUSH PRIVILEGES;

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:

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


CategoryNetwork CategorySoftware