Tutorial

Como instalar o WordPress no Ubuntu 20.04 com uma pilha LAMP

Published on August 6, 2020
Português
Como instalar o WordPress no Ubuntu 20.04 com uma pilha LAMP

Introdução

Hoje, o WordPress é uma ferramenta de código aberto extremamente popular para fazer sites e blogs na internet. Usado por 63% de todos os sites que usam um sistema de gerenciamento de conteúdo (CMS), os sites com WordPress representam 36% de todos os sites que estão atualmente online.

Há muitas abordagens diferentes para se obter acesso ao WordPress e alguns processos de configuração são mais complexos do que outros. Este tutorial destina-se àqueles que desejam instalar e administrar uma instância do Wordpress em um servidor na nuvem não gerenciado através da linha de comando. Embora esta abordagem exija mais passos do que uma instalação do WordPress pronta, ela oferece aos administradores controle maior sobre seu ambiente WordPress.

Se você estiver procurando acessar uma instalação do WordPress pronta, o Marketplace da DigitalOcean oferece um aplicativo com um clique para você começar com a instalação do WordPress ao desenvolver seu servidor.

Dependendo das suas necessidades e objetivos, você pode encontrar outras opções que sejam mais adequadas. Como software de código aberto, o WordPress pode ser baixado e instalado livremente, mas para ficar disponível na Web é provável que seja necessário comprar uma infraestrutura na nuvem e um nome de domínio. Continue seguindo este guia se você estiver interessado em trabalhar na instalação e configuração da parte do servidor de um site WordPress.

Este tutorial usará uma pilha LAMP (Linux, Apache, MySQL e PHP), que é uma opção para uma arquitetura de servidor que suporta o WordPress, fornecendo o sistema operacional Linux, o servidor Web Apache, o banco de dados MySQL e a linguagem de programação PHP. Instalaremos e configuraremos o WordPress via LAMP em um servidor Linux Ubuntu 20.04.

Pré-requisitos

Para completar este tutorial, você precisará de acesso a um servidor Ubuntu 20.04 e completar esses passos antes de iniciar este guia:

  • Crie seu servidor seguindo nosso guia de configuração inicial de servidor com o Ubunutu 20.04 e certifique-se de possuir um usuário sudo não root.
  • Instale uma pilha LAMP seguindo nosso guia LAMP para instalar e configurar este software.
  • Proteja seu site: o WordPress recebe entradas do usuário e armazena os dados dele, então é importante que haja camada de segurança. O TLS/SSL é a tecnologia que permite criptografar o tráfego do seu site para que sua conexão e a dos seus usuários permaneçam seguras. Aqui estão duas opções disponíveis para atender a este requisito:
    • Caso tenha um nome de domínio… você pode proteger seu site com o Let’s Encrypt, que fornece certificados confiáveis e gratuitos. Siga nosso guia do Let’s Encrypt para o Apache para configurar isto.
    • Se não tiver um domínio…, e esteja usando essa configuração para teste ou uso pessoal, ao invés disso, utilize um certificado auto-assinado. Tal certificado proporciona o mesmo tipo de criptografia, mas sem a validação de domínio. Siga nosso guia SSL auto-assinado para o Apache para configurar.

Quando tiver concluído os passos de configuração, faça login no seu servidor como seu usuário sudo e continue abaixo.

Passo 1 — Criando um banco de dados do MySQL e um usuário para o WordPress

O primeiro passo que vamos dar é um passo preparatório. O WordPress utiliza o MySQL para gerenciar e armazenar as informações do site e as do usuário. Já temos o MySQL instalado, mas precisamos criar um banco de dados e um usuário para o WordPress usar.

Para começar, faça login na conta root (administrativa) do MySQL emitindo este comando (note que este não é usuário root do seu servidor):

  1. mysql -u root -p

Será solicitada a senha que você configurou para a conta raiz do MySQL quando instalou o software.

Nota: Se você não puder acessar seu banco de dados MySQL via root como um usuário sudo, você pode atualizar a senha do seu usuário root fazendo login no banco de dados desta forma:

  1. sudo mysql -u root

Depois de receber o prompt MySQL, fica disponível atualizar a senha do usuário root. Aqui, substitua new_password por uma senha forte da sua escolha.

  1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

Agora, digite EXIT; e faça novamente login no banco de dados com a senha utilizando o seguinte comando:

  1. mysql -u root -p

Dentro banco de dados, podemos criar um banco de dados exclusivo para o WordPress controlar. Chame isso do que quiser, mas vamos usar o nome wordpress neste guia. Crie o banco de dados para o WordPress digitando:

  1. CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Nota: cada instrução do MySQL deve terminar em um ponto e vírgula (;). Verifique para garantir que a instrução foi seguida (ou seja, o ponto e vírgula foi usado), caso estiver enfrentando algum problema.

Em seguida, vamos criar uma conta de usuário do MySQL separada que vamos usar exclusivamente para operar nosso novo banco de dados. Criar bancos de dados e contas específicas pode nos ser útil do ponto de vista de gestão e segurança. Usaremos o nome wordpressuser neste guia, mas sinta-se livre para usar qualquer nome que seja relevante para você.

Vamos criar essa conta, definir uma senha e conceder o acesso ao banco de dados que criamos. Podemos fazer isso digitando o seguinte comando: Lembre-se de escolher aqui uma senha forte para seu banco de dados. Substitua-a em password:

  1. CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

Em seguida, informe ao banco de dados que nosso usuário wordpressuser deve ter acesso completo ao banco de dados que configuramos:

  1. GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';

Agora, você tem um banco de dados e uma conta de usuário, criados especificamente para o WordPress. Precisamos liberar os privilégios para que a instância atual do MySQL saiba sobre as alterações recentes que fizemos:

  1. FLUSH PRIVILEGES;

Saia do MySQL digitando:

  1. EXIT;

No próximo passo, vamos instaurar algumas bases para plug-ins do WordPress baixando extensões PHP para nosso servidor.

Passo 2 — Como instalar as extensões adicionais do PHP

Ao configurar nossa pilha LAMP, precisamos apenas de um conjunto mínimo de extensões para fazer com que o PHP se comunique com o MySQL. O WordPress e muitos dos seus plug-ins potencializam extensões adicionais do PHP.

Podemos baixar e instalar algumas das extensões PHP mais populares para serem usadas com o WordPress digitando:

  1. sudo apt update
  2. sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

Isso irá preparar o terreno para instalarmos plug-ins adicionais em nosso site do WordPress.

Nota: cada plug-in do WordPress tem seus próprios requisitos. Alguns podem precisar de pacotes adicionais do PHP para serem instalados. Verifique a documentação do plug-in para descobrir seus requisitos PHP. Se estiverem disponíveis, eles podem podem ser instalados com o apt como mostrado acima.

Precisaremos reiniciar o Apache para carregar essas novas extensões. Considerando que vamos fazer mais configurações no Apache na próxima seção, você pode esperar ou reiniciar agora para completar o processo das extensão do PHP.

  1. sudo systemctl restart apache2

Passo 3 — Ajustando a configuração do Apache para permitir que o .htaccess substitua e reescreva

A seguir, vamos fazer alguns pequenos ajustes na nossa configuração do Apache. Baseado nos tutoriais de pré-requisitos, você deve ter um arquivo de configuração para seu site no diretório /etc/apache2/sites-available/.

Neste guia, vamos usar o /etc/apache2/sites-available/wordpress.conf como exemplo, mas você deve substituir o caminho para seu arquivo de configuração, se apropriado. Além disso, utilizaremos o /var/www/wordpress como o diretório root de nossa instalação do WordPress. Você deve usar a raiz da Web especificada em sua própria configuração. Se você seguiu nosso tutorial LAMP, ela pode ser seu nome de domínio em vez de wordpress em ambas as instâncias.

Nota: é possível que esteja usando a configuração padrão 000-default.conf (com /var/www/html como sua raiz para a Web). Esta configuração pode ser usada sem problemas se você só for hospedar um site neste servidor. Se não for o caso, é melhor dividir a configuração necessária em pacotes lógicos, um arquivo por site.

Com nossos caminhos identificados, podemos seguir em frente e trabalhar com o .htaccess para que o Apache consiga lidar com as alterações de configuração para cada diretório.

Habilitando os arquivos de Substituição do .htaccess

Atualmente, o uso dos arquivos do .htaccess está desabilitado. O WordPress e muitos plug-ins do WordPress usam esses arquivos de maneira intensa dentro do diretório para fazer ajustes no comportamento do servidor Web.

Abra o arquivo de configuração do Apache para seu site com um editor de texto como o nano.

  1. sudo nano /etc/apache2/sites-available/wordpress.conf

Para permitir os arquivos .htaccess, precisamos configurar a diretiva AllowOverride dentro de um bloco Directory apontando para nossa raiz de documentos. Adicione o seguinte bloco de texto dentro do bloco VirtualHost no seu arquivo de configuração, tendo certeza de usar o diretório root Web correto:

/etc/apache2/sites-available/wordpress.conf
<Directory /var/www/wordpress/>
	AllowOverride All
</Directory>

Quando você terminar, salve e feche o arquivo. No nano, você pode fazer isso pressionando CTRL e X juntos, então Y, depois ENTER.

Habilitando o módulo Rewrite (Reescrita)

Em seguida, podemos habilitar o mod_rewrite para que possamos usar o recurso de permalink (ou link permanente) do WordPress:

  1. sudo a2enmod rewrite

Isso permite que você tenha permalinks mais humanamente legíveis para seus posts, como nos dois exemplos a seguir:

http://example.com/2012/post-name/
http://example.com/2012/12/30/post-name

O comando a2enmod chama um script que habilita o módulo especificado dentro da configuração do Apache.

Habilitando as alterações

Antes de implementarmos as alterações que fizemos, verifique se não cometemos nenhum erro de sintaxe executando o seguinte teste.

  1. sudo apache2ctl configtest

Pode ser que receba um resultado como o seguinte:

Output
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK

Se quiser suprimir a linha superior, basta adicionar uma diretiva de ServerName ao seu arquivo de configuração principal (global) do apache em Apache em /etc/apache2/apache2.conf. O ServerName pode ser o domínio ou endereço IP do seu servidor. No entanto, isso é apenas uma mensagem, e não afeta a funcionalidade do seu site. Contanto que a saída mostre Syntax OK, você estará pronto para continuar.

Reinicie o Apache para implementar as alterações. Neste momento, certifique-se de fazer a reinicialização, mesmo que tenha reiniciado anteriormente neste tutorial.

  1. sudo systemctl restart apache2

Em seguida, vamos baixar e configurar o WordPress propriamente dito.

Passo 4 — Como baixar o WordPress

Agora que nosso software de servidor está configurado, podemos baixar e configurar o WordPress. Por motivos de segurança, é sempre recomendável obter a versão mais recente do WordPress do site deles.

Vá até um diretório gravável (recomendamos um temporário como o /tmp) e baixe o lançamento compactado.

  1. cd /tmp
  2. curl -O https://wordpress.org/latest.tar.gz

Extraia o arquivo comprimido para criar a estrutura de diretórios do WordPress:

  1. tar xzvf latest.tar.gz

Vamos mover esses arquivos temporariamente para nossa raiz de documentos. Antes de fazermos isso, adicionamos um arquivo de .htaccess fictício para que esteja disponível para o WordPress usar mais tarde.

Crie o arquivo digitando:

  1. touch /tmp/wordpress/.htaccess

Também vamos copiar o exemplo de arquivo de configuração no nome do arquivo que o WordPress lê:

  1. cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Também podemos criar o diretório upgrade, para que o WordPress não se depare com problemas de permissão ao tentar fazer isso sozinho após uma atualização no software:

  1. mkdir /tmp/wordpress/wp-content/upgrade

Agora, podemos copiar o conteúdo todo do diretório para nossa root de documento. Estamos usando um ponto no final do nosso diretório fonte para indicar que tudo dentro do diretório deve ser copiado, incluindo arquivos escondidos (como o arquivo .htaccess que criamos):

  1. sudo cp -a /tmp/wordpress/. /var/www/wordpress

Certifique-se de substituir o diretório /var/www/wordpress pelo diretório que você configurou no seu servidor.

Passo 5 — Configurando o diretório do WordPress

Antes de fazermos a configuração do WordPress baseada na Web, precisamos ajustar alguns itens em nosso diretório do WordPress.

Como ajustar as propriedades e permissões

Um passo importante que precisamos realizar é configurar permissões e propriedade dos arquivos que sejam adequadas.

Vamos começar concedendo a propriedade de todos os arquivos para o usuário e grupo www-data. Este é o usuário sob o qual o servidor Web Apache executa. O Apache terá que ser capaz de ler e gravar arquivos do WordPress para atender o site e realizar atualizações automáticas.

Atualize a propriedade com o comando chown que lhe permite modificar a propriedade dos arquivos. Certifique-se de apontar para o diretório relevante do seu servidor.

  1. sudo chown -R www-data:www-data /var/www/wordpress

Em seguida, iremos executar dois comandos find para definir as permissões para os diretórios e arquivos do WordPress:

  1. sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;
  2. sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

Essas permissões devem ser suficientes para que você trabalhe com o WordPress de maneira efetiva, mas note que alguns plug-ins e procedimentos podem exigir ajustes adicionais.

Como configurar o arquivo de configuração do WordPress

Agora, precisamos fazer algumas alterações no arquivo de configuração principal do WordPress.

Ao abrimos o arquivo,nossa prioridade será ajustar algumas chaves secretas para acrescentar alguma segurança à nossa instalação. O WordPress oferece um gerador seguro para esses valores para que você não tenha que tentar obter bons valores por conta própria. Estes valores são usados internamente, então a usabilidade não será prejudicada se houverem valores complexos e seguros aqui.

Para pegar valores seguros do gerador de chave secreta do WordPress, digite:

  1. curl -s https://api.wordpress.org/secret-key/1.1/salt/

Você receberá de volta valores únicos que se assemelham ao resultado do bloco abaixo.

Aviso! É importante que você solicite sempre valores únicos. Não copie os valores abaixo!

Output
define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

Essas são linhas de configuração que podemos colar diretamente no nosso arquivo de configuração para definir chaves seguras. Copie o resultado que acabou de receber.

Em seguida, abra o arquivo de configuração do WordPress:

  1. sudo nano /var/www/wordpress/wp-config.php

Encontre a seção que contém os valores de exemplo para essas configurações.

/var/www/wordpress/wp-config.php
. . .

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');

. . .

Exclua essas linhas e cole os valores que copiou da linha de comando:

/var/www/wordpress/wp-config.php
. . .

define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');

. . .

A seguir, vamos modificar algumas das configurações de conexão do banco de dados no início do arquivo. Você precisa ajustar o nome do banco de dados, o usuário do banco de dados e a senha associada que você configurou no MySQL.

A outra mudança que precisamos fazer é definir o método que o WordPress deve usar para gravar no sistema de arquivos. Uma vez que demos permissão ao servidor Web para escrever onde ele precisa, podemos definir explicitamente o método do sistema de arquivos como “direct”. Deixar de definir esse método de acesso - usando nossas configurações atuais, levaria o WordPress a solicitar credenciais FTP quando realizássemos algumas ações.

Esta configuração pode ser adicionada abaixo das configurações de conexão do banco de dados ou em qualquer outro lugar no arquivo:

/var/www/wordpress/wp-config.php
. . .

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

/** MySQL database username */
define( 'DB_USER', 'wordpressuser' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );


. . .

define('FS_METHOD', 'direct');

Salve e feche o arquivo quando você terminar.

Passo 6 — Concluindo a instalação através da Interface com a Web

Agora que a configuração do servidor está completa, podemos concluir a instalação através da interface com a Web.

No seu navegador Web, navegue até o nome de domínio do seu servidor ou endereço IP público:

https://server_domain_or_IP

Selecione a linguagem que você gostaria de usar:

WordPress language selection

Em seguida, você chegará à página de configuração principal.

Selecione um nome para seu site WordPress e escolha um nome de usuário. Recomenda-se escolher algo único e evitar nomes de usuário comuns como “admin” por fins de segurança. Uma senha forte será gerada automaticamente. Salve essa senha ou selecione uma senha forte alternativa.

Digite seu endereço de e-mail e selecione se deseja impedir que mecanismos de pesquisa façam a indexação do seu site:

WordPress setup installation​​​

Quando clicar adiante, você será levado para uma página que solicita que você faça login:

WordPress login prompt

Assim que fizer login, será levado para o painel de administração do WordPress:

WordPress login prompt

Neste momento, você pode começar a projetar seu site do WordPress! Se esta é a primeira vez que usa o WordPress, explore a interface um pouco para se familiarizar com seu novo CMS.

Conclusão

Parabéns, o WordPress agora está instalado e pronto para ser usado!

Agora, pode ser interessante começar a fazer o seguinte:

  • Escolher sua configuração de permalinks para posts do WordPress, que pode ser encontrada em Settings > Permalinks.
  • Selecione um novo tema em Appearance > Themes.
  • Instale novos plug-ins para aumentar a funcionalidade do seu site em Plugins > Add New.
  • Se você for colaborar com outros, também pode desejar adicionar usuários adicionais em Users > Add New.

É possível encontrar recursos adicionais para formas alternativas de instalar o WordPress, aprender como instalar o WordPress em diferentes distribuições de servidor, automatizar suas instalações do WordPress e escalar seus sites do WordPress conferindo nosso marcador comunitário do WordPress.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
2 Comments


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

After the last configuration in | sudo nano /var/www/wordpress/wp-config.php |

does not start the configuration to finish the installation of worpress

can someone help?

Just run the command sudo find /var/www/wordpress/ -type d -exec chmod 750 {} ; Another command when I go to install returns error: You don’t have permission to access this resource.Server unable to read htaccess file, denying access to be safe

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.