Инструменты пользователя

Инструменты сайта


wiki:freebsd:virtualbox

Установка VirtualBox и phpvirtualbox на FreeBSD

После установки ОСи обновляем устанавливаем порты и обновляем их.

# 
portsnap fetch extract
portsnap fetch update

Получаем свежие src ОС

# Получаем свежие сырцы

fetch -o /tmp/src.txz http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/`uname -r`/src.txz
cd /; tar xJvf /tmp/src.txz

Собираем VirtualBox и модули ядра для его работы

# Устанавливаем tmux
/usr/ports/sysutils/tmux
make install clean BATCH=yes
# Порт virtualbox-ose будет компилироваться несколько часов, поэтому выполняем это в tmux
# Порт virtualbox-ose-kmod подтянется сам.
tmux
cd /usr/ports/emulators/virtualbox-ose
make install clean BATCH=yes I_DONT_CARE_IF_MY_BUILDS_TARGET_THE_WRONG_RELEASE=yes
cd /usr/ports/sysutils/lsof
make install clean BATCH=yes
 
 
# Добавляем модуль в загрузку
echo 'vboxdrv_load="YES"' >> /boot/loader.conf
# Загружаем модуль в память
kldload vboxdrv

Устанавливаем PhpVirtualBox

# Добавляем пользователя, от которого будут работать VM на сервере.
# Пароль сохраняем, он нам потребуется чуть позднее.
adduser vbox
pw groupmod vboxusers -m vbox
 
# Устанавливаем web-сервер nginx
pkg install -y nginx
 
# Устанавливаем PhpVirtualBox
cd /usr/ports/www/phpvirtualbox
make install clean BATCH=yes

Обращаю внимание, что php установится автоматом при установке phpvirtualbox

Конфигурируем VirtualHost для вебморды

# Копируем конфиг для php.ini
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
# Добавляем ссылку на каталог ngnix/conf.d
sed -i.bak '$s/}/\tinclude conf.d\/\*\.conf;\r\n\r\n}/'  /usr/local/etc/nginx/nginx.conf
# Создаем директорию для добавления собственных конфигов NgiNX
mkdir /usr/local/etc/nginx/conf.d/

Далее нужно создать конфиг /usr/local/etc/nginx/conf.d/vbox.conf Укажите URL, по которому будет работать веб-морда phpVBox

vbox.conf
server {
  listen 80;
  server_name URL-URL;
  root /usr/local/www;
  error_log /var/log/nginx/vbox-error.log warn;
  access_log /var/log/nginx/vbox.log;
 
  location / {
    root /usr/local/www/nginx;
    index index.php index.html;
    try_files $uri $uri/ =404;
  }
 
  location /phpvirtualbox {
    index index.html;
    try_files $uri $uri/ =404;
  }
 
  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
  }
}

Включаем phpVirtualBox

# Добавляем в автозагрузку nginx и php-fpm
sysrc nginx_enable=YES
sysrc php_fpm_enable=YES
 
# Стартуем сервисы
service php-fpm restart
service nginx restart

Стартуем vboxwebserver

sysrc vboxwebsrv_enable=YES
sysrc vboxwebsrv_user="vbox"
/usr/local/etc/rc.d/vboxwebsrv start

Сразу проверим, работает ли он:

lsof -i :18083
 
COMMAND     PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
vboxwebsr 87849 vbox    8u  IPv6 0xfffffe003e89b0e0      0t0  TCP localhost:18083 (LISTEN)

Конфигурируем PhpVirtualBox

nano  /usr/local/www/phpvirtualbox/config.php
config.php
/* Username / Password for system user that runs VirtualBox */
var $username = 'vbox';                       /* Тут указываем имя пользователя */
var $password = 'Pa$$w0rD';                   /* Тут указываем пароль пользователя */
 
/* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */
var $location = 'http://localhost:18083/';    /* Тут меняем 127.0.0.1 на locahost */

Стартуем все сервисы и проверяем работу VirtualBox и Вебморды

sysrc vboxguest_enable=YES
sysrc vboxnet_enable=YES
 
service vboxnet start

Переходите на http://URL-URL/phpvirtualbox/ и начинайте настройку виртуальных машин. Пароль admin по дефолту admin.

PS Не работает в веб-интерфейсе выбор файла для монтирования

Если не работает в веб-интерфейсе выбор файла для монтирования, то действуем так:

$ vboxmanage list vms
"app" {5e261d64-68d0-4f20-92eb-82dadde4c54b}
$ vboxmanage storageattach "5e261d64-68d0-4f20-92eb-82dadde4c54b" --storagectl IDE \
  --port 0 --device 0 --type dvddrive --medium /home/vbox/iso/debian-11.6.0-amd64-netinst.iso 

Если потребовалось сменить hdd диск у виртуальной машины:

# Находим UUID нужного диска в этом списке:
vboxmanage list hdd $DISKUUID
# Находим UUID машины, в которой хотим сменить диск
vboxmanage list vms $VMUUID
"app" {5e261d64-68d0-4f20-92eb-82dadde4c54b}
"mysql" {f5d595f0-c8a0-4359-83f5-185083710a40}
# Меняем диск
vboxmanage storageattach $VMUUID --storagectl "SATA" --device 0 --port 0 --type hdd --medium $DISKUUID
[PHP Modules]
Core
date
hash
json
libxml
mysqlnd
openssl
pcre
Reflection
session
SimpleXML
soap
SPL
standard
xml
 
[Zend Modules]
wiki/freebsd/virtualbox.txt · Последнее изменение: 2023/06/06 07:52 — Diman

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki