MacにVirtualBox3をインストール

ようやくメインマシンをWindowsからMacに移行し始めました。
で、開発環境を作るためにVMWareのMac版であるVMWareFusionを使おうと思ったんですが、有料なんですね。。。Amazon価格で1万円ほど。うーん、どうしようと思っていたら、そういやVirtualBoxにMac版あるかもと思いサイトを見てみるとばっちりあるじゃないですか。しかも個人利用なら無料!早速インストールして、環境を作りました。手順はすごく簡単で、VMWareと一緒のように作れます。

VirtualBoxのインストール

まずはここからVirtualBoxをダウンロード(2010−07−20時点ではVirtualBox-3.2.6-63112-OSX.dmgでした)
Your Page Title


次にインストールですが、ウィザード形式なので簡単に行えます。
(保存したキャプチャー画像を間違えて消してしまったので、詳細書けず><)


インストールが完了したらVirtualBoxのメインウィンドウが起動するので、「新規」ボタンを押して、仮想マシンを作ります。
(仮想マシンの作り方もキャプチャー画像を削除してしまったので、詳細書けず><)

ゲストOSのインストール

仮想マシンを作成するとVirtualBoxのメインウィンドウ左ペインに仮想マシンの一覧が表示されます。その仮想マシンを選択して、「設定」ボタンを押して設定を行います。


ストレージ→IDEコントローラ→CD/DVDでバイス→フォルダアイコンをクリックしてISOイメージを選択


ISOイメージの設定が終わったら、仮想マシンを起動してゲストOSをインストールします。僕はUbuntu10.04をインストールしました。

解像度

インストールしたUbuntu10.04を起動すると画面の解像度が800x600になっています。なので解像度を設定できるようにGuest Additionsをインストールします。(VMWareToolsみたいなもの)

  1. Ubuntuを起動した状態でVirtualBoxのメニューから「デバイス」→「Guest Additions」を選択する
  2. VirtualBoxの下部に表示されているCDのツールチップからVBoxGuestAdditions.isoを有効にする
  3. Ubuntuで以下のコマンドを実行してインストールを行う
sudo mount /dev/sr0 /media/
sudo /media/VBoxLinuxAdditions-x86.run

仮想マシンを再起動したら、VirtualBoxのウィンドウを最大化します。そうすると自動的にUbuntuの画面も大きくなるはずです。

共有フォルダ

共有フォルダがあると便利なので、これも設定しておきます。

  1. Macのホーム直下にshareというフォルダを作成する(名前は何でもよい)
  2. Ubuntuを起動して、VirtualBoxのメニューから「デバイス」→「共有フォルダ」を選択し、さきほどのshareを指定する
  3. Ubuntuで以下のコマンドを実行
sudo mkdir -p /mnt/vbox/share

#uidには$USERもしくは自分が普段使っているユーザ名を指定します
sudo mount -t vboxsf -o uid=hoge share /mnt/vbox/share

これで/mnt/vbox/share/を使ってホストとゲストでファイルのやり取りを行えます。




Fuisonが有料だと知ったときはがっかりしたけど、VirtualBoxが簡単に使えてよかった。これでMacでも開発環境を簡単に作れます。

PHPは大文字と小文字を区別しないこともある


「2章PHP言語の基本 2.1字句構造」で少し気になったところのメモです。

大文字/小文字

PHPでは「ユーザが定義したクラスや関数の名前、echoやwhile、classといった組み込みのキーワードの名前」について大文字/小文字を区別しません。

<?php
for($i = 0; $i < 1; $i++){ echo "hello\n"; }
For($i = 0; $i < 1; $i++){ echo "hello\n"; }
FOr($i = 0; $i < 1; $i++){ echo "hello\n"; }
?>
hello
hello
hello
<?php
echo "hello\n";
Echo "hello\n";
ECho "hello\n";
?>
hello
hello
hello
<?php
function myfunc() { echo "hello\n"; }
myfunc();
myFunc();
MyFunc();
?>
hello
hello
hello
<?php
class Hoge
{
  function h(){ echo "hello\n"; }
}

$a = new Hoge;
$a->h();

$a = new HOge;
$a->h();

$a = new HOGe;
$a->h();
?>
hello
hello
hello




実際にコードを書く分にはあまり気にしなくて良さそうですが、知らないとハマる可能性があるので、頭の片隅に残しておこうと思います。