VMWareにFreeBSDをインストールする

起動してますよー

FreeBSD上でCの開発をする予定なので、その予行演習のためにVMWareFreeBSDを導入し、環境設定を行うことにしました。
VMWareは正式にFreeBSD64bit版をサポートしているので、FreeBSD.orgのミラーサイトから取得したCD-ROMイメージ(ISOフォーマット)をVMWareに明示的にCDとして認識させ、仮想マシンを起動することで、インストールメニューが表示され、問題なく導入ができます。今回は純粋にサーバーとしての活用のため、特にXなどは無視して、メニューから開発者向けのデフォルト設定で導入しました。全体のディスクの割り当てはとりあえず15Gに設定し(少ないか?)パーティションの設定も全てAutoを選択して、恥ずかしいくらいに安直にインストールしました。(まあ、仮想マシンなんで)
導入時にちょっとだけ注意したことは、DHCPの設定を必ず行うこととsshでログインして操作をするので、ユーザーを追加すること、sshのデーモンの設定をすることです。ただ、まあこれは一旦導入した後でも当然変更はできます。
あとから再度インストールメニューを表示するには

# /usr/sbin/sysinstall

でOKです。
ユーザーはsuコマンドを実行できないと困るので、とりあえずwheelグループに入れるようにします。インストール時に設定すればスムーズですが、後からpwコマンドを発行して修正することもできます。
インストールが終了したら、一旦仮想マシンをshutdown -p now し、CD-ROMをインストール・ディスクイメージにしているのを解除して「自動認識」で、起動時にマウントしない設定にしてから、再び立ち上げます。
ここで、おきまりの一応VMWare Toolsを導入します。メニュー「VM」で「VMWare Toolsのインストール」を指定し、

$ su  <- su権限がないとマウントできない
# mount /cdrom   <-CDをマウント
# cd /tmp
# tar zxf /cdrom/vmware-freebsd-tools.tar.gz
# umount /cdrom
# cd vmware-tools-distrib
# /vmware-install.pl  <- VMWare Toolsのインストーラを実行

とコマンドを打鍵して、インストールを行います。
インストーラがいくつか質問をしてきますが、デフォルトで問題はなさそうです。
またfreebsd7に導入しようとするとlib.so.5がないとかエラーがでて導入できません
そのときは、以下のように互換性ライブラリを導入すれば問題無く導入できます

# cd /usr/ports/misc/compat5x
# make install clean
# ln -s /usr/local/lib/compat/libc.so.5 /lib  <-- リンクを張る 

apacheを導入する

今回の開発ではapache, mysql, phpMyAdminが必至なため、これらの導入を行います。
導入はこれまた安易ですが、FreeBSDのパッケージ機能であるportsを使ってインストールします。まずはapacheです。

# cd /usr/ports/www/apache22/
# make install

しばらくapache及びそれが依存している各ソースのネットワーク上からの取得、コンパイルが行われ、15分から20分後にインストールが完了しました。けれど、これだけではまだapacheは動作しません。いくつかの設定が必要になります。

  • /usr/local/etc/apache22/httpd.conf の編集
    • ServerNameの設定 ex. ServerName hogehoge.co.jp
  • /etc/rc.conf の設定
    • apache22_enable="YES" のエントリーを追加します。このファイル自体がないときは新規に作成します。
    • rc.confにhostnameの設定がある場合はこれをServerName設定と合わせるようにします
  • /etc/hosts の登録
    • 設定したServerNameのIP addressを登録します。DHCPによりどのアドレスが割り当てられているかはifconfigコマンドで調べます。環境によっては一定のアドレスが毎回割り当てられるかは保証の限りでは無いですが、私の環境では毎回同じアドレスがふられている様です。これを指定しないと、サーバー名が解決できない云々のエラーが発生してしまいます。

これらの設定が完了したら、

#  /usr/local/etc/rc.d/apache22 start

apacheを起動します。
今回の設定はかなり「強引」ではありますが、開発目的でとりあえず仮想マシンで動作する環境があれば良いので、これもありかな、ということで。
設定が正しくない場合は起動に失敗し、その内容が /var/log/httpd-error.log に出力されます。apacheが起動されているかどうかは

# ps -ax | grep httpd
  874  ??  Ss     0:00.32 /usr/local/sbin/httpd -DNOHTTPACCEPT
  875  ??  I      0:00.02 /usr/local/sbin/httpd -DNOHTTPACCEPT
  876  ??  I      0:00.01 /usr/local/sbin/httpd -DNOHTTPACCEPT
     以下省略

で確認することができます。
試しにブラウザでIP addressを指定してアクセスしてみると.....この日記の冒頭にあるような画面が表示されました。何とまあ、素っ気ないこと。昔はもう少し芸のあるものだったような気がするのですが...。
何はともあれ、以降mysqlphpMyAdminの導入へと続きます。