Há alguns dias atrás participei da Campus Party Brasil (#CPBR9) e ministrei o workshop Trabalhando com Posts e Campos Personalizados. A apresentação foi muito bacana, porém, nos dias anteriores eu estava tendo problemas com meu servidor na DigitalOcean e meu site ficou fora do ar!
Nesse post falarei sobre a ferramenta que utilizei para consertar esse problema.
EasyEngine.io é um sistema de linha de comando baseado em Phyton para configurar servidores NGINX em distribuições Linux (Ubuntu ou Debian) para rodar HTML, PHP, MySQL, HHVM, PageSpeed e sites WordPress.
O EasyEngine é mantido pela rtCamp que, há anos atrás, criou o rtMedia (conhecido anteriormente como BuddyPress Media e que eu ajudei a traduzir) e fiquei impressionado ao saber que foi lançado oficialmente em 2013!
Ele é bem fácil de ser instalado em seu servidor, mas você precisa ter acesso SSH. Então já passou da hora de você sair daquela sua hospedagem compartilhada.
A melhor opção é instalá-lo em um servidor novinho em folha. No site deles você encontra os guias de como criar um novo servidor na AWS, Linode e DigitalOcean.
Após ter criado seu novo servidor, acesse-o via SSH e rode o seguinte comando para instalar a versão mais recente do EasyEngine (ee):
wget -qO ee rt.cx/ee && sudo bash ee
Agora já podemos criar nosso site usando também um comando do EasyEngine (não se esqueça de alterar example.com pelo domínio correto do site que você instalará nesse servidor):
sudo ee site create example.com --wpfc
Pronto, você acabou de instalar o WordPress usando Nginx, cache do Nginx, php5-fpm e MariaDB.
Com esses dois comandos consegui criar uma nova instalação e depois migrar todo meu conteúdo manualmente (banco de dados e arquivos) em menos de 5 minutos.
Essa configuração padrão é tão boa que você pode até mesmo desabilitar o PHP do servidor após ter gerado o cache, que seu site continuará exibindo todo seu conteúdo. Quer fazer o teste?
Acesse alguma página do seu site e rode o seguinte comando:
sudo service php5-fpm stop
Agora volte na sua página no site e a atualize. Ela continuará sendo exibida!
Não se esqueça de ligar o PHP novamente hein 😉
sudo service php5-fpm start
O EasyEngine tem uma lista bem útil de comandos mas o mais interessante é o ee site create
, com ele você pode criar até 15 tipos diferentes de instalações WordPress.
Agradeço ao Claudio Sanches por me indicar essa maravilha da tecnologia.
Depois de fazer as configurações do post, vale a pena dar uma olhada nesses links:
Como sobreviver a ataques DDOS: https://easyengine.io/tutorials/nginx/fail2ban/
Como otimizar o nginx: https://easyengine.io/tutorials/nginx/optimization/
Como previnir crash de mysql: https://easyengine.io/docs/prevent-mysql-crashing/
Excelentes considerações feitas, principalmente para iniciantes. O interessante é que esses tutoriais esmiúçam e simplificam como é fácil otimizar e proteger o sistema.
Ótima dica Rafael Funchal. Eu já tinha ouvido falar sobre o EasyEngine, mas não tinha me aprofundado no assunto e não imaginava que seria tão simples. Muito obrigado!
Com esse comando create example.com eu posso configurar vários domínios no servidor?
Sim, você pode criar quantos sites você quiser em seu servidor usando `ee site create dominiodosite.com`, porém, vale a pena verificar a política de cada empresa sobre isso. Se não me engano, a DigitalOcean não recomenda a instalação de vários sites no mesmo droplet.
Barba, seu lindo! Thanks pelo post e por mostrar isso pra galera <3
opa, preciso de um help… Ao instalar o ee sem wp ele instala normalmente, porem ao solicitar qq complemento wp+php7, qq coisa ele da erro.
Updating apt-cache, please wait…
Installing packages, please wait…
Restart : php7.0-fpm[OK]
Running pre-update checks, please wait…
Setting up NGINX configuration [Done]
Setting up webroot [Done]
Downloading WordPress [Done]
Setting up database Oops Something went wrong !!
Calling cleanup actions …
Nesse caso é necessário informar qual o tipo de instalação que você deseja fazer escolhendo uma das opções da lista de comandos do ee site create:
https://easyengine.io/docs/commands/site/create/
[…] Escrevi sobre ele no começo desse ano aqui mesmo no meu blog. […]
[…] o post Configurando um VPS com EasyEngine para contar um pouco sobre a experiência que tive com esse CLI […]
Olá Rafael, muito bacana esta opção de Easyengine.
Obrigado pelo conteúdo!
Qual seria a diferença entre utilizar o Easyengine ou utilizar um painel de controle tipo o ISPconfig?
Não conheço o ISPconfig mas, como você citou que é um painel, acredito que ele seja visual.
EasyEngine é um CLI, ou seja, só linha de comando sem interface gráfica.
Olá Rafael, estou dando início agora a este mundo…
Há alguma diferença significativa entre utilizar painel ou trabalhar exclusivamente com linhas de comando?
Abraços e obrigado!
Sim. São duas interfaces e maneiras bem diferentes de trabalhar.
Como você está entrando nessa área agora, aconselho que teste as duas opções e veja qual é a melhor para você, porém, é sempre bom saber usar linha de comando no terminal em desenvolvimento web.
Oh Rafael obrigado pela resposta!
Vou tentar seguir sua orientação ao longo do tempo 😉
Em questão de DESEMPENHO do servidor, algumas das opções possui melhor desempenho de acordo com sua experiência?
Não trabalho com painel em servidores há um bom tempo, então não posso opinar sobre esse quesito no momento.
Valeu, Thanks (y)
Olá Mestre Funchal, tudo bem? No post acima ele vai instalar o PHP versão 5? No caso como seria para instalar a versão 7 do PHP.
Abraços e muito sucesso para você.
Para atualizar a versão do PHP usando EasyEngine, é só passar um parâmetro no comando conforme mencionado nesse guia: https://easyengine.io/docs/php7/
Olá Rafael,nesse modelo de instalação seria necessário utilizar PhpMyAdmin ou o Adminer?
Obrigado!
Você só precisará instalar isso caso queira gerenciar visualmente seus bancos de dados, porém, não é obrigatório.
Obrigado Rafael!
Tô usando ele a uns Meses, porém, nao consigo instalar themes, Plugins e nem Update, só manual, tem alguma Dica??
Você pode tentar verificar as permissões das pastas e arquivos do WordPress. Assim você conseguirá criar arquivos e atualizá-los pelo painel do site.
Faz alguma diferença atualizar pelo painel do WP ou atualizar via SSH ou FTP?
Não faz diferença nenhuma, já que os 3 métodos atualizarão os arquivos no final. Então é só escolher qual o melhor e mais prático para você.
Olá Rafael durante a configuração do servidor é solicitado o nome e email do usuário.
Posso usar meu email principal do tipo meunome@gmail.com ou é obrigado utilizar um email com domínio próprio do tipo contato@meudominio.com ?
Thanks
Oi, Thiago!
O indicado é que você utilize seu endereço pessoal mesmo ou um e-mail de domínio que não seja relacionado ao site que você estiver criando. Assim, caso seu domínio tenha algum problema, você ainda receberá as mensagens sobre a renovação do SSL.
Olá Rafael, em um servidor VPS da Digital Ocean de 5 dólares eu poderia configurar quantas instalações do WP?
1Gb de memória para rodar a aplicação inteira eu acho muito apertado e pode causar lentidão ou então derrubar seu servidor dependendo do número de acessos (mesmo com cache). Nesse caso, eu indicaria apenas um site para o droplet básico da DigitalOcean.
Obrigado 😉
De nada 🙂
Olá Rafael tudo bem?
Se eu quiser criar um servidor de e-mail, é possível?
Pode me orientar?
Há uma página interessante no site do EasyEngine com guias a respeito disso: https://easyengine.io/tutorials/mail/
Obrigado Rafael, bem interressante mesmo.
Não sei por onde começar.
Abraços.