Mesmo você sendo ou não um administrador de servidores LINUX experiente, entregar velocidade de acesso ao seu site ou a sites de seus clientes é primordial, certo?
Ninguém gosta de ficar esperando para um site carregar, e se você pretende entregar uma solução completa para seu cliente, que seja muito, mas muito robusta, considere a implantação de um servidor LINUX rodando o servidor web NGINX.
NGINX é muito superior a outros servidores WEB quando o assunto é entregar páginas e arquivos estáticos, estou falando de arquivos .html, .css, .jpg etc.
- Mas e quanto ao php?
- Será que podemos deixar um servidor LINUX rodando NGINX tão rápido quanto o nosso usuário gostaria?
Bom, a resposta para essa pergunta é: HHVM
Com o HHVM (Hiphop Virtual Machine) que é um compilador just-in-time desenvolvido pelo Facebook para executar aplicações que são escritas em PHP e linguagem Hack.
HHVM é mais rápido do que o motor tradicional PHP da Zend e é usado pelo Facebook para servir bilhões de solicitações da web por dia.
HHVM pode elevar 9x a taxa de transferência de solicitações da web, e reduzir em 5x no consumo de memória em comparação com o motor Zend PHP 5.2 + APC
Isso é simplesmente sensacional, você poderá ter a mesma tecnologia utilizada pelo Facebook para entregar suas páginas, é uma solução testada todos os dias.
Se você quer saber como configurar um servidor WEB com LINUX, que pode ser 9x mais rápido que a solução atual que você utiliza hoje, fique atento nos próximos parágrafos deste artigo.
Com toda certeza um servidor WEB veloz é sonho de qualquer dono de site, institucional ou um ecommerce não importa muito, o usuário final nunca tem 30 segundos para esperar o carregamento de um site.
Nos dias de hoje 30 segundos para carregar um site é muito tempo, não é mesmo? Você também não gosta de acessar um site lento? … bom eu pelo menos não gosto.
Configurar um servidor de alta performance começou a ficar mais fácil quando o NGINX surgiu no mercado, com uma proposta totalmente diferenciada do servidor web apache.
Como instalar o Servidor WEB Nginx no Linux
Antes de fazer a instalação do servidor web NGINX no DEBIAN 8, vamos destacar algumas das vantagens desse servidor.
Segundo a netcraft o servidor WEB de alta performance o NGINX tem hoje mais de 16% do mercado de servidores WEB, perdendo é claro para o mais utilizado no mundo que é o apache.
- O NGINX (engine x) é um servidor HTTP e um Proxy reverso
- Serve páginas estáticas e suporta também FASTCGI (php)
- Proxy reverso com cachê
- Load balance
- Streamming de FLV e MP4
Em um experimento usando o Apache 2.x e NGINX, para servir uma página HTML, temos o seguinte resultado:
- Apache: 4 processos WORKER, 30% CPU, 17MB de memória, conseguiu abrir 6.500 requests por segundo.
- Nginx: apenas 1 processo,15% CPU, 1MB de memória, conseguiu abrir 11.500 requests por segundo.
Agora vamos tratar de instalar o nosso servidor web, que irá possibilitar alta performance em nossas aplicações, para esse laboratório irei instalar o seguinte:
- Servidor LINUX Debian 8
- Servidor WEB NGINX
- HHVM (Hiphop Virtual Machine) para interpretar a minha aplicação WEB.
- Banco de dados MariaDB, em substituição ao Mysql.
- CMS WordPress, que claro é escrito em PHP
A instalação do DEBIAN 8 será totalmente abstraída desse artigo por motivos óbvios, é um assunto bem mais amplo, mas eu sugiro você participar da primeira aula do PROFISSIONAIS LINUX, onde eu trato bem esse assunto.
Toda a instalação aqui pode sim ser replicada em UBUNTU SERVER, os comandos são os mesmos, e você tiver alguma dúvida com relação a algum comandos, eu acho que você pode pegar uma cópia desse ebook, o ebook do Curso Linux Ubuntu.
Agora vamos lá, vamos começar a instalar o nosso servidor WEB.
# apt-get update # apt-get install nginx unzip
Você já pode também iniciar o servidor WEB NGINX para ter certeza que a instalação deu certo.
# systemctl start nginx
Agora acesso o ip de seu servidor WEB com o seu navegador preferido.
Como instalar o banco de dados MariaDB no Linux
Eu vou instalar o MariaDB no lugar do MySQL, para tirar proveito do seu melhor desempenho e funções adicionais. MariaDB é um fork do MySQL Database Server mantida pelo original MySQL Developers.
Claro que hoje existem muitas razões para utilizar o MariaDB, mas eu não irei comentar muito sobre isso nesse artigo, pois o foco aqui realmente é o servidor WEB.
Vamos lá:
#apt-get install mariadb-client mariadb-server
Pode também iniciar o servidor de banco de dados MariaDB.
#systemctl iniciar mysql
Agora já podemos criar um login para o MariaDB com o comando “mysql”, o comando irá solicitará a senha que você definiu durante a instalação do MariaDB.
# mysql -u root -p
Isso mesmo, é tudo igual ao mysql!
O próximo passo é criar um novo banco de dados, que será utilizado pelo nosso CMS WordPress, você pode escolher qualquer nome, mas para facilitar eu irei chamar o banco de dados de wordpress.
Iremos precisar de um usuário para esse banco de dados do wordpress, eu irei chamar ele dele userwp.
Vamos lá então:
# mysql -u root -p ( entre com a senha do usuário root para acessar o console do MariaDB)
Para criar o banco de dados no MariaDB:
# create database wordpress;
Agora vamos criar um usuário para esse banco e criar também os privilégios.
create userwp@localhost identified by '#userwp#'; # esse #userwp# é a senha do usuário.
grant all privileges on wordpress.* to userwp@localhost identified by '#userwp#'; flush privileges;
Pronto, já podemos sair do console do mysql com o “q”.
Como instalar o HHVM no LINUX
Como já comentamos aqui nesse artigo, o HHVM (Hiphop Virtual Machine) que é um compilador just-in-time desenvolvido pelo Facebook para executar aplicações que são escritas em PHP e linguagem Hack.
Para instalar vamos precisar adicionar ao nosso apt-get um novo repositório, se você ficar com dúvidas nesse ponto, recomendo ler esse ebook.
# wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | apt-key add - # echo deb http://dl.hhvm.com/debian jessie main | tee /etc/apt/sources.list.d/hhvm.list # apt-get update apt-get install hhvm
HHVM vem com um script install_fastcgi.sh, para facilitar a configuração dele em conjunto com o Nginx. Execute o comando abaixo:
# /usr/share/hhvm/install_fastcgi.sh
E para adicionar o serviço do hhvm para iniciar com o servidor, execute mais esse comando:
# defaults hhvm update-rc.d
HHVM devem ser executado em /usr/bin/php mesmo se você já tenha um php-cli instalado, então teremos que usar o comando do Debian o update-alternatives, para reconfigurar o PHP padrão do nosso servidor LINUX:
# /usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60
Com isso, já podemos iniciar o serviço do hhvm
# systemctl start hhvm
Próximo passo é testar o HHVM com o Nginx, para isso vamos criar um arquivo de teste.
Crie novo arquivo com o nome info.php no diretório /var/www/html, assim:
# echo "<? echo 'HipHop'; ?>" > /var/www/html/info.php
Agora acesse o seu navegador: http://ip_do_seu_servidor/info.php. Quando você ver a palavra HipHop, ok! o HHVM está funcionando corretamente.
No terminal você também pode testar assim:
# php /var/www/html/info.php # php -v
Como Instalar o WordPress
Então, o Wordpres tem a famosa instalação em 5 minutos, a nossa instalação talvez seja feita aqui em 30 segundos mas é bom seguir essa sequência.
Vamos lá:
# cd /var/www/html/ # wget wordpress.org/latest.zip # unzip latest.zip
O comando unzip extraiu o WordPress para o sub-diretório chamado “wordpress” , vamos mover todos os arquivos do WordPress para o diretório /var/www/html/.
# cd /var/www/html/ # mv wordpress/* . # rm -rf wordpress/
Em seguida, altere o DONO dos arquivos do WordPress para a www-data. Normalmente, todos os arquivos no diretório /var/www/html são de propriedade do www-data, tanto o usuário quanto o grupo.
#find . -type d -exec chown www-data:www-data {} \; #find . -type f -exec chown www-data:www-data {} \;
Renomeie o arquivo wp-config-sample.php para wp-config.php.
Agora vamos editar o arquivo com o editor vim para definir o nome do banco de dados, usuário e senha que foi criada durante a configuração do banco de dados wordpress.
# cd /var/www/html/ # mv wp-config-sample.php wp-config.php # vim wp-config.php # rm -f index.nginx.html
Abaixo as informações para acesso ao banco de dados, que devem ser modificadas no arquivo.
DB_NAME = wordpress DB_USER = userwp DB_PASSWORD = #userwp#
Agora edite o arquivo virtualhost do nginx em /etc/nginx/sites-available/default e adicione o index.php como arquivo de index padrão
Essa configuração instrui Nginx para usar o arquivo index.php como o arquivo padrão quando o site é acessado.
# vim /etc/nginx/sites-available/default
Procure pela linha: index conforme abaixo:
index index.php index.html ... ;
Agora pode reiniciar o servidor web nginx.
# systemctl restart nginx
Agora pronto, tente acessar o ip do seu servidor LINUX, http://ip_do_seu_servidor novamente, você será redirecionado para o instalador do WordPress. Siga as instruções do instalador para concluir.
Ok, seu wordpress está instalado com HHVM e Nginx em um servidor LINUX Debian 8.
Vamos relembrar todas as dicas desse artigo:
- Necessidade de um servidor WEB de alta performance, avalie sempre o NGINX;
- NGINX é uma ótima solução de servidor web que pode ser inclusive utilizado em conjunto com o apache;
- NGINX trabalha melhor com arquivos estáticos, para arquivos dinâmicos podemos usar fastCGI, como foi o caso do HHVM aqui nesse artigo;
- O banco de dados MariaDB tende a substituir o Mysql, por ser um fork não existe grande problemas na migração e até mesmo a adoção desse banco de dados, avalie sempre a sua aplicação;
- O HHVM é a grande atração aqui deste artigo, desenvolvido pelo Facebook para executar aplicações que são escritas em PHP e linguagem Hack, hoje é uma ótima solução para aplicações PHP de grande porte;
- A instalação do WordPress é muito simples, porém o CMS como um todo é muito poderoso, apesar de consumir muito recurso do servidor, ele utilizado com essa solução que apresentamos aqui no artigo pode ser o responsável por grandes sites.
Você conhece alguém que adoraria receber essas dicas?
Então faça um favor para ela (e para mim) e compartilhe esse artigo.
Você pode compartilhá-lo no Facebook, Twitter, Google+ ou até mesmo copiar a URL desse artigo e enviar para quem precisa dele.
E, para finalizar, eu adoraria saber a sua opinião sobre esse artigo.
Deixe um comentário logo abaixo sobre o que você mais gostou nesse artigo, ou sobre alguma dica extra que você deseja compartilhar conosco ou até mesmo alguma crítica sobre esse texto.
Forte abraço.
Pedro Delfino