Tutorial

Como instalar o WordPress com o LEMP no Ubuntu 18.04

Published on December 12, 2019
Português
Como instalar o WordPress com o LEMP no Ubuntu 18.04

Introdução

O WordPress é o CMS (sistema de gerenciamento de conteúdos) mais popular na Internet. Ele permite que você configure blogs e sites flexíveis com facilidade, além de um back-end em MySQL com processamento em PHP. A adoção do WordPress teve um crescimento incrível, sendo uma ótima escolha para se colocar um website em funcionamento de maneira rápida. Após a configuração, quase toda a administração pode ser feita através no front-end Web.

Neste guia, iremos concentrar-nos na obtenção de uma instância de WordPress, configurada em pilha LEMP (Linux, Nginx, MySQL e PHP) em um servidor Ubuntu 18.04.

Pré-requisitos

Para completar este tutorial, será necessário ter acesso a um servidor Ubuntu 18.04.

Será necessário realizar as seguintes tarefas antes de iniciar este guia:

  • Criar um usuário sudo no seu servidor: vamos realizar os passos neste guia usando um usuário não raiz com privilégios sudo. É possível criar um usuário com privilégios sudo seguindo nosso Guia de configuração inicial do servidor Ubuntu 18.04.
  • Instale uma pilha LEMP: o WordPress precisará de um servidor Web, um banco de dados e um PHP para funcionar corretamente. Configurar uma pilha LEMP (Linux, Nginx, MySQL e PHP) cumpre todos esses requisitos. Siga este guia para instalar e configurar este software.
  • Proteger o seu site com o protocolo SSL: o Wordpress fornece conteúdo dinâmico e cuida da autenticação e autorização do usuário. O protocolo TLS/SSL é a tecnologia que permite criptografar o tráfego do seu site para que sua conexão esteja segura. A maneira como você irá configurar o SSL dependerá de se você tem um nome de domínio para seu site.
    • Se tiver um nome de domínio… a maneira mais fácil de proteger seu site é com o Let’s Encrypt, que oferece certificados confiáveis e gratuitos. Siga nosso guia do Let’s Encrypt para o Nginx para configurar isto.
    • Se não tiver um domínio… e somente estiver usando essa configuração para teste ou uso pessoal, em vez disso, utilize um certificado autoassinado. Tal certificado proporciona o mesmo tipo de criptografia, mas sem a validação de domínio. Siga nosso guia SSL autoassinado para o Nginx para configurar.

Quando terminar 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 raiz (administrativa) do MySQL. Se o MySQL estiver configurado para usar o plug-in de autenticação auth_socket (o padrão), faça login na conta administrativa do MySQL usando o sudo:

  1. sudo mysql

Se alterar o método de autenticação para usar uma senha para a conta raiz do MySQL, utilize o seguinte formato:

  1. mysql -u root -p

Será solicitada a senha que definiu para conta raiz do MySQL.

Primeiramente, criamos um banco de dados separado que o WordPress pode controlar. Você pode dar o nome que quiser ao banco de dados, mas neste guia nós o chamaremos dewordpresspara ficar mais simples. Você pode criar 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 no nosso novo banco de dados. Criar bancos de dados e contas para uma função é uma boa ideia sob o ponto de vista de gerenciamento e segurança. Vamos usar o nome wordpressuser neste guia. Sinta-se à vontade para alterar isso se quiser.

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 uma senha forte para o usuário do seu banco de dados:

  1. GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

Agora, você tem um banco de dados e uma conta de usuário, criados especificamente para o WordPress. Precisamos atualizar 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;

A sessão do MySQL irá fechar, voltando você para o shell normal do Linux.

Passo 2 — Instalando extensões adicionais do PHP

Ao configurar nossa pilha LEMP, vamos precisar apenas de um conjunto pequeno 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-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

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.

Quando terminar de instalar as extensões, reinicie o processo PHP-FPM para que o processador PHP em execução possa potencializar os recursos recém-instalados:

  1. sudo systemctl restart php7.2-fpm

Agora, temos todas as extensões necessárias do PHP instaladas no servidor.

Passo 3 — Configurando o Nginx

A seguir, vamos fazer alguns pequenos ajustes nos arquivos de blocos do nosso servidor Nginx. Baseado nos tutoriais com os pré-requisitos, você deve ter um arquivo de configuração para seu site no diretório /etc/nginx/sites-available/ configurado para responder ao nome de domínio ou endereço IP do seu servidor e que está protegido por um certificado TLS/SSL. Vamos usar o /etc/apache2/sites-available/wordpress 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 raiz de nossa instalação do WordPress. Você deve usar a raiz da Web especificada em sua própria configuração.

Nota: é possível que esteja usando a configuração padrão /etc/nginx/sites-available/default (com /var/www/html como raiz da Web). Esta configuração pode ser usada sem problemas se você só for hospedar um site neste servidor. Caso contrário, é melhor dividir a configuração necessária em blocos lógicos, sendo um arquivo por site.<$>**

Abra o arquivo de bloco de servidor do seu site com privilégios sudo para começar:

  1. sudo nano /etc/nginx/sites-available/wordpress

Dentro do bloco de server principal, precisamos adicionar alguns blocos de location.

Comece criando blocos de localização que sejam exatamente correspondentes para as solicitações enviadas ao /favicon.ico e /robots.txt, pois não queremos registrar solicitações para nenhum dos dois.

Vamos usar um local para a expressão regular verificar as solicitações de arquivos estáticos. Novamente, vamos desligar a geração dos logs dessas solicitações e os marcaremos como altamente armazenáveis em cache, uma vez que esses recursos são normalmente caros para atender. Você pode ajustar essa lista de arquivos estáticos para conter quaisquer outras extensões de arquivos que seu site possa usar:

/etc/nginx/sites-available/wordpress
server {
    . . .

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
    . . .
}

Dentro do bloco existente location/, precisamos ajustar a lista try_files para que em vez de retornar um erro 404 como a opção padrão, o controle seja passado para o arquivo index.php com os argumentos do pedido.

Isto deve se parecer com isso:

/etc/nginx/sites-available/wordpress
server {
    . . .
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    . . .
}

Quando você terminar, salve e feche o arquivo.

Agora, podemos verificar nossa configuração quanto aos erros de sintaxe digitando:

  1. sudo nginx -t

Se nenhum erro foi reportado, recarregue o Nginx digitando:

  1. sudo systemctl reload nginx

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

Passo 4 — Fazendo o download do 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.

Altere para um diretório gravável e baixe o arquivo comprimido da versão digitando:

  1. cd /tmp
  2. curl -LO 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 para nossa raiz de documentos temporariamente. Antes de fazer isso, podemos copiar o arquivo de configuração de amostra para o nome de arquivo que o WordPress realmente lê:

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

Agora, podemos copiar o conteúdo todo do diretório para nossa raiz de documentos. Estamos usando o sinalizador -a para garantir que nossas permissões sejam mantidas. Estamos usando um ponto no final do nosso diretório fonte para indicar que tudo dentro do diretório deve ser copiado, incluindo arquivos ocultos:

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

Agora que nossos arquivos estão na posição correta, vamos atribuir a propriedade sobre eles ao ao usuário e grupo www-data. É sob esse usuário e grupo que o Nginx executa; além disso, o Nginx terá que conseguir ler e gravar os arquivos do WordPress para atender o site e realizar atualizações automáticas.

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

Nossos arquivos agora estão na raiz de documento do nosso servidor e têm a propriedade correta, mas ainda assim precisamos concluir mais algumas configurações.

Passo 5 — Configurando o arquivo de configuração do WordPress

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

Quando abrirmos o arquivo, nossa prioridade será a de ajustar algumas chaves secretas para oferecer alguma segurança para 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. Esses valores são usados internamente, de modo que ter valores seguros e complexos aqui não irá atrapalhar a usabilidade.

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á valores únicos que se parecem com estes:

<$>[warning] Aviso: é importante que você peça valores únicos sempre. NÃO copie os valores mostrados 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.

Agora 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 fictícios para essas configurações. Eles se parecerão com isso:

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

. . .

Em seguida, precisamos 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 configuramos 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 gravar onde ele precisar, podemos definir explicitamente o método do sistema de arquivos como “direct” (direto). 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
. . .

define('DB_NAME', 'wordpress');

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

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

. . .

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:

http://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 do WordPress e escolha um nome de usuário (É recomendável não escolher algo como “admin” por motivos 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

Conclusão

O Wordpress deve estar instalado e pronto para usar! Alguns dos passos comuns na sequência serão: escolher a configuração dos permalinks dos seus posts (pode ser encontrado em Configurações > Permalinks) ou selecionar um novo tema (em Appearance > Themes). Se esta é a primeira vez que usa o WordPress, explore a interface um pouco para se familiarizar com o seu novo CMS.

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

Learn more about us


About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
1 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!

No arquivo “/etc/nginx/sites-available/wordpress” também é necessário substituir a linha “index index.html index.htm index.nginx-debian.html;” por “index index.html index.htm index.php;”.

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!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

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

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel