PHPVirtualBox com NGINX

Você por acaso, gostaria de ter uma interface web para gerenciar as máquinas virtuais do CPD, sem necessariamente precisar compartilhar a senha de seus servidores?

Se você curtir esse artigo, não esqueça de dar uns cliques nos anúncios para ver o que os anunciantes tem para te oferecer. Vou ficar muito contente.

Falar do PHPVirtualBox é a proposta desta página. Mas antes de entrar no assunto caro leitor, saiba que sua presença é motivo de orgulho e satisfação. Tenha uma boa leitura. Comentários e sugestões de melhorias são mais que bem-vindas!

PHPVirtualBox

Esta instalação é sobre como configurar o PHPVirtualbox para rodar com o servidor NGINX.

Acompanhe os passos:

1- Instalar Ubuntu normalmente:

Prossiga com a instalação do Ubuntu ou utilize uma instalação já rodando.

2-Instalando os pacotes:

Terminada a instalação do Ubuntu, prossiga com a instalação dos pacotes necessários:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install devscripts build-essential fakeroot virtualbox gnome-panel vim nginx mysql-server php7.0-xml php-fpm php-mysql php7.0-soap

3- Crie usuário vbox e seu password:

sudo useradd -m vbox
sudo passwd vbox

4- Instalando o adicional de convidados do VirtualBox (extension pack):

Acesse a página do VirtualBox -> https://www.virtualbox.org/wiki/Downloads

Baixe o adicional para convidados (extension pack) de acordo com a build do VirtualBox que acabou de instalar. Se for uma versão mais antiga, tem que ir no link https://www.virtualbox.org/wiki/Download_Old_Builds e selecionar a versão correta.

Após baixar o adicional para convidados, inicie o VirtualBox e tecle <CTRL> + G

Vai abrir a tela de preferências do VirtualBox conforme figura abaixo. Selecione ‘Extensões’ -> clique no botão para acrescentar um novo pacote, navegue até a pasta onde está o extension pack, selecione o arquivo, clique em abrir e Ok.

Preferências do VirtualBox

5- Baixando o SDK do VirtualBox:

Nessa etapa tem que baixar o pacote do SDK que é o software development kit do Virtualbox.

Esse arquivo pode ser encontrado nesse link aqui -> https://www.virtualbox.org/wiki/Downloads . Faça o download para a pasta Downloads, nesse exemplo.

6- Copiando o SDK do VirtualBox para a pasta correta:

Ele vem zipado. Expanda o pacote do SDK na pasta Downloads. Na sequência, copie a pasta inteira para o caminho ‘/usr/lib/virtualbox/sdk’.
Para isso, vá na pasta Downloads e execute o comando:

sudo cp -R sdk/ /usr/lib/virtualbox/

Para verificar se os arquivos foram copiados corretamente, observe o conteúdo da pasta bindings no caminho ‘/usr/lib/virtualbox/sdk/bindings’. Ela tem que ficar conforme figura abaixo:

Pasta bindings após a cópia

Se não ficou conforme figura acima, revise o procedimento de cópia que alguma coisa deu errado.

7- Acertando o grupo vboxusers e www-data:

Adicione os usuários no grupo vboxusers e www-data. Nesse caso os usuários ‘renato’ e ‘vbox’.

sudo usermod -a -G vboxusers renato
sudo usermod -a -G vboxusers vbox
sudo usermod -a -G www-data renato
sudo usermod -a -G www-data vbox

8- Configurando a variável VBOX_INSTALL_PATH:

Conforme figura abaixo, para cada um dos usuários, ‘renato’ e ‘vbox’ no caso, edite o arquivo /home/<usuário>/.profile e adicione a linha ‘export VBOX_INSTALL_PATH=/usr/lib/virtualbox’.

VBOX_INSTALL_PATH

Salve o arquivo, saia e execute o comando source .profile em cada usuário para a variável de ambiente ser reconhecida.

9- Instalando o SDK do VirtualBox:

Os passos 5, 6, 7 e 8 são a preparação do ambiente para instalar o SDK do VirtualBox. Agora começa a instalação propriamente dita.

Navegue até o diretório ‘/usr/lib/virtualbox/sdk/installer’. Conforme comandos abaixo torne executável o script ‘vboxapisetup.py’ e prossiga com a instalação do SDK:

sudo chmod +x vboxapisetup.py
sudo -E python vboxapisetup.py install

Note que a chave ‘-E’ da linha de instalação serve para assegurar que o sudo seja executado enxergando as variáveis de ambiente do usuário local, que no caso é o ‘renato’. Em outras palavras isso faz com que o instalador do SDK consiga encontrar a variável de ambiente ‘VBOX_INSTALL_PATH’.

A partir desse ponto o SDK do VirtualBox está instalado. Para ver se tudo está ok, na tela de terminal, rode o comando vboxwebsrv sem root. O servidor web do VirtualBox deve iniciar sem erro. Caso isso não aconteça, reveja os passos anteriores.

10- ‘vboxwebsrv’ iniciando como um serviço:

A seguir tem o passo a passo de como configurar o servidor web Vbox (vboxwebsrv) para iniciar como um serviço.

Serão criados dois arquivos, chamados ‘vbtst’ e ‘vboxweb.service’ que irão conter as regras para iniciar o serviço do vboxwebsrv.

Crie com o editor vim o arquivo vbtst no caminho /usr/bin/

sudo vim /usr/bin/vbtst

Edite o arquivo vbtst para ficar conforme abaixo.

#!/bin/sh
## @file
#su -c vboxwebsrv - $(whoami)
su -c vboxwebsrv - vbox
exit 0

Salve e saia do editor.
Acerte a permisão do arquivo ‘vbtst’ para ser executável:

sudo chmod +x /usr/bin/vbtst

Acesse a pasta ‘/lib/systemd/system’.
Crie o arquivo vboxweb.service com o editor vim.

sudo vim /lib/systemd/system/vboxwclasseb.service

Uma vez aberto o arquivo, copie e cole no editor de texo, o script abaixo:

#***
[Unit]
Description=Servico Web VirtualBox
After=network.service
Wants=network.service

[Service]
Type=simple
ExecStart=/usr/bin/vbtst

[Install]
WantedBy=multi-user.target
Alias=vboxweb.service
#***

Salve e feche o arquivo ‘vboxweb.service’ que deve ficar no diretório ‘/lib/systemd/system/vboxweb.service’.

Para habilitar o serviço vboxweb, execute o comando:

sudo systemctl enable vboxweb.service

Esse comando cria um link simbólico no diretório ‘/etc/systemd/system’ habilitando o servidor web do VirtualBox ‘vboxwebsrv’.

Os comandos abaixos servem para gerenciar o serviço web do virtualbox:

sudo systemctl disable vboxweb.service
sudo systemctl status vboxweb.service
sudo systemctl start vboxweb.service
sudo systemctl stop vboxweb.service
sudo systemctl restart vboxweb.service

Caso precise alterar algum parâmetro do serviço, logo após a alteração, emita o comando abaixo para forçar a inclusão das alterações.

sudo systemctl daemon-reload

11- Acertando o firewall e o arquivo php.ini
Agora vem a configuração do firewall:

sudo ufw allow 'Nginx HTTP'
sudo ufw enable
sudo vim /etc/php/7.0/fpm/php.ini

Acertando a configuração do arquivo php.ini:

sudo vim /etc/php/7.0/fpm/php.ini

Uma vez aberto o arquivo php.ini e conforme figura abaixo, encontre a linha ‘;cgi.fix_pathinfo=1’, descomente e mude seu valor para zero:

cgi.fix_pathinfo

Terminada a edição, faça a reinicialização do serviço PHP

sudo systemctl restart php7.0-fpm

12- Configurando o Nginx para usar o PHP

Salve uma cópia de segurança do arquivo ‘default’ que fica no diretório ‘sites-available’:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bkp

Abra em edição o arquivo ‘default’ do diretório ‘sites-available’:

sudo vim /etc/nginx/sites-available/default

Assegure que o arquivo fique conforme figura abaixo (comentários removidos para clareza):

server {
 listen 80 default_server;
 listen [::]:80 default_server;
 root /var/www/html;
 index index.php index.html index.htm index.nginx-debian.html;
 server_name domínio_do_servidor_ou_IP;
 location / {
 try_files $uri $uri/ =404;
 }
 location ~ \.php$ {
 include snippets/fastcgi-php.conf;
 fastcgi_pass unix:/run/php/php7.0-fpm.sock;
 }
 location ~ /\.ht {
 deny all;
 }
}

Salve, feche e teste o arquivo para ver se há erros de configuração com o comando:

sudo ngnix -t

Caso o teste indique algum erro, analise a sintaxe e refaça o procedimento acima.

Recarregue o nginx para incorporar as alterações:

sudo systemctl reload nginx

13- Acertando as permissões de arquivos:

Acerte o grupo dos arquivos do diretório ‘/var/www/’ para pertencerem ao grupo ‘www-data’. Para isso navegue até o diretório ‘/var/www/’ e execute o comando:

sudo chgrp -R www-data ./html

Ainda no diretório ‘/var/www/’, acerte para que o diretório ‘/var/www/html’ tenha permissão 775 com o comando abaixo:

sudo chmod 775 html

Acerte para que os arquivos do diretório /var/www/html tenham a permissão 664 com o comando abaixo:

sudo chmod 664 /var/www/html

Faça o logoff / logon para assumir a mudança (há outros meios).

Para ver se o serviço PHP está rodando, crie um arquivo com o nome info.php no diretório raiz do servidor nginx, com o comando abaixo:

sudo vim /var/www/html/info.php

Uma vez aberto o arquivo adicione a linha:

<?php phpinfo(); ?>

Salve e feche. Na sequência abra o navegador de sua preferência e acesse a página info.php para assegurar que o PHP está ok, conforme figura abaixo:

Página PHP

12- Baixando o phpVirtualBox (quase no fim)

Faça o download do phpvirtualbox no site Sourceforge

Atualmente é o arquivo ‘phpvirtualbox-5.0.zip’. Navegue até o diretório Downloads, descompacte o arquivo phpvirtualbox-5.0.zip, renomeie para um nome menor, no caso ‘vb’.
Copie o diretório vb para a pasta /var/www/html conforme comando abaixo:

cp -R vb/ /var/www/html

Navegue até a pasta /var/www/html/vb, copie o arquivo ‘config.php-example’ como ‘config.php’, na mesma pasta. Em seguida abra o arquivo config.php recém criado com o vim:

cp config.php-example config.php
vim /var/www/html/vb/config.php
config.php

Conforme figura acima, atente para configurar o nome da conta ‘vbox’ e a senha do usuário ‘vbox’. Essa é a conta que vai acessar o ambiente Linux. Não tem nada a ver com a senha de administrador da aplicação phpVirtualBox. Tem outros parâmetros, inclusive que habilitam configurações avançadas (var $enableAdvancedConfig = true;). Eles estão bem explicados. É só ler, entender e habilitar conforme o caso.

Terminada a edição do config.php, é salvar, fechar, abrir o navegador web de sua preferência, apontar para o endereço ‘http://<IP do servidor>/vb’.

Vai abrir a tela de login, cujo usuário e senha padrão é ‘admin’ ‘admin’, que pode ser alterado depois.

Pronto. Está configurado o phpVirtualBox.

Espero que tenha gostado. Se precisar de um consultor, fale comigo.

By Renato de Pierri
14/Julho/2017

Last updated by at .

Deixe um comentário