2011年3月31日 22:01

VirtualBoxにLAMPサーバーを構築する

最近、OSをWindows7に移行しました。

ついでに、今までXamppでつくっていたテスト環境を、VirtulBox上のLAMPサーバーに置き換え始めています。

今回は、VirtualBoxを利用した、LAMPサーバー構築についてメモを残します。

 

目的

これまでの開発、検証環境

Windows Xp + Xampp Windows版

を、

Windows7 + Linux(仮想環境)

に変更する。

 

やること

Windows7に、VirtualBoxをインストール。

VirtualBox上に、LinuxによるLAMPサーバーを構築。

Windows7をホストOS

LinuxをゲストOS

として環境構築。

ホストOSのWindowsから、Linux上のウェブサーバーにアクセス可能にする。

接続方法はNATを利用。

SSH、およびhttpをポートフォワードでアクセスできるようにする

 

環境

ホストOS Windows7 64bit Professional版

ゲストOS Ubuntuデスクトップ版(10.04 LTS 32bit)

 

VirtualBoxとは

VirtualBoxとは、Windows・MacOS・Linuxなどで動く、仮想化ソフトです。

VirtualBox

Windews上でLinux、Mac上でWindows、Linux上Windowsを動かすなど、基本のOS上に異なるOSをインストールして、全く独立したOSとして動かすことができます。

 

MacOSでいうと、Parallels

Windowsでいうと、バーチャルPC

と同等の機能を持つ、と言えるでしょう。

 

Windowsで使える仮想化ソフトは

  • バーチャルPC
  • VMware
  • VirtualBox

などがありますが、動作がキビキビしている印象があり、今回はVirtualBoxを選ぶことにしました。

 

NAT接続とは

NAT接続は、ひとつのグローバルIPアドレスを、プライベートネットワーク内で共用する技術のことです。

あきみちさんが作成している「Geekなページ」に、分かりやすい説明がありますので、こちらをご参照ください

NAT_geek

 

VirtualBoxなどの仮想化ソフトを、Windows上で動かす場合

「Windowsがルーターの役割をして、ゲストOSがネット接続できるようにする」

と考えると、想像が湧くかと思います。

イメージ図としてはこんな感じになるでしょうか。

port_1 

この場合、ルーターの役割を果たすWindowsからは、直接ゲストOS(今回の場合、Ubuntuサーバー)を見ることができません。

このため、VirtualBox上の設定を利用して、Windowsから、ゲストOS(Ubuntu)上の

  • ウェブページを参照できるようにする
  • SSHで接続できるようにする

などを実現します。

(ポートフォワードを使います)

イメージとしては、こんな感じになります。

 port_2

今回は

「ウェブブラウズする際は、ポート番号8880を付与」

することで、仮想サーバーへアクセスできるように設定します。

 

VirtualBoxのインストール

まずは、VirtualBoxのウェブサイトから、ソフトをダウンロードします。

VirtualBox

左メニューの「Downloads」に、ファイルへのリンクが記述されています。

Windowsの場合は「Windows Hosts」を選びます。32ビット版の場合、「x86」。64ビット版の場合、「amd64」を選択します。

Downloads_VirtualBox

ダウンロード後、インストールを行えばOKです。

インストール後、仮想マシンの作成を行います。新規ボタンを押すと、ウィザードに沿って設定画面が表示されるので、あまり迷うことはありません。

ubuntu_wizard

初期設定時に、メモリの割当などの設定を行います。仮想環境は、ホストOSが持っているメモリを占有してしまうため、ホストOSの動作に支障がないレベルで割り当てます。

僕のWindows7は、8GBのメモリを持っているため、このうち2GBを割り当てました。

VB_memory_first

このメモリ割り当ては、初回設定後も自由に変更できるので、あまり神経質になる必要はありません。

次に、新規ハードディスクの割り当てを行います。選択肢は2つ表示されます。

  • 可変サイズのストレージ・・・ファイルが増えるごとに、仮想マシンのHDDサイズが増えていく
  • 固定サイズのストレージ・・・最初に、10GBなら10GB、20GBなら20GB、ホストOSのハードディスクを占有してしまう

どちらが良いとは一概に言えませんが、ハードディスクの容量に余裕があるのであれば、最初に固定サイズで設定してしまっても問題ないでしょう。

可変サイズの場合、初期状態はファイルサイズが小さく済むため、イメージファイルの移動などが楽になります。

僕は可変サイズにしました。

VM_hdd

 

仮想マシンの設定ができたら、グラフィックメモリの割当も行います。

Linuxをサーバータイプで使う場合、グラフィックメモリはあまり必要としませんが、デスクトップ版の場合グラフィックメモリの容量で動作が大きく異なるため、最大値(VirtulalBoxの4.04では128MB)の割り当てを行います。

VM_graphic

 

Ubuntu Desktop editionのインストール

Ubuntu Desktop editionをインストールするには、まず最初にイメージファイル(isoファイル)をダウンロードしておく必要があります。

Ubuntu日本語公式サイト、もしくはワールドワイドのUbuntu公式サイトから、isoのイメージファイルをダウンロードします。

ubuntu_downloads

ISOファイルを保存したら、VirtualBox上のCD-ROMの割り当てを、取得したISOファイルに指定します。

新規のバーチャルマシン設定後、初回立ち上げ時に、CD-ROMの割当先を聞いてくるので、保存したISOを指定します。

ubuntu_cd-rom

これで、VirtualBoxを立ち上げると、自動的にインストール画面が起動するはずです。

vb_ubuntu_install

 

インストールが終了したら、CD-ROMに割り当てていたISOファイルを開放します。

 

Apacheのインストール

Ubuntuデスクトップ版では、デフォルトの状態でApacheが入っていないため、Apacheをインストールします。バージョンはApache2です。

ターミナル画面から

sudo apt-get install apache2 

と打ち込み、Apacheをインストール。

インストールが終了したら、Apache2を起動します。

sudo /etc/init.d/apache2 start

UbuntuのApache2は、初期状態で /var/www をウェブサイト用のドキュメントルートに設定しています。 /var/www 以下を見ると、index.htmlが配置されています。

 

nick@nick-ubuntu:~$ ls /var/www -l
合計 4
-rw-r--r-- 1 root root 177 2011-03-27 18:04 index.html
nick@nick-ubuntu:~$ 

index.htmlの所在が確認できたら、ブラウザを立ち上げ、http://localhostを見ます。

Apache2の初期画面が表示されたらApache2が正常に動作しています。

ubuntu_localhost

 

ポートフォワードの設定をして、ホストOSのWindows7からブラウズする

Apacheのインストールは出来ましたが、このままでは、ホストOS側のWindowsから、仮想サーバーを参照できない為、ポートフォワードの設定をします。

仮想サーバーを閉じ、VirtualBoxのネットワーク設定で、httpおよびSSHのポートフォワード機能を設定します。

httpプロトコルは「8880」、SSHプロトコルは「2222」を使用することにします。

Vb_portforward

 

ポートフォワードの設定ができたら、Windows7側のブラウザから「http://localhost:8880/」と打ち込んでブラウズ。Apache2の初期画面が見えたら、設定は成功しています。

 

double_browser

 

Apache2が無事起動したところで、このままでもOKなのですが、通常 /var/www は、ディレクトリの所有権がrootユーザーに設定されているため、普段使いには使いづらいところです。

このため、/var/www 以下のディレクトリ所有権を、通常ログインするユーザーに変更しておくと、何かと作業しやすいでしょう。

 

nick@nick-ubuntu:~$ sudo chown nick /var/www/
nick@nick-ubuntu:~$ ls /var/ -l
合計 48
drwxr-xr-x  2 root root  4096 2011-03-22 12:25 backups
drwxr-xr-x 19 root root  4096 2011-03-27 18:03 cache
drwxrwxrwt  2 root root  4096 2010-04-14 05:52 crash
drwxr-xr-x  2 root root  4096 2010-04-29 21:26 games
drwxr-xr-x 62 root root  4096 2011-03-24 09:55 lib
drwxrwsr-x  2 root staff 4096 2010-04-23 19:11 local
drwxrwxrwt  3 root root    60 2011-04-01 10:57 lock
drwxr-xr-x 15 root root  4096 2011-04-01 10:57 log
drwxrwsr-x  2 root mail  4096 2010-04-29 21:17 mail
drwxr-xr-x  2 root root  4096 2010-04-29 21:17 opt
drwxr-xr-x 16 root root   680 2011-04-01 10:58 run
drwxr-xr-x  7 root root  4096 2010-04-29 21:22 spool
drwxrwxrwt  2 root root  4096 2010-04-23 19:11 tmp
drwxr-xr-x  2 nick root  4096 2011-03-27 18:04 www
nick@nick-ubuntu:~$ 

/var/www の所有権が、nickに変わっているのがおわかりいただけますでしょうか。

 

MySQLとphpMyAdminをインストールする

次に、MySQLとphpMyAdminをインストールします。

こちらも、apt-getによるインストールでできます。簡単ですね。

 

sudo apt-get install mysql-server

と打ち込むことによって、MySQLをインストールできます。

 

mysql-server

同様に、phpmyadminもインストールします。

sudo apt-get install phpmyadmin

試しに、http://localhost:8880/phpmyadmin

と打ち込むと、phpMyAdminが利用出来るようになっています。

phpmyadmin

アドレスバーには「http://localhost:8880/phpmyadmin/

と書かれているのがおわかりになるでしょうか。

 

PHPのiniファイルを適宜変更する

/var/wwwにphpinfo用のファイルを作成、保存して、設定を見ます。

コマンド

vi /var/www/phpinfo.php

お決まりのphpinfo

<?
phpinfo();
?>

phpinfoの画面

phpinfo

初期インストール時は、/etc/php5/apache2/php.ini

に設定ファイルが存在するため、ここをviなどで変更すれば、phpの設定が任意に変更されます。

 

SSHサーバーをインストールしてリモートログイン可能にする

Ubuntuのデスクトップ版は、デフォルトの状態では、SSHサーバーが含まれないようです。

ホストOS側からSSH接続できるように、SSHサーバーを有効にします。

sudo apt-get install ssh

SSHサーバーをインストールしたら、起動します。

sudo /etc/init.d/ssh restart

これで、Windows側からSSHログインできます。

同時に、SFTPによる接続も可能となり、FileZillaなどのFTPクライアントからもSSH経由でアクセスできます。

(ポートフォワードで、SSHに割り当てたポート番号を利用する必要があります。)

sftp_1

FileZillaで接続設定をしているところ。ポート番号が通常のSSH(22)と違い、VirtualBoxで設定したポートフォワード用の番号に設定している

sftp_2

接続成功

 

これで、通常のレンタルサーバーとほぼ同環境で作業ができるようになります。

 

以上、VirtulaBox上にLAMPサーバーを設定する手順でした。