Thursday, September 19, 2013

phpVirtualBox on openSUSE reloaded


phpVirtualBox home page has been moved from google to sourceforge it is in http://sourceforge.net/projects/phpvirtualbox/files/latest/download.  You will need to install VirtualBox since it is just a front end.  before you can use this app. Refer to my guide on how you can install vbox.  After you have installed vbox you will install a web server. We will use apache2 as an example. You can either use yast2 software management to install the lamp_server pattern and some php packages or use our friend zypper.

  In this setup i choose to install to a different directory than /srv/www/htdocs. So just in case something unrecoverable happens :P in my system i will not delete the directory where phpvirtuablox resides. Here i choose /data/apache2. You can put it any where you like just replace the config entry in apache2.

To install the packages using zypper
  •     zypper in patterns-openSUSE-lamp_server php5-soap      

 Create an entry for apache2
  •     vi /etc/apache2/conf.d/phpvirtualbox.conf   

The only thing you need to replace to meet your setup is    /data/apache2  the rest is as-is.


  Alias /phpvirtualbox  /data/apache2/phpvirtualbox

  <Directory   /data/apache2/phpvirtualbox>
     Options Indexes MultiViews FollowSymLinks
     AllowOverride All
     Order allow,deny
     Allow from all
  </Directory>



 Unpack that zip file using unzip into /data/apache2.
  •   unzip phpvirtualbox-"$version".zip -d /data/apache2/ && cd /data/apache2 
Rename that file to just phpvirtualbox
  •   mv -v phpvirtualbox-"$version" phpvirtualbox && cd phpvirtualbox 

Now rename the php file
  •  mv config.php-example config.php 

Edit that config.php file and put the name of the user which uses virtualbox and the corresponding line and do it like this.
   
  
  var $username = 'jetchisel';                                  
  var $password = 'mypassword';


  •   var $ location = 'http://127.0.0.1:18083';  

  •  var $consoleHost = 'IP ADDRESS OF YOUR COMPUTER'; 

Create an file called virtualbox in /etc/default and put something like this.


  VBOXWEB_USER=jetchisel



Set permissions as root run the following commands.

  •   chgrp -Rv vboxusers /data/apache2/phpvirtualbox  
  •   chmod -Rv 775 /data/apache2/phpvirtualbox   

 Edit that config.php file, un comment out the following.

  
  var $startStopConfig = true;
  
  var $enableAdvancedConfig = true;
                                 



For the deprecated system V.
 Download the vboxinit for SuSE.
  •  wget https://raw.github.com/Jetchisel/vboxinit/master/sysV-vboxinit -O vboxinit 
copy the script to /etc/init.d
  •  cp -v vboxinit /etc/init.d/vboxinit 
set permission.
  •  chmod u+rx /etc/init.d/vboxinit  
Enable init script.
  •  chkconfig vboxinit on  
 Check the script if it is working
  •  /etc/init.d/vboxinit {start|stop|restart|status} 

Enable the init scripts at boot time.

  •   chkconfig vboxweb-service on 

Restart the init scripts as root run the following.
  •  service vboxautostart-service restart 
  •  service vboxweb-service restart 

For SYSTEMD

 Download the systemd version  for SuSE.
  •  wget https://raw.github.com/Jetchisel/systemd-vboxinit/master/systemd-vboxinit 
You can save it to any place you want even in /home/user/bin. In this example i choose to put in  to /usr/lib/systemd/
  •  cp -v systemd-vboxinit /usr/lib/systemd 
Set permissions
  •  chmod ug+x /usr/lib/systemd/systemd-vboxinit 
  •  chgrp vboxusers /usr/lib/systemd/systemd-vboxinit


Create a systemd unit  "vboxvmservice.service" (or any name that suits you)
inside /usr/lib/systemd/system and add the entry below: Replace " username " with the user that belongs to the vboxusers group.

  

       [Unit]
       Description=VBox Virtual Machine  Service
       Requires=systemd-modules-load.service
       After=systemd-modules-load.service
       Before=shutdown.target reboot.target halt.target     


       [Service]
       Type=oneshot
       User=username
       Group=vboxusers

       KillMode=none
       StandardOutput=syslog+console
       EnvironmentFile=/etc/default/virtualbox
       ExecStart=/usr/lib/systemd/systemd-vboxinit start
       ExecStop=/usr/lib/systemd/systemd-vboxinit stop
       RemainAfterExit=yes

       [Install]
       WantedBy=multi-user.target


                           

If you choose to save the systemd-vboxinit script in another path and not /usr/lib/systemd then you need to adjust the following entry.

  •  ExecStart=/path/to/file/systemd-vboxinit start
  •  ExecStop=/paht/to/file/systemd-vboxinit stop 

Start that newly created unit.
  •   systemctl start vboxvmservice.service 
Enable the service at boot time.
  •  systemctl enable vboxvmservice.service 

Enable the init scripts;

  •  systemctl enable vboxweb-service.service 

Start and enable apache2.
  •   systemctl start apache2.service 
  •  systemctl enable apache2.service 

In your browser type the url below:
  •   localhost/phpvirtualbox  

First log in:
  •  username: admin 
  •  password: admin  























After a log in you can add a user that can handle your vms.





























Configure vms in phpvirtualbox's graphical menu.
  •  Settings --> General --> Basic --> "StartupMode --> Automatic" 























 An example of running vms at boot.





















Checking the status of your unit after booting.






Zip file from github:  https://github.com/Jetchisel/systemd-vboxinit/archive/master.zip

You can search phpvirtualbox for an rpm package of this in OBS.

Kudos to Mr. Ian Moore the author of phpvirtuabox.



No comments:

Post a Comment