Tutorial instalar WordPress em servidor web já configurado com Ubuntu, Apache, MySQL e PHP

Objetivos

  • Entender o que é um servidor web (HTTP) configurado com LAMP
  • Saber o que é um Content Management System (CMS)
  • Saber o que é o WordPress
  • Verificar os requisitos para seguir o tutorial
  • Passo a passo para instalar o WordPress em um servidor Linux com distribuição Ubuntu e um setup LAMP previamente configurado

O que é um servidor HTTP LAMP?

Em resumo, é um servidor configurado para prover páginas de internet. No caso deste exemplo, para poder hospedar o wordpress, o nosso servidor vem configurado com o Linux, na distribuição Ubuntu. É um servidor http, com a configuração LAMP: Linux, Apache, MySQL e PHP.

O que é um CMS?

O termo CMS é um acrônimo para Content Management System, ou sistema gerenciador de conteúdo. É um software que auxilia os produtores de conteúdo a gerenciar suas postagens na internet. Desta forma, depois do CMS instalado, os produtores de conteúdo conseguem postar facilmente na internet, sem precisar saber nenhuma linguagem de programação.

O que é o WordPress?

O WordPress é o CMS mais famoso e mais popular na atualidade. Para termos quantitativos, mais de 40% de todos os sites da internet utilizam o wordpress. É também bastante versátil; através de plugins e temas, o wordpress pode funcionar como uma loja virtual, um fórum, um blog, site institucional, site pessoal, site de internet, etc.

Requisitos para seguir o tutorial

Para que possa seguir este tutorial sem problemas, é necessário que tenha um servidor já configurado. Neste caso em específico, que tenha um servidor LAMP. É necessário também acesso SSH ao servidor e permissões de administrador para instalar software e habilitar módulos do php.
Caso não tenha, basta seguir este passo a passo:

Tutorial configurar servidor HTTP no Ubuntu com Apache, MySQL, PHP

Este tutorial serve tanto para um servidor LAMP local (raspberry, virtual box, computador antigo em casa, etc), quanto para um servidor remoto (Amazon AWS, Digital Ocean, Vultr, etc).

Tutorial passo a passo para instalar e configurar o wordpress em servidor web (http) já configurado com ubuntu, apache, mysql, php e php-fpm

Passo 1

O primeiro passo é definir quem será responsável pelo diretório de produção web. Podendo ser apenas uma pessoa utilizando o servidor e gerenciando todos os websites, ou se prefere que cada website seja gerenciado por um usuário diferente, pensando em sistemas compartilhados.
Neste tutorial, vamos definir que o usuário viniciuspaes será o responsável por todos os sites. Desta forma, vamos definir as permissões da pasta /var/www (pasta de produção web):

sudo chown viniciuspaes:www-data /var/www -R

Com o comando acima definimos que o usuário responsável por todos os arquivos e diretórios da pasta /var/www e subdiretórios será o viniciuspaes. E que o grupo responsável será o grupo www-data (grupo do usuário do apache).
Este tutorial leva em conta que o PHP-FPM esteja já configurado, com usuário = viniciuspaes e grupo = www-data
Caso não tenha certeza se o PHP-FPM está instalado, verifique os passos neste passo a passo: Tutorial configurar servidor HTTP no Ubuntu com Apache, MySQL, PHP, FTP, TLS e PHP-FPM.

Wordpress - como definir corretamente usuário e grupo para arquivosubuntu sudo nano www.conf

Passo 2

Agora vamos forçar que todos os diretórios (sites) criados dentro da pasta /var/www/html pertençam ao grupo www-data.

sudo chmod g+s /var/www/html

Wordpress - como forçar aos arquivos a sempre pertecerem ao grupo do apache www-data

Passo 3

Nesta etapa vamos caminhar até o diretório de produção web:

cd /var/www/html

Wordpress - como caminhar até o diretório base de produção web

Passo 4

Agora vamos realizar o download da última versão do wordpress:

wget https://br.wordpress.org/latest-pt_BR.zip

Wordpres - como realizar o download da última versão do wordpress por linha de comando

Passo 5

Vamos descompactar o wordpress:

unzip latest-pt_BR.zip

Wordpress - como descompactar arquivo do wordpress em linha de comando (cli)

Passo 6

Vamos verificar os arquivos presentes da pasta de produção web:

ls -lah

Vemos que temos 2 arquivos e 1 diretório presentes. O index.html é o arquivo padrão do apache. O arquivo latest-pt_BR.zip é a última versão do wordpress que fizemos download. E o diretório wordpress, são os arquivos descompactados do wordpress.

Wordpress - como verificar os arquivos existentes na pasta de produção web

Passo 7

Como não vamos mais precisar do arquivo compactado do wordpress, podemos apagá-lo:

rm latest-pt_BR.zip

Wordpress - como deletar arquivo compactado do wordpress que não será mais utilizado

Passo 8

Podemos mudar o nome do diretório que os arquivos foram descompactados para o nome do site, como exemplo, site1.

mv wordpress site1

Wordpress - como mudar o nome da pasta onde o wordpress foi descompactado em linha de comando (cli)

Passo 9

Vamos verificar nosso endereço de ip:

ip a

Wordpress - como olhar o endereço IP do servidor em linha de comando

Passo 10

Sabendo o endereço de IP do seu servidor, precisamos criar um usuário e banco de dados para o site1 que está utilizando o wordpress. Então abra o browser de internet e digite o endereço IP do seu sevidor, seguido de /phpmyadmin. No meu caso, será:

http://192.168.1.104/phpmyadmin

Caso tenha habilitado a etapa extra de login ao phpmyadmin com htaccess e o htpasswd, digite primeiramente o login e senha do htpasswd. Em seguida faça o login no phpmyadmin.

Wordpress - primeira etapa de login no phpmyadmin pelo htpasswdWordpress - tela de login do phpmyadmin

Passo 11

Já com login realizado no phpmyadmin, acesse a aba:

Contas de usuário

Em seguida vá até:

Adicionar conta de usuário

Agora preencha os campos:

  • Nome de usuário: site1 (este também será o nome do banco de dados)
  • Nome do host (Local): localhost
  • Senha: (repare que mais pra baixo tem um botão para gerar uma senha, você pode criar uma senha própria, ou gerar uma senha aleatória) ANOTE ESTA SENHA!!!
  • Plugin de autenticação: Autenticação nativa do MySQL
  • Agora marque a caixa de seleção: Criar banco de dados com o mesmo nome e conceder todos os privilégios

Caminha até o fim da página e clique no botão:

Executar

Wordpress - criar um novo usuário e banco de dados no phpmyadminWordpress - criar novo usuário no phpmyadminWordpress - criar novo usuário no phpmyadmin e também o banco com o mesmo nome do usuárioWordpress - botão executar, para que seja criado novo usuário e banco de dadosWordpress - novo usuário de banco de dados criado no phpmyadmin

Passo 12

Agora é necessário abrir seu site (site1) pelo browser para iniciar a instalação do WordPress. Abra seu browser e digite seu IP seguido de /site1, no meu caso:

http://192.168.1.104/site1

Na primeira página clique em:

Vamos lá

Na segunda etapa, será necessário informar os dados do banco de dados que acabamos de criar:

  • Nome do banco de dados: é o mesmo nome do usuário que criamos para gerenciar o banco
  • Nome de usuário do banco de dados
  • Senha do usuário do banco de dados
  • Servidor do banco de dados: localhost
  • Prefixo da tabela: wp_ (ou wpS1_, caso queira customizar para o site1)

Depois de preencher todos os dados acima, clique no botão:

Enviar

Atenção! Caso tenha algum problema nesta etapa, possivelmente é diante a permissão de arquivos. Se tiver seguido o tutorial de instalação do PHP-FPM, e definido corretamente o usuário responsável pela pool sendo igual o responsável pelo diretório do site, não deverá ter problema. Caso não tenha o PHP-FPM instalado, deverá atualizar as permissões do diretório, para que consiga realizar a instalação, ou criar o arquivo wp-config.php manualmente. Recomendo realizar a instalação do PHP-FPM, para não ter dor de cabeça nesta etapa. Caso tenha algum erro de conexão ao banco de dados, então o erro é possivelmente no momento da criação do usuário e do banco, ou você digitou os dados incorretamente. Basta rever os passos anteriores para confirmar.

Wordpress - tela de instalação passo 1Wordpress - tela de instalação passo 2

Passo 13

Agora o wordpress já conseguiu acessar o banco de dados e está pronto para começar a instalação. Clique então no botão:

Instalar

Wordpress - tela de instalação passo 3

Passo 14

Neste último passo da instalação, é necessário informar alguns dados do website:

  • Título do Site
  • Nome do usuário para administrar o site
  • Senha
  • Email do responsável pelo site (será utilizado caso seja necessário realizar um reset da senha)
  • Visibilidade para os motores de busca: enquanto o seu site não estiver pronto e funcional, evite que os mecanismos de busca indexem ele.

Depois de preencher todos os dados e anotar a senha escolhida em local seguro, clique no botão:

Instalar WordPress

Wordpress - tela de instalação passo 4

Passo 15

Confirmação de instalação bem sucedida.

Instalação do WordPress concluída

Passo 16

Agora vamos realizar login na interface administrativa do site. Essa URL é formada pelo IP, em seguida da pasta onde o site está instalado, seguido de /wp-admin. No caso deste exemplo, temos:

http://192.168.1.104/site1/wp-admin

Instalação bem sucedida e login na interface administrativa realizado com sucesso.

Wordpress - página de login da interface administrativa

Passo 17

Voltando ao terminal, vamos habilitar o módulo de reescrita de URL, que é muito útil para termos URL amigáveis para indexação dos mecanismos de busca. Utilize o comando:

sudo a2enmod rewrite

Wordpress habilitar módulo rewrite no php

Passo 18

Precisamos reiniciar o servidor http (apache2) para que o módulo habilitado no passo anterior tenha efeito:

sudo service apache2 restart

Wordpress reiniciar o servidor http apache2

Passo 19

Agora precisamos alterar o arquivo de configuração do apache referente a acesso ao servidor para que este permita a reescrita de URL.

sudo nano /etc/apache2/sites-available/000-default.conf

Wordpress editar arquivo 000-dafault.conf para habilitar rewrite

Passo 20

Com o arquivo aberto, precisamos inserir o texto referente a reescrita de URL. Caso tenha seguido o setup de instalação do PHP-FPM, o texto deverá ser inserido abaixo de Protocols h2 http/1.1, caso não tenha ele instalado, insira o texto abaixo de DocumentRoot /var/www/html.

Agora salve o arquivo e saia do editor nano.

Reparem que habilitamos a reescrita de URL para todas as pastas dentro de /var/www/html. Caso queira restringir apenas para o site1, lembre de editar o comando acima para /var/www/html/site1.

Wordpress editar arquivo 000-dafault.conf para habilitar reescrita de urlWordpress editar arquivo 000-dafault.conf para habilitar reescrita de url - arquivo alterado

Passo 21

Novamente vamos reiniciar o apache, desta vez para que as modificações no arquivo de configuração tenham efeito:

sudo service apache2 restart

Wordpress - reiniciar o apache

Passo 22

Agora volte para a interface administrativa do WordPress. Vamos verificar como a estrutura de links permanentes está configurada. Desta forma podemos realizar alterações que surjam efeito com a reescrita de url que habilitamos.
Faça login no wordpress, caso ainda não tenha feito:

http://192.168.1.104/site1/wp-admin

Agora no menu lateral esquerdo, vá em:

Configurações

Agora escolha:

Links permanentes

Wordpress - ir para a página de edição de links permanentes

Passo 23

Na página de configuração de Links permanentes, temos as seguintes opções:

  • Padrão: url do tipo ?p=123 (que é o id do post)
  • Dia e nome: vai aparecer a data completa de publicacao e o nome do post na url
  • Mês e nome: vai aparecer o ano e o mês seguido do nome do post
  • Numérica: vai aparecer somente o id do post na url
  • Nome do post: vai aparecer somente o nome do post na url
  • Estrutura personalizada: pode definir como queremos a estrutura de url

Vamos criar uma estrutura personalizada que apareça a categoria da publicação, seguida do nome do post. Para isso, selecione a opção de estrutura personalizada e insira o texto:

/%category%/%postname%/

Agora clique em:

Salvar alterações

Atenção! Caso tenha algum erro nesta etapa é devido a permissão de arquivos e diretórios. Se tiver o PHP-FPM instalado e configurado corretamente, não deve aparecer erro algum. Caso não tenha, uma opção é criar o arquivo .htaccess manualmente e inserir na pasta base do site com as alterações necessárias.

Wordpress - definir estrutura de links personalizadoWordpress - definir estrutura de links personalizado - salvar modificações

Passo 24

Agora vamos testar se a estrutura de URL personalizada está funcional. No menu lateral clique em:

Posts

E depois em:

Todos os posts

Agora passe o mouse em cima do post de Olá, Mundo! Deve aparecer a opção “Ver”
Clique na opção:

Ver

Caso tenha seguido os passos corretamente, o post irá abrir e se verificar a URL, ela deve estar em um formato semelhante a:

http://192.168.1.104/site1/sem-categoria/ola-mundo/

Atenção! Se o post abriu corretamente, os passos foram executados corretamente. Se apareceu algum erro, é devido a 4 possibilidades:

  • Módulo Rewrite não foi instalado ou habilitado
  • Arquivo .htaccess não foi criado e configurado corretamente dentro da pasta site1/
  • O arquivo 000-default.conf não foi editado corretamente para habilitar a reescrita da url
  • Não reiniciou o apache2 depois das alterações citadas acima

Wordpress - ir para página de todos os postsWordpress - ver post olá mundoWordpress - testar estrutura de link personalizado

Passo 25

Para finalizar, vamos refazer as permissões de todos os arquivos. Lembrando que no exemplo abaixo, o usuário viniciuspaes é o administrador do site1, sendo também configurado na pool do PHP-FPM para ser responsável por estes arquivos.

sudo chown viniciuspaes:www-data /var/www/html/site1 -R
sudo find /var/www/html/site1/. -type d -exec chmod g+s {} +
sudo find /var/www/html/site1/. -type f -exec chmod 644 {} +
sudo find /var/www/html/site1/. -type d -exec chmod 755 {} +

Com o setup acima, configuramos o usuário viniciuspaes sendo o “dono” de todos os arquivos dentro da pasta site1/. Configuramos também que o grupo www-data é o “dono” de todos estes arquivos.
Em seguida, vasculhamos todos os diretórios dentro de site1/ e configuramos que qualquer novo arquivo criado lá dentro, pertencerá ao grupo www-data.
Para finalizar, buscamos todos os arquivos e damos permissão 644 e buscamos todos os diretórios e colocamos a permissão como 755.
Se tiver dúvidas sobre como funcionam as permissões de arquivos no linux, basta acessar nosso tutorial.

Wordpress - corrigir permissões de arquivos e diretórios

Considerações Finais

Caso tenha tido algum erro seguindo este tutorial, pode ser relativo às permissões de acesso de arquivos e diretórios. Recomendamos desta forma, que se estiver utilizando o servidor HTTP Apache (apache2) que instale o PHP-FPM para que este seja responsável pela execução de script’s php. É uma forma mais segura do que deixar o próprio apache executando os arquivos.

Caso tenha interesse de configurar email do wordpress de forma autenticada pelo Gmail, acesse nosso tutorial:

Tutorial configurar WordPress para enviar email pelo GMAIL

Conclusões

Caso já tenha um servidor web (HTTP) instalado e configurado com o LAMP (Linux, Apache, MySQL e PHP) este Tutorial auxilia na instalação e configuração básica do WordPress. Este passo a passo foi testado seguindo o Tutorial configurar servidor HTTP no Ubuntu com Apache, MySQL, PHP.

Caso tenha tido algum problema, basta contar aí nos comentários, que farei o possível para ajudar!