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!
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.
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:
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’.
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:
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:
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
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