「PhpVirtualBox」の版間の差分
Kusakata.bot (トーク | 投稿記録) 細 (文字列「http://httpd.apache.org/」を「https://httpd.apache.org/」に置換) |
|||
(3人の利用者による、間の4版が非表示) | |||
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 をウェブインターフェイスで実現しています。 |
||
7行目: | 12行目: | ||
=== VirtualBox ウェブサービス === |
=== VirtualBox ウェブサービス === |
||
− | ウェブコンソールを使うには、 |
+ | ウェブコンソールを使うには、{{AUR|virtualbox-ext-oracle}} パッケージをインストールする必要があります。 |
=== VirtualBox ウェブインターフェイス (phpvirtualbox) === |
=== VirtualBox ウェブインターフェイス (phpvirtualbox) === |
||
− | + | {{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| |
+ | {{Note|ユーザーは '''vboxusers''' グループに属していなければなりません。}} |
{{Pkg|virtualbox}} は community に入っており、[[systemd]] で扱うための {{Ic|vboxweb.service}} が含まれています。 |
{{Pkg|virtualbox}} は community に入っており、[[systemd]] で扱うための {{Ic|vboxweb.service}} が含まれています。 |
||
− | + | root 以外のユーザーから {{Ic|vboxweb}} を起動したい場合: |
|
− | 1. {{Ic|vboxusers}} グループにユーザーを作成・追加してください (例: {{Ic|vbox}}) |
+ | 1. {{Ic|vboxusers}} グループにユーザーを作成・追加してください (例: {{Ic|vbox}})。 |
− | 2. |
+ | 2. {{Ic|/usr/lib/systemd/system/vboxweb.service}} を {{Ic|/etc/systemd/system/vboxweb_mod.service}} にコピーしてカスタム {{Ic|vboxweb_mod.service}} ファイルを作成。 |
− | 3. |
+ | 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. |
+ | 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. |
+ | 6. {{ic|vboxweb_mod.service}} を[[起動]]・[[有効化]]。 |
− | # systemctl start vboxweb_mod |
||
− | and enable it if nessesary |
||
− | # systemctl enable vboxweb_mod |
||
=== ウェブインターフェイス === |
=== ウェブインターフェイス === |
||
− | + | {{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 |
||
− | + | サンプル設定ファイルの {{Ic|/usr/share/webapps/phpvirtualbox/config.php-example}} を適切に編集してください (ファイルにはコメントが豊富に付けられています)。ファイルを {{Ic|/etc/webapps/phpvirtualbox/config.php}} にコピーして、{{Ic|/usr/share/webapps/phpvirtualbox/config.php}} のシンボリックリンクを作成してください。 |
|
− | + | それから {{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/ |
||
− | + | ウェブサーバーとして 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 |
||
− | + | それから、{{Ic|/etc/httpd/conf/httpd.conf}} に以下の行を追加してください: |
|
Include conf/extra/phpvirtualbox.conf |
Include conf/extra/phpvirtualbox.conf |
||
− | + | {{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}} |
||
== 実行 == |
== 実行 == |
||
− | + | 設定に問題がなければ http://'''YourVboxWebInterfaceHost'''/phpvirtualbox を開いてログイン画面が表示されることを確認してください。初期ユーザー名・パスワードは '''"admin"''' です。ログインしたらウェブインターフェイスから変更することができます (File -> change password)。{{Ic|config.php}} でウェブインターフェイスの {{Ic|1=$noAuth=true}} を設定した場合、すぐに phpvirtualbox のウェブインターフェイスが表示されます。 |
|
== デバッグ == |
== デバッグ == |
||
− | + | ログインができない場合、あるいは 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. |
||
== 参照 == |
== 参照 == |
||
− | * [ |
+ | * [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時点における最新版
関連記事
phpVirtualBox は PHP で書かれた 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.conf
で localhost の関連付けを有効にしている場合は --host
オプションは外してもかまいません)。
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 を設定してユーザー名とパスワードを空文字にしてください。ログイン画面をスキップしてすぐにウェブインターフェイスが表示されます。