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.
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
Passo 3
Nesta etapa vamos caminhar até o diretório de produção web:
cd /var/www/html
Passo 4
Agora vamos realizar o download da última versão do wordpress:
wget https://br.wordpress.org/latest-pt_BR.zip
Passo 5
Vamos descompactar o wordpress:
unzip latest-pt_BR.zip
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.
Passo 7
Como não vamos mais precisar do arquivo compactado do wordpress, podemos apagá-lo:
rm latest-pt_BR.zip
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
Passo 9
Vamos verificar nosso endereço de ip:
ip a
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.
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
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.
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
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
Passo 15
Confirmação de instalação bem sucedida.
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.
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
Passo 18
Precisamos reiniciar o servidor http (apache2) para que o módulo habilitado no passo anterior tenha efeito:
sudo service apache2 restart
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
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.
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
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
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.
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
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.
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!