Spis treści
phpVirtualBox to napisany w języku PHP interfejs WWW, który umożliwia zarządzanie maszynami wirtualnymi z poziomu przeglądarki. Jest to bardzo miła alternatywa dla VirtualBox’a działającego w normalnych środowisku graficznym. Jego instalacja oraz przygotowanie do działania wraz z VirtualBox’em nie jest wcale trudne.
Instalacja VirtualBoxa
Cała konfigurację zaczniemy od instalacji najważniejszego pakietu, czyli VirtualBox’a. Ponieważ nasz testowy system to CentOS 5 użyjemy gotowej paczki dla niego, dostępnej na oficjalnej stronie w sekcji Downloads:
[root@vm tmp]# wget http://download.virtualbox.org/virtualbox/4.1.18/VirtualBox-4.1-4.1.18_78361_rhel5-1.x86_64.rpm [root@vm tmp]# rpm -ihv VirtualBox-4.1-4.1.18_78361_rhel5-1.x86_64.rpm error: Failed dependencies: libGL.so.1()(64bit) is needed by VirtualBox-4.1-4.1.18_78361_rhel5-1.x86_64 libSDL-1.2.so.0()(64bit) is needed by VirtualBox-4.1-4.1.18_78361_rhel5-1.x86_64 libasound.so.2()(64bit) is needed by VirtualBox-4.1-4.1.18_78361_rhel5-1.x86_64 libXmu.so.6()(64bit) is needed by VirtualBox-4.1-4.1.18_78361_rhel5-1.x86_64 libXt.so.6()(64bit) is needed by VirtualBox-4.1-4.1.18_78361_rhel5-1.x86_64
Brakuje nam kilku bibliotek, więc szybko je doinstalujemy:
[root@vm tmp]# yum install mesa-libGL SDL libXmu libXt [root@vm tmp]# rpm -ihv VirtualBox-4.1-4.1.18_78361_rhel5-1.x86_64.rpm
Od razu dodamy Extension Pack:
root@vm tmp]# wget http://download.virtualbox.org/virtualbox/4.1.18/Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack [root@vm tmp]# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Successfully installed "Oracle VM VirtualBox Extension Pack".
Następnie musimy skompilować moduły jądra dla VirtualBox’a. Potrzebne nam do tego pakiety kernel-devel
, kernel-headers
oraz dkms
[root@vm tmp]# yum install kernel-devel kernel-headers dkms
Korzystając z gotowego skryptu, skompilujemy niezbędne moduły:
[root@vm tmp]# /etc/init.d/vboxdrv setup Stopping VirtualBox kernel modules [ OK ] Uninstalling old VirtualBox DKMS kernel modulesError! There are no instances of module: vboxhost 4.1.18 located in the DKMS tree. Error! There are no instances of module: vboxhost 4.1.18 located in the DKMS tree. [ OK ] Trying to register the VirtualBox kernel modules using DKMS[ OK ] Starting VirtualBox kernel modules [ OK ] [root@vm tmp]# lsmod | grep vbox vboxpci 49840 0 vboxnetadp 53008 0 vboxnetflt 53776 0 vboxdrv 1888116 3 vboxpci,vboxnetadp,vboxnetflt
Polecenie lsmod
pokazuje, że moduły zostały załadowane poprawnie. Dodamy teraz nowego użytkownika dla VirtualBox'a
:
[root@vm tmp]# useradd -s /bin/sh -d /home/vmuser -m vmuser [root@vm tmp]# passwd vmuser Changing password for user vmuser. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@vm tmp]# usermod -a -G vboxusers vmuser [root@vm tmp]# groups vmuser vmuser : vmuser vboxusers
Ważne jest aby użytkownik należał do grupy vboxusers
.
Instalacja i konfiguracja phpVirtualBox
phpVirtualBox wymaga oczywiście serwera www z obsługą PHP. Dodamy je do systemu, ponownie korzystając z polecenia yum
:
[root@vm tmp]# yum install php53 php53-soap httpd
Następnie ściągniemy paczkę zip z oficjalnej strony projektu i rozpakujemy do katalogu /var/www/html/phpvirtualbox
:
[root@vm tmp]# cd /var/www/html [root@vm tmp]# wget http://phpvirtualbox.googlecode.com/files/phpvirtualbox-4.1-7.zip [root@vm html]# unzip phpvirtualbox-4.1-7.zip Archive: phpvirtualbox-4.1-7.zip creating: phpvirtualbox-4.1-7/ .... [root@vm html]# mv phpvirtualbox-4.1-7 phpvirtualbox [root@vm html]# cd phpvirtualbox [root@vm phpvirtualbox]# mv config.php-example config.php
W pliku config.php
podajemy nazwe użytkownika oraz hasła, pod którym będzie uruchomiony VirtualBox:
[root@vm html]# cat config.php ... /* Username / Password for system user that runs VirtualBox */ var $username = 'vmuser'; var $password = 'haslo'; /* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */ var $location = 'http://127.0.0.1:18083/'; ...
Musimy jeszcze stworzyć plik /etc/default/virtualbox
. Jest to plik konfiguracyjny używany przez proces vboxweb-service
:
[root@vm ~]# cat /etc/default/virtualbox VBOXWEB_USER=vmuser VBOXWEB_LOGFILE=/var/log/vbox.log
Plik logów należy stworzyć ręcznie, a prawa do zapisu musimy mieć użytkownik vmuser
. W przeciwnym razie, nie uda się uruchomić procesu vboxweb-service
:
[root@vm ~]# touch /var/log/vbox.log [root@vm ~]# chown vmuser.vmuser /var/log/vbox.log
I startujemy:
[root@vm ~]# /etc/init.d/vboxweb-service start [root@vm ~]# ss -anp | grep 18083 LISTEN 0 0 127.0.0.1:18083 *:* users:(("vboxwebsrv",10158,11)) [root@vm ~]# cat /var/log/vbox.log VirtualBox web service 4.1.18 r78361 linux.amd64 (Jun 15 2012 19:04:53) release log 00:00:00.001 main Log opened 2012-07-04T11:51:01.360597000Z 00:00:00.001 main OS Product: Linux 00:00:00.001 main OS Release: 2.6.18-308.8.2.el5 00:00:00.001 main OS Version: #1 SMP Tue Jun 12 09:58:12 EDT 2012 00:00:00.001 main OS Service Pack: #1 SMP Tue Jun 12 09:58:12 EDT 2012 00:00:00.001 main Executable: /usr/lib/virtualbox/vboxwebsrv 00:00:00.001 main Process ID: 10557 00:00:00.001 main Package type: LINUX_64BITS_RHEL_5
Usługa działa na naszym serwerze, nasłuchuje na porcie 18083 (interfejs lo). Teraz możemy zalogować się do panelu używając przeglądarki. Domyślny użytkownik i hasło to admin.
phpVirtualBox – zrzuty ekranu
Poniżej kilka zrzutów pokazujących panel w akcji.
Fajnie opisane. Dzięki.