Pesquisa de site

Configurando HHVM e Nginx/Apache de alto desempenho com MariaDB no Debian/Ubuntu


HHVM significa HipHop Virtual Machine, é uma máquina virtual de código aberto criada para executar Hack (é uma linguagem de programação para HHVM) e Aplicações escritas em PHP. HHVM usa um caminho de compilação de última hora para alcançar um desempenho notável, mantendo a flexibilidade em que os programadores PHP são viciados. Até o momento, o HHVM alcançou um aumento de mais de 9x na taxa de transferência de solicitações HTTP e um corte de mais de 5x na utilização de memória (quando executado com pouca memória do sistema) para o Facebook em comparação com o mecanismo PHP + APC (Cache PHP Alternativo). ).

O HHVM também pode ser usado junto com um servidor web baseado em FastCGI como Nginx ou Apache.

Neste tutorial veremos as etapas para configurar o servidor web Nginx/Apache, o servidor de banco de dados MariaDB e o HHVM . Para esta configuração, usaremos o Ubuntu 15.04 (64 bits), pois o HHVM é executado apenas em sistemas de 64 bits, embora as distribuições Debian e Linux Mint também sejam suportadas.

Etapa 1: instalação do Nginx e do servidor Web Apache

1. Primeiro faça uma atualização do sistema para atualizar a lista de repositórios com a ajuda dos seguintes comandos.


apt-get update && apt-get upgrade

2. Como eu disse, HHVM pode ser usado com servidores web Nginx e Apache. Portanto, a escolha do servidor web que você usará é sua, mas aqui mostraremos a instalação dos servidores web e como usá-los com HHVM.

Instalando o Nginx

Nesta etapa, instalaremos o servidor web Nginx/Apache do repositório de pacotes usando o seguinte comando.


apt-get install nginx

Instalando o Apache


apt-get install apache2

Neste ponto, você poderá navegar para o URL a seguir e ver a página padrão do Nginx ou do Apache.


http://localhost
OR
http://IP-Address
Página padrão do Nginx

Página padrão do Apache

Etapa 2: instalar e configurar o MariaDB

3. Nesta etapa instalaremos o MariaDB, pois ele oferece melhor desempenho em comparação ao MySQL.


apt-get install mariadb-client mariadb-server

4. Após a instalação bem-sucedida do MariaDB, você pode iniciar o MariaDB e definir a senha root para proteger o banco de dados:


systemctl start mysql
mysql_secure_installation

Responda às seguintes perguntas digitando y ou n e pressione Enter. Certifique-se de ler as instruções cuidadosamente antes de responder às perguntas.


Enter current password for root (enter for none) = press enter
Set root password? [Y/n] = y
Remove anonymous users[y/n] = y
Disallow root login remotely[y/n] = y
Remove test database and access to it [y/n] = y
Reload privileges tables now[y/n] = y 

5. Depois de definir a senha root para o MariaDB, você pode se conectar ao prompt do MariaDB com a nova senha root.


mysql -u root -p

Etapa 3: Instalação do HHVM

6. Nesta fase iremos instalar e configurar o HHVM. Você precisa adicionar o repositório HHVM ao seu arquivo sources.list e então atualizar sua lista de repositórios usando a seguinte série de comandos.


wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | apt-key add -
echo deb http://dl.hhvm.com/ubuntu DISTRIBUTION_VERSION main | sudo tee /etc/apt/sources.list.d/hhvm.list
apt-get update

Importante: não se esqueça de substituir DISTRIBUTION_VERSION pela sua versão de distribuição do Ubuntu (ou seja, lúcida, precisa ou confiável .) e também no Debian substitua por jessie ou wheezy. No Linux Mint as instruções de instalação são as mesmas, mas petra é a única distribuição atualmente suportada.

Depois de adicionar o repositório HHVM, você pode instalá-lo facilmente conforme mostrado.


apt-get install -y hhvm

A instalação do HHVM irá inicializá-lo agora, mas não está configurado para iniciar automaticamente na próxima inicialização do sistema. Para definir a inicialização automática na próxima inicialização, use o seguinte comando.


update-rc.d hhvm defaults

Etapa 4: configurando Nginx/Apache para conversar com HHVM

7. Agora, o nginx/apache e o HHVM estão instalados e rodando como independentes, então precisamos configurar os dois servidores web para se comunicarem entre si. A parte crucial é que temos que dizer ao nginx/apache para encaminhar todos os arquivos PHP para o HHVM executar.

Se você estiver usando Nginx, siga estas instruções conforme explicado.

Por padrão, a configuração do nginx fica em /etc/nginx/sites-available/default e essas configurações procuram em /usr/share/nginx/html os arquivos a serem executados, mas não sabe o que fazer com PHP.

Para fazer o Nginx se comunicar com o HHVM, precisamos executar o seguinte script de inclusão que irá configurar o nginx corretamente, colocando um hhvm.conf no início da configuração do nginx, conforme mencionado acima.

Este script faz com que o nginx se comunique com qualquer arquivo que termine com .hh ou .php e envie-o para o HHVM via fastcgi.


/usr/share/hhvm/install_fastcgi.sh

Importante: Se você estiver usando Apache, nenhuma configuração será necessária agora.

8. Em seguida, você precisa usar /usr/bin/hhvm para fornecer /usr/bin/php (php) executando este comando abaixo.


/usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60

Depois que todas as etapas acima forem concluídas, você poderá iniciar o HHVM e testá-lo.


systemctl start hhvm

Etapa 5: Testando HHVM com Nginx/Apache

9. Para verificar se o hhvm está funcionando, você precisa criar um arquivo hello.php no diretório raiz do documento nginx/apache.


nano /usr/share/nginx/html/hello.php       [For Nginx]
OR
nano /var/www/html/hello.php               [For Nginx and Apache]

Adicione o seguinte trecho a este arquivo.


<?php
if (defined('HHVM_VERSION')) {
echo 'HHVM is working';
 phpinfo();
}
else {
echo 'HHVM is not working';
}
?>

e, em seguida, navegue até o seguinte URL e verifique se “olá mundo“.


http://localhost/info.php
OR
http://IP-Address/info.php

Se a página “HHVM” aparecer, significa que está tudo pronto!

Conclusão

Essas etapas são muito fáceis de seguir e esperamos que este tutorial seja útil e se você receber algum erro durante a instalação de algum pacote, poste um comentário e encontraremos soluções juntos. E quaisquer ideias adicionais são bem-vindas.