phpVirtualBox を入れてみた(その2)
phpVirtualBoxのインストール
※この辺を参考にしました。
無事に VirtualBox がインストールできたところで本題です。
phpVirtualBoxのプロジェクトサイトからソースをダウンロードします。
使用するVirtualBoxのバージョンによって、ダウンロードするものが変わりますので注意。
VirtualBox | phpVirtualBox |
---|---|
3.2.x | 0.5 |
4.0.x | 4.0-x |
4.1.x | 4.1-x |
4.2.x | 4.2-x |
という対応になっているようです。
ダウンロードしたら unzip して README.txt を読みましょう。以下、抜粋。
INSTALLATION: Rename config.php-example to config.php and edit as needed. Default login is username: admin password: admin Please see the wiki located at http://code.google.com/p/phpvirtualbox/ for detailed installation and configuration instructions.
要するに、
- config.php-example を config.php にリネームして編集せよ。
- デフォルトのログインユーザは admin パスワードも admin である。
- 詳しくは http://code.google.com/p/phpvirtualbox/ にある wiki を見よ。
というわけで wiki を見ながらインストールしていきます。
まずVirtualBox側で考慮すべきことが書かれていて、
- Linuxでは vboxweb-service を稼働させる必要がありますよ、
- その設定ファイルは /etc/default/virtualbox であり、
- 最低でも VBOXWEB_USER の設定は必須である。
- 設定ファイルが存在しなければ作れ。
とのこと。(ここでは要点だけ転記してます。他のプラットフォームの場合は、上記 wiki に記載があるので読めばわかると思います)
vboxweb-service を専用のユーザを作ってサービスを動かすため、新たに"vbox"というユーザを作って、設定ファイルに書きます。
$ sudo adduser vbox
で /etc/default/virtualbox の末尾に以下を追記。(ファイルがなかったので新規作成しました。)
VBOXWEB_USER=vbox
でサービスを起動。
$ sudo /etc/init.d/vboxweb-service start $ ps aux | grep vboxweb vbox 28397 0.0 0.0 476592 6164 ? Sl 15:20 0:00 /usr/lib/virtualbox/vboxwebsrv --background lobin 28423 0.0 0.0 10356 924 pts/1 S+ 15:21 0:00 grep --color=auto vboxweb $
ちゃんとvboxユーザで動いてますね。
止めるときは /etc/init.d/vboxweb-service stop です。
さらに OS起動時にサービスを立ち上げるため、chkconfig しておきました。
$ chkconfig vboxweb-service on
次にPHPとWebサーバが必要で、http://code.google.com/p/phpvirtualbox/wiki/WebServerAndPHPInstall に各プラットフォームごとのやり方が書いてありました。
Linuxでの例として apache2 と libapache2-mod-php5 とあったのでこの構成を採用。
$ sudo apt-get install apache2 libapache2-mod-php5
この辺は PHP が動く環境がすでにあればそれで良いようです。
Webサーバが動く環境ができたら、そこに phpVirtualBox のコードをデプロイします。ただコピーするだけです。アクセスしやすいよう、phpbvox という名前にしました。
$ sudo cp -r ~/phpvirtualbox-4.2-4 /var/www/phpvbox
設定ファイルを作ります。サンプルファイルをリネームして、エディタで開きます。
$ sudo mv config.php-example config.php $ sudo vi !$
変更が必要なのは $usename と $password くらいだと思います。$language を 'ja' に設定すると日本語になるようです。
/* Username / Password for system user that runs VirtualBox */ var $username = 'vbox'; var $password = '********'; /* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */ var $location = 'http://127.0.0.1:18083/'; /* Default language. See languages folder for more language options. * Can also be changed in File -> Preferences -> Language in * phpVirtualBox. */ var $language = 'ja'; /* Set the standard VRDE Port Number / Range, e.g. 1010-1020 or 1027 */ var $vrdeports = '9000-9100';
ではいよいよブラウザから http://<サーバのIPアドレス>/phpvbox/ にアクセスします。
admin / admin でログインできます。
なかなか簡単でイイ感じですねぇ。右クリックも使えるし、ほとんどデスクトップアプリケーションと変わらない使用感です。
コンソール接続できない
仮想マシンの設定で「リモートディスプレイ」を有効化した場合、Remminaなど別のRDPクライアントからだとちゃんと接続できるのですが、
phpVirtualBox の画面からコンソールに接続しようとすると、null:9000 とかってなっててコンソールが表示されませんでした。
null の部分を サーバのIPアドレス(例えば 192.168.1.201)に打ち変えてやると接続できるようです。
これは config.php の以下の部分を変更すればOKでした。
// Host / ip to use for console connections var $consoleHost = '192.168.1.201';
他にも $enableGuestAdditionsVersionDisplay と $enableAdvancedConfig *1 を有効にしました。色々カスタマイズ出来そうなので、config.php内のコメント見ながら適当にいじくってみればいいと思います。
なお、config.php を変更した場合は phpVirtualBox をログインしなおさないと反映されないようです。