Nos últimos meses, o HHVM conquistou a comunidade PHP. Desde que o WordPress 3.9 foi lançado, o HHVM agora é 100% compatível com o WordPress.
Infelizmente, o HHVM não está totalmente pronto para uso em produção em ambientes auto-hospedados. Na minha experiência, o HHVM falha cerca de uma vez por dia, o que o torna inviável para um site em que alta disponibilidade é importante. Recentemente, o WP Engine lançou o projeto Mercury, que permite que o HHVM falhe graciosamente, voltando ao PHP 5.5 quando ele falha.
Neste artigo, vamos instalar o HHVM em um servidor Ubuntu executando a versão LTS mais recente, 14.04. Isso pode ser feito usando um programa de visualização como o VirtualBox (gratuito) com um arquivo ISO do Ubuntu baixado ou usando um serviço de hospedagem na nuvem. A DigitalOcean oferece servidores em nuvem por US$ 5 por mês, que é o que usarei neste tutorial.
A primeira coisa que você deve fazer é atualizar todos os pacotes e dependências:
$ sudo apt-get update && sudo apt-get upgrade
Instalar o MySQL
Agora você precisa instalar o MySQL, o banco de dados que alimenta o WordPress.
$ sudo apt-get install mysql-server
Você deve definir uma senha de root do MySQL por razões óbvias de segurança. Se você está mais preocupado com a segurança, você também deve executar
$ mysql_secure_installation
e siga as etapas necessárias para bloquear seu servidor. Instalar o Nginx
A próxima coisa que você precisa fazer é configurar um servidor web. Eu prefiro usar o Nginx porque é leve, versátil e fácil de configurar.
$ sudo apt-get install nginx
Instalar HHVM
Agora instale o HHVM. Não é tão simples quanto instalar outros pacotes porque não está disponível no repositório do Ubuntu. Em vez disso, precisamos baixá-lo do próprio HHVM, juntamente com algumas dependências.
wget -O - https://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add - echo deb http://dl.hhvm.com/ubuntu trusty main | sudo tee /etc/apt/sources.list.d/hhvm.list sudo apt-get update cd /tmp && wget http://security.ubuntu.com/ubuntu/pool/main/libm/libmemcached/libmemcached10_1.0.8-1ubuntu2_amd64.de... sudo dpkg -i libmemcached10_1.0.8-1ubuntu2_amd64.deb && rm libmemcached10_1.0.8-1ubuntu2_amd64.deb sudo apt-get install -y libgnutls26 wget http://mirrors.kernel.org/ubuntu/pool/main/r/rtmpdump/librtmp0_2.4+20121230.gitdf6c518-1_amd64.deb && sudo dpkg -i librtmp0_2.4+20121230.gitdf6c518-1_amd64.deb && rm librtmp0_2.4+20121230.gitdf6c518-1_amd64.deb sudo apt-get install hhvm
Agora que instalamos o HHVM, precisamos executar um script de instalação que instalará o módulo HHVM para Nginx.
sudo /usr/share/hhvm/install_fastcgi.sh
Agora reinicie o HHVM e o Nginx.
sudo /etc/init.d/hhvm restart
sudo /etc/init.d/nginx restart
Configurar o site
A próxima coisa que precisamos fazer é configurar um host virtual para o nosso site. Normalmente, você criaria um novo host virtual para cada site em um servidor, mas como estamos testando (e para simplificar), apenas substituiremos o conteúdo de
/etc/nginx/sites-available/default
com um simples arquivo abaixo:Nota:você precisa de permissões de root para editar este arquivo.
server { listen 80; server_name localhost; # or replace localhost with domain name include hhvm.conf; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /var/www; index index.php; location / { try_files $uri $uri/ /index.php?$args; } }
Agora podemos configurar o WordPress:
- Recarregue sua configuração nginx atualizada:
$ sudo service nginx reload
. - Agora crie um diretório raiz da web:
$ sudo mkdir /var/www
. - Faça o download do WordPress:
$ sudo wget
http://wordpress.org/latest.tar.gz
/var/www/
. - Extrair WordPress:
$ sudo tar xvf /var/www/latest.tar.gz
. - Mova os arquivos do WordPress para a raiz da Web:
$ sudo mv /var/www/wordpress/* /var/www/
. - Limpar:
$ sudo rm -rf /var/www/wordpress /var/www/latest.tar.gz
. - Definir permissões:
$ sudo chmod -R 775 /var/www
. - Definir grupos:
$ sudo chown -R www-data.www-data /var/www
.
Configurar o banco de dados do WordPress
Faça login no MySQL
$ mysql -u root -p
. Agora execute os seguintes comandos:CREATE DATABASE wordpress; CREATE USER wordpress@localhost; GRANT ALL PRIVILEGES ON wordpress.* to username@localhost IDENTIFIED BY 'password'; FLUSH PRIVILEGES; quit
Agora você pode acessar o endereço IP do seu servidor e seguir a famosa instalação de cinco minutos.