「PhpVirtualBox」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:仮想化 en:PhpVirtualBox '''phpVirtualBox''' は PHP で書かれた VirtualBox のユーザーインターフェイスのオープンソース...」)
 
(文字列「http://httpd.apache.org/」を「https://httpd.apache.org/」に置換)
 
(3人の利用者による、間の5版が非表示)
1行目: 1行目:
 
[[Category:仮想化]]
 
[[Category:仮想化]]
 
[[en:PhpVirtualBox]]
 
[[en:PhpVirtualBox]]
  +
{{Related articles start}}
  +
{{Related|VirtualBox}}
  +
{{Related|:カテゴリ:仮想化}}
  +
{{Related|RemoteBox}}
  +
{{Related articles end}}
 
'''phpVirtualBox''' は [[PHP]] で書かれた [[VirtualBox]] のユーザーインターフェイスのオープンソースな AJAX 実装です。近代的なウェブインターフェイスとして、リモートの VirtualBox インスタンスにアクセス・コントロールすることができます。コードは (開発が停止した) vboxweb プロジェクトをベースにしています。phpVirtualBox はヘッドレス環境の VirtualBox を管理できるように作られ、VirtualBox GUI をウェブインターフェイスで実現しています。
 
'''phpVirtualBox''' は [[PHP]] で書かれた [[VirtualBox]] のユーザーインターフェイスのオープンソースな AJAX 実装です。近代的なウェブインターフェイスとして、リモートの VirtualBox インスタンスにアクセス・コントロールすることができます。コードは (開発が停止した) vboxweb プロジェクトをベースにしています。phpVirtualBox はヘッドレス環境の VirtualBox を管理できるように作られ、VirtualBox GUI をウェブインターフェイスで実現しています。
   
 
== インストール ==
 
== インストール ==
  +
仮想マシンを遠隔操作するには2つのコンポーネントが必要です: 仮想マシンと同一の OS で動作する VirtualBox ウェブサービスと、PHP で書かれた、PHP が使用できるウェブサーバーに依存するウェブインターフェイスです。インターフェイスの通信で使用される [[Wikipedia:SOAP|SOAP]] プロトコルは暗号化されないため、ユーザー名とパスワードを平文でネットワーク上に送信したくない場合は同一のマシンにインストールすることが推奨されます。
To remotely control virtual machine you need two components: VirtualBox web service, running in the same OS with virtual machine, and web interface, written in PHP and therefore dependent on PHP-capable web server. Communication between them, based on [[Wikipedia:SOAP|SOAP]] protocol is currently unencrypted, so it is recommended to install both on the same machine if you do not want your username and password to be send via network as clear text.
 
   
 
=== VirtualBox ウェブサービス ===
 
=== VirtualBox ウェブサービス ===
ウェブコンソールを使うには、[[AUR]] から {{AUR|virtualbox-ext-oracle}} パッケージをインストールする必要があります。
+
ウェブコンソールを使うには、{{AUR|virtualbox-ext-oracle}} パッケージをインストールする必要があります。
   
 
=== VirtualBox ウェブインターフェイス (phpvirtualbox) ===
 
=== VirtualBox ウェブインターフェイス (phpvirtualbox) ===
[[公式リポジトリ]]から {{Pkg|phpvirtualbox}} を[[インストール]]してください。また、php に対応しているウェブサーバーを選択します ([[Apache]] が適当でしょう)。
+
{{Pkg|phpvirtualbox}} パッケージを[[インストール]]してください。また、php に対応しているウェブサーバーを選択します ([[Apache]] が適当でしょう)。
   
 
== 設定 ==
 
== 設定 ==
  +
以下の設定をするには先にウェブサーバーと PHP をセットアップしておく必要があります (ルートディレクトリは {{Ic|/srv/http}} とします)。
''From here on out, it is assumed that you have a web server (with root at {{Ic|/srv/http}}) and php functioning properly.''
 
   
 
=== ウェブサービス ===
 
=== ウェブサービス ===
  +
仮想マシンの設定で、リモートデスクトップのアクセスを有効にして他の仮想マシンとは異なるポートを指定してください。
In the virtual machine settings, enable the remote desktop access and specify a port different with other virtual machines.
 
   
  +
マシンにリモートからアクセスするには、毎回以下のようなコマンドを実行する必要があります:
Every time you need to make machine remotely available execute something like this:
 
   
 
vboxwebsrv -b --logfile '''path to log file''' --pidfile /run/vbox/vboxwebsrv.pid --host 127.0.0.1
 
vboxwebsrv -b --logfile '''path to log file''' --pidfile /run/vbox/vboxwebsrv.pid --host 127.0.0.1
   
  +
上記のコマンドはサービスを実行するのに使いたいユーザーで実行してください ({{Ic|/etc/host.conf}} で '''localhost''' の関連付けを有効にしている場合は {{Ic|--host}} オプションは外してもかまいません)。
As user whose account you want the service to be running from ({{Ic|--host}} option is not necessary if you enabled association with '''localhost''' in the {{Ic|/etc/host.conf}}).
 
   
{{Note|This user must be in group '''vboxusers'''!}}
+
{{Note|ユーザーは '''vboxusers''' グループに属していなければなりません。}}
   
{{Pkg|virtualbox}} is available in the community and it contains the {{Ic|vboxweb.service}} for [[systemd]].
+
{{Pkg|virtualbox}} community に入っており、[[systemd]] で扱うための {{Ic|vboxweb.service}} が含まれています。
   
To start {{Ic|vboxweb}} from '''non-root user''' you must:
+
root 以外のユーザーから {{Ic|vboxweb}} を起動したい場合:
   
1. Create or add a user in the group {{Ic|vboxusers}} (for example, {{Ic|vbox}})
+
1. {{Ic|vboxusers}} グループにユーザーを作成・追加してください (例: {{Ic|vbox}})
   
2. Create your custom {{Ic|vboxweb_mod.service}} file by copying {{Ic|/usr/lib/systemd/system/vboxweb.service}} to {{Ic|/etc/systemd/system/vboxweb_mod.service}}
+
2. {{Ic|/usr/lib/systemd/system/vboxweb.service}} {{Ic|/etc/systemd/system/vboxweb_mod.service}} にコピーしてカスタム {{Ic|vboxweb_mod.service}} ファイルを作成。
   
3. Modify {{Ic|/etc/systemd/system/vboxweb_mod.service}} like this:
+
3. 以下のように {{Ic|/etc/systemd/system/vboxweb_mod.service}} を編集:
 
<nowiki> [Unit]
 
<nowiki> [Unit]
 
Description=VirtualBox Web Service
 
Description=VirtualBox Web Service
49行目: 54行目:
 
WantedBy=multi-user.target</nowiki>
 
WantedBy=multi-user.target</nowiki>
   
4. Create tmpfile rule for your {{Ic|vboxweb_mod.service}}
+
4. {{Ic|vboxweb_mod.service}} の一時ファイルルールを作成:
 
# echo "d /run/vboxweb 0755 vbox vboxusers" > /etc/tmpfiles.d/vboxweb_mod.conf
 
# echo "d /run/vboxweb 0755 vbox vboxusers" > /etc/tmpfiles.d/vboxweb_mod.conf
   
  +
5. {{Ic|vboxweb_mod.service}} の最初の起動のために {{Ic|/run/vboxweb}} ディレクトリを手動で作成:
5. Create manually {{Ic|/run/vboxweb}} directory for first start {{Ic|vboxweb_mod.service}}
 
 
# mkdir /run/vboxweb
 
# mkdir /run/vboxweb
 
# chown vbox:vboxusers /run/vboxweb
 
# chown vbox:vboxusers /run/vboxweb
 
# chmod 755 /run/vboxweb
 
# chmod 755 /run/vboxweb
  +
もしくはシステムを再起動すると自動的に作成されます。
or just reboot your system for automatically create.
 
   
6. Start {{Ic|vboxweb_mod.service}}
+
6. {{ic|vboxweb_mod.service}} を[[起動]]・[[有効化]]。
# systemctl start vboxweb_mod
 
and enable it if nessesary
 
# systemctl enable vboxweb_mod
 
   
 
=== ウェブインターフェイス ===
 
=== ウェブインターフェイス ===
Edit {{Ic|/etc/php/php.ini}}, make sure the following lines are uncommented.
+
{{Ic|/etc/php/php.ini}} を編集して、以下の行をアンコメントしてください:
   
extension=json.so ; this module is built into php as of version 5.4 and so will not exist or need to be uncommented
 
 
extension=soap.so
 
extension=soap.so
   
Edit the example configuration file {{Ic|/usr/share/webapps/phpvirtualbox/config.php-example}} appropriately (it is well-commented and does not need explanations). Copy that file into {{Ic|/etc/webapps/phpvirtualbox/config.php}} and symlink to {{Ic|/usr/share/webapps/phpvirtualbox/config.php}}.
+
サンプル設定ファイルの {{Ic|/usr/share/webapps/phpvirtualbox/config.php-example}} を適切に編集してください (ファイルにはコメントが豊富に付けられています)。ファイルを {{Ic|/etc/webapps/phpvirtualbox/config.php}} にコピーして、{{Ic|/usr/share/webapps/phpvirtualbox/config.php}} のシンボリックリンクを作成してください。
   
Then, edit {{Ic|/etc/php/php.ini}}, find {{Ic|open_basedir}} and append the configuration path {{Ic|/etc/webapps/}} at the end. It will look like the follows:
+
それから {{Ic|/etc/php/php.ini}} を編集して {{Ic|open_basedir}} の末尾に以下のように設定パスの {{Ic|/etc/webapps/}} を追加してください:
   
 
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/
 
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/
   
If you are running Apache as webserver, you can copy {{Ic|/etc/webapps/phpvirtualbox/apache.example.conf}} into {{Ic|/etc/httpd/conf/extra/phpvirtualbox.conf}}. If you are running Apache 2.4, due to [http://httpd.apache.org/docs/2.4/upgrading.html#run-time the syntax of ACL changes], edit that file to replace the follows
+
ウェブサーバーとして Apache を使用する場合、{{Ic|/etc/webapps/phpvirtualbox/apache.example.conf}} {{Ic|/etc/httpd/conf/extra/phpvirtualbox.conf}} にコピーして使うこともできます。Apache 2.4 を使用する場合、[https://httpd.apache.org/docs/2.4/upgrading.html#run-time ACL の構文が変更になった] ため、ファイルの以下の部分を:
   
 
Order allow,deny
 
Order allow,deny
 
Allow from all
 
Allow from all
   
  +
以下のように変更する必要があります:
to:
 
   
 
Require all granted
 
Require all granted
   
Next, add following line into {{Ic|/etc/httpd/conf/httpd.conf}}:
+
それから、{{Ic|/etc/httpd/conf/httpd.conf}} に以下の行を追加してください:
   
 
Include conf/extra/phpvirtualbox.conf
 
Include conf/extra/phpvirtualbox.conf
   
Edit {{Ic|/etc/webapps/phpvirtualbox/.htaccess}} and remove the following line.
+
{{Ic|/etc/webapps/phpvirtualbox/.htaccess}} を編集して以下の行を削除してください:
   
 
deny from all
 
deny from all
   
  +
設定後、ウェブサーバーを再起動してください (Apache であれば {{ic|httpd.service}} を[[再起動]])。
Don't forget to restart the webserver like this (example for Apache):
 
 
{{Ic|systemctl restart httpd}}
 
   
 
== 実行 ==
 
== 実行 ==
If everything works fine, visit http://'''YourVboxWebInterfaceHost'''/phpvirtualbox and it should show a login box. The initial username and password are both '''"admin"''', after login change them from the web interface (File -> change password). If you set {{Ic|1=$noAuth=true}} in the web interface {{Ic|config.php}}, you should immediately see the phpvirtualbox web interface.
+
設定に問題がなければ http://'''YourVboxWebInterfaceHost'''/phpvirtualbox を開いてログイン画面が表示されることを確認してください。初期ユーザー名・パスワードは '''"admin"''' です。ログインしたらウェブインターフェイスから変更することができます (File -> change password)。{{Ic|config.php}} でウェブインターフェイスの {{Ic|1=$noAuth=true}} を設定した場合、すぐに phpvirtualbox のウェブインターフェイスが表示されます。
   
 
== デバッグ ==
 
== デバッグ ==
If you encounter a login problem, and you have upgraded virtualbox from 3.2.x to 4.0.x, you should run the following command to update you websrvauthlibrary in you virtualbox configuration file which has been changed from {{Ic|VRDPAuth.so}} to {{Ic|VBOXAuth.so}}.
+
ログインができない場合、あるいは virtualbox 3.2.x から 4.0.x にアップグレードした場合、以下のコマンドを実行して virtualbox の設定ファイルの websrvauthlibrary を更新して {{Ic|VRDPAuth.so}} から {{Ic|VBOXAuth.so}} に変更する必要があります:
   
 
VBoxManage setproperty vrdeauthlibrary default
 
VBoxManage setproperty vrdeauthlibrary default
 
VBoxManage setproperty websrvauthlibrary default
 
VBoxManage setproperty websrvauthlibrary default
   
  +
上記のコマンドを実行してもインターフェイスにログインできないときは、以下のコマンドで webauth を無効化してみてください:
If you are still unable to login into the interface, you can try to disable webauth by
 
   
 
VBoxManage setproperty websrvauthlibrary null
 
VBoxManage setproperty websrvauthlibrary null
   
  +
そしてウェブサーバーの {{Ic|/etc/webapps/phpvirtualbox/config.php}} で $noAuth=true を設定してユーザー名とパスワードを空文字にしてください。ログイン画面をスキップしてすぐにウェブインターフェイスが表示されます。
on virtualization server and set username and password to empty strings and set $noAuth=true in {{Ic|/etc/webapps/phpvirtualbox/config.php}} on web server. By doing this, you should immediatelly access the web interface without login process. And then, maybe you can try some apache access control.
 
   
 
== 参照 ==
 
== 参照 ==
* [http://sourceforge.net/projects/phpvirtualbox/ PHPVirtualBox ホームページ]
+
* [https://sourceforge.net/projects/phpvirtualbox/ PHPVirtualBox ホームページ]
 
* [http://www.torrent-invites.com/software/101718-manage-your-virtualbox-vms-via-web-phpvirtualbox.html Manage your VirtualBox VMs via the web with phpVirtualBox]
 
* [http://www.torrent-invites.com/software/101718-manage-your-virtualbox-vms-via-web-phpvirtualbox.html Manage your VirtualBox VMs via the web with phpVirtualBox]
 
* [https://bbs.archlinux.org/viewtopic.php?id=147175 systemd vboxweb.service mod when needing to start as non-root user]
 
* [https://bbs.archlinux.org/viewtopic.php?id=147175 systemd vboxweb.service mod when needing to start as non-root user]

2018年2月7日 (水) 00:17時点における最新版

関連記事

phpVirtualBoxPHP で書かれた VirtualBox のユーザーインターフェイスのオープンソースな AJAX 実装です。近代的なウェブインターフェイスとして、リモートの VirtualBox インスタンスにアクセス・コントロールすることができます。コードは (開発が停止した) vboxweb プロジェクトをベースにしています。phpVirtualBox はヘッドレス環境の VirtualBox を管理できるように作られ、VirtualBox GUI をウェブインターフェイスで実現しています。

インストール

仮想マシンを遠隔操作するには2つのコンポーネントが必要です: 仮想マシンと同一の OS で動作する VirtualBox ウェブサービスと、PHP で書かれた、PHP が使用できるウェブサーバーに依存するウェブインターフェイスです。インターフェイスの通信で使用される SOAP プロトコルは暗号化されないため、ユーザー名とパスワードを平文でネットワーク上に送信したくない場合は同一のマシンにインストールすることが推奨されます。

VirtualBox ウェブサービス

ウェブコンソールを使うには、virtualbox-ext-oracleAUR パッケージをインストールする必要があります。

VirtualBox ウェブインターフェイス (phpvirtualbox)

phpvirtualbox パッケージをインストールしてください。また、php に対応しているウェブサーバーを選択します (Apache が適当でしょう)。

設定

以下の設定をするには先にウェブサーバーと PHP をセットアップしておく必要があります (ルートディレクトリは /srv/http とします)。

ウェブサービス

仮想マシンの設定で、リモートデスクトップのアクセスを有効にして他の仮想マシンとは異なるポートを指定してください。

マシンにリモートからアクセスするには、毎回以下のようなコマンドを実行する必要があります:

vboxwebsrv -b --logfile path to log file --pidfile /run/vbox/vboxwebsrv.pid --host 127.0.0.1

上記のコマンドはサービスを実行するのに使いたいユーザーで実行してください (/etc/host.conflocalhost の関連付けを有効にしている場合は --host オプションは外してもかまいません)。

ノート: ユーザーは vboxusers グループに属していなければなりません。

virtualbox は community に入っており、systemd で扱うための vboxweb.service が含まれています。

root 以外のユーザーから vboxweb を起動したい場合:

1. vboxusers グループにユーザーを作成・追加してください (例: vbox)。

2. /usr/lib/systemd/system/vboxweb.service/etc/systemd/system/vboxweb_mod.service にコピーしてカスタム vboxweb_mod.service ファイルを作成。

3. 以下のように /etc/systemd/system/vboxweb_mod.service を編集:

 [Unit]
 Description=VirtualBox Web Service
 After=network.target

 [Service]
 Type=forking
 PIDFile=/run/vboxweb/vboxweb.pid
 ExecStart=/usr/bin/vboxwebsrv --pidfile /run/vboxweb/vboxweb.pid  --background
 User=vbox
 Group=vboxusers

 [Install]
 WantedBy=multi-user.target

4. vboxweb_mod.service の一時ファイルルールを作成:

# echo "d /run/vboxweb 0755 vbox vboxusers" > /etc/tmpfiles.d/vboxweb_mod.conf

5. vboxweb_mod.service の最初の起動のために /run/vboxweb ディレクトリを手動で作成:

# mkdir /run/vboxweb
# chown vbox:vboxusers /run/vboxweb
# chmod 755 /run/vboxweb

もしくはシステムを再起動すると自動的に作成されます。

6. vboxweb_mod.service起動有効化

ウェブインターフェイス

/etc/php/php.ini を編集して、以下の行をアンコメントしてください:

extension=soap.so

サンプル設定ファイルの /usr/share/webapps/phpvirtualbox/config.php-example を適切に編集してください (ファイルにはコメントが豊富に付けられています)。ファイルを /etc/webapps/phpvirtualbox/config.php にコピーして、/usr/share/webapps/phpvirtualbox/config.php のシンボリックリンクを作成してください。

それから /etc/php/php.ini を編集して open_basedir の末尾に以下のように設定パスの /etc/webapps/ を追加してください:

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/

ウェブサーバーとして Apache を使用する場合、/etc/webapps/phpvirtualbox/apache.example.conf/etc/httpd/conf/extra/phpvirtualbox.conf にコピーして使うこともできます。Apache 2.4 を使用する場合、ACL の構文が変更になった ため、ファイルの以下の部分を:

Order allow,deny
Allow from all

以下のように変更する必要があります:

Require all granted

それから、/etc/httpd/conf/httpd.conf に以下の行を追加してください:

Include conf/extra/phpvirtualbox.conf

/etc/webapps/phpvirtualbox/.htaccess を編集して以下の行を削除してください:

deny from all

設定後、ウェブサーバーを再起動してください (Apache であれば httpd.service再起動)。

実行

設定に問題がなければ http://YourVboxWebInterfaceHost/phpvirtualbox を開いてログイン画面が表示されることを確認してください。初期ユーザー名・パスワードは "admin" です。ログインしたらウェブインターフェイスから変更することができます (File -> change password)。config.php でウェブインターフェイスの $noAuth=true を設定した場合、すぐに phpvirtualbox のウェブインターフェイスが表示されます。

デバッグ

ログインができない場合、あるいは virtualbox を 3.2.x から 4.0.x にアップグレードした場合、以下のコマンドを実行して virtualbox の設定ファイルの websrvauthlibrary を更新して VRDPAuth.so から VBOXAuth.so に変更する必要があります:

VBoxManage setproperty vrdeauthlibrary default
VBoxManage setproperty websrvauthlibrary default 

上記のコマンドを実行してもインターフェイスにログインできないときは、以下のコマンドで webauth を無効化してみてください:

VBoxManage setproperty websrvauthlibrary null

そしてウェブサーバーの /etc/webapps/phpvirtualbox/config.php で $noAuth=true を設定してユーザー名とパスワードを空文字にしてください。ログイン画面をスキップしてすぐにウェブインターフェイスが表示されます。

参照