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などで動く、仮想化ソフトです。
Windews上でLinux、Mac上でWindows、Linux上Windowsを動かすなど、基本のOS上に異なるOSをインストールして、全く独立したOSとして動かすことができます。
MacOSでいうと、Parallels
Windowsでいうと、バーチャルPC
と同等の機能を持つ、と言えるでしょう。
Windowsで使える仮想化ソフトは
- バーチャルPC
- VMware
- VirtualBox
などがありますが、動作がキビキビしている印象があり、今回はVirtualBoxを選ぶことにしました。
NAT接続とは
NAT接続は、ひとつのグローバルIPアドレスを、プライベートネットワーク内で共用する技術のことです。
あきみちさんが作成している「Geekなページ」に、分かりやすい説明がありますので、こちらをご参照ください。
VirtualBoxなどの仮想化ソフトを、Windows上で動かす場合
「Windowsがルーターの役割をして、ゲストOSがネット接続できるようにする」
と考えると、想像が湧くかと思います。
イメージ図としてはこんな感じになるでしょうか。
この場合、ルーターの役割を果たすWindowsからは、直接ゲストOS(今回の場合、Ubuntuサーバー)を見ることができません。
このため、VirtualBox上の設定を利用して、Windowsから、ゲストOS(Ubuntu)上の
- ウェブページを参照できるようにする
- SSHで接続できるようにする
などを実現します。
(ポートフォワードを使います)
イメージとしては、こんな感じになります。
今回は
「ウェブブラウズする際は、ポート番号8880を付与」
することで、仮想サーバーへアクセスできるように設定します。
VirtualBoxのインストール
まずは、VirtualBoxのウェブサイトから、ソフトをダウンロードします。
左メニューの「Downloads」に、ファイルへのリンクが記述されています。
Windowsの場合は「Windows Hosts」を選びます。32ビット版の場合、「x86」。64ビット版の場合、「amd64」を選択します。
ダウンロード後、インストールを行えばOKです。
インストール後、仮想マシンの作成を行います。新規ボタンを押すと、ウィザードに沿って設定画面が表示されるので、あまり迷うことはありません。
初期設定時に、メモリの割当などの設定を行います。仮想環境は、ホストOSが持っているメモリを占有してしまうため、ホストOSの動作に支障がないレベルで割り当てます。
僕のWindows7は、8GBのメモリを持っているため、このうち2GBを割り当てました。
このメモリ割り当ては、初回設定後も自由に変更できるので、あまり神経質になる必要はありません。
次に、新規ハードディスクの割り当てを行います。選択肢は2つ表示されます。
- 可変サイズのストレージ・・・ファイルが増えるごとに、仮想マシンのHDDサイズが増えていく
- 固定サイズのストレージ・・・最初に、10GBなら10GB、20GBなら20GB、ホストOSのハードディスクを占有してしまう
どちらが良いとは一概に言えませんが、ハードディスクの容量に余裕があるのであれば、最初に固定サイズで設定してしまっても問題ないでしょう。
可変サイズの場合、初期状態はファイルサイズが小さく済むため、イメージファイルの移動などが楽になります。
僕は可変サイズにしました。
仮想マシンの設定ができたら、グラフィックメモリの割当も行います。
Linuxをサーバータイプで使う場合、グラフィックメモリはあまり必要としませんが、デスクトップ版の場合グラフィックメモリの容量で動作が大きく異なるため、最大値(VirtulalBoxの4.04では128MB)の割り当てを行います。
Ubuntu Desktop editionのインストール
Ubuntu Desktop editionをインストールするには、まず最初にイメージファイル(isoファイル)をダウンロードしておく必要があります。
Ubuntu日本語公式サイト、もしくはワールドワイドのUbuntu公式サイトから、isoのイメージファイルをダウンロードします。
ISOファイルを保存したら、VirtualBox上のCD-ROMの割り当てを、取得したISOファイルに指定します。
新規のバーチャルマシン設定後、初回立ち上げ時に、CD-ROMの割当先を聞いてくるので、保存したISOを指定します。
これで、VirtualBoxを立ち上げると、自動的にインストール画面が起動するはずです。
インストールが終了したら、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が正常に動作しています。
ポートフォワードの設定をして、ホストOSのWindows7からブラウズする
Apacheのインストールは出来ましたが、このままでは、ホストOS側のWindowsから、仮想サーバーを参照できない為、ポートフォワードの設定をします。
仮想サーバーを閉じ、VirtualBoxのネットワーク設定で、httpおよびSSHのポートフォワード機能を設定します。
httpプロトコルは「8880」、SSHプロトコルは「2222」を使用することにします。
ポートフォワードの設定ができたら、Windows7側のブラウザから「http://localhost:8880/」と打ち込んでブラウズ。Apache2の初期画面が見えたら、設定は成功しています。
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をインストールできます。
同様に、phpmyadminもインストールします。
sudo apt-get install phpmyadmin
試しに、http://localhost:8880/phpmyadmin
と打ち込むと、phpMyAdminが利用出来るようになっています。
アドレスバーには「http://localhost:8880/phpmyadmin/」
と書かれているのがおわかりになるでしょうか。
PHPのiniファイルを適宜変更する
/var/wwwにphpinfo用のファイルを作成、保存して、設定を見ます。
コマンド
vi /var/www/phpinfo.php
お決まりの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に割り当てたポート番号を利用する必要があります。)
FileZillaで接続設定をしているところ。ポート番号が通常のSSH(22)と違い、VirtualBoxで設定したポートフォワード用の番号に設定している
接続成功
これで、通常のレンタルサーバーとほぼ同環境で作業ができるようになります。
以上、VirtulaBox上にLAMPサーバーを設定する手順でした。



コメントする