Hatena::ブログ(Diary)

モバイル系ニートエンジニア`chobi_e`の日記 Twitter

2010-11-10 VirtualBoxでお手軽にSymfony2を試せる環境を作ったよ

VirtualBoxでお手軽にSymfony2を試せる環境を作ったよ


Symfony2勉強会で扱う環境の構築が難しい方のために手前味噌ではありますがUbuntu10.10のVirtualBox環境を用意しました。

主にPHPプログラムは書くけど、サーバー周りは触ってないのでよく分からないという方向けのエントリです。


※2010/11現在Symfony2は現段階(PR3)ではまだまだ足りない機能などがあり、開発者からも「実運用するのは crazy」と言われている段階です。Symfony2勉強会に参加した(い)けど環境構築が難しいという方のために作成した学習目的のVMとなりますので何卒ご了承ください。



作業時間:約30分

ほぼダウンロードのみですが。


必要なファイルをダウンロードする


Download VirtualBoxから自分の環境に必要なVirtualBoxを拾ってインストールしてきます。72M程度あるので環境にもよりますが10分くらいかかるので先にSymfony2用のUbuntu10.10イメージをダウンロードしましょう。

(最新版)Symfony2 Ubuntu10.10 image 2010-11-29版Download

md5: 402f52ce6b432fb387fbdb0e72a674bb


Symfony2 Ubuntu10.10 image 2010-11-20版Download

md5: 0c942c526716de62bf268f4d04cc4fd0

ファイルサイズ:441M

更新日:2010-11-19 20:18

※この仮想イメージの動作などについては無保証ですのでご自身の責任で適切に扱ってください。

※ダウンロードが終わったらmd5の値があっているか確認しましょう。


VirtualBoxのインストール

VirtualBoxのインストールを行ないます。基本的にクリックしまくりでOKですが、分かりづらい方はVirtualBoxのインストール - VirtualBoxでWindows 7 インストールを参考にしてみてください。


Symfony2のイメージの解凍

ダウンロードしたSymfony2.zipを好きな場所に解凍しましょう。MyDocumentsや新しくVM専用のディレクトリに置いておくのが良いかと思います。


続いてVirtualBoxでダウンロードした仮想イメージを登録して使えるようにしてみましょう。


VirtualBox での仮想イメージの設定

VirtualBoxを起動すると下記のような画面が表示されます。まずは左上の「新規(N)」ボタンを押してVMの新規追加を行ないます。




f:id:chobi_e:20101110220609j:image




新規仮想マシンの作成のウィザードが表示されるので「次へ(N)」を押します。




f:id:chobi_e:20101110220610j:image




仮想マシンの名前はSymfony2、オペレーティングシステムはLinux,バージョンはUbuntuを選びます。




f:id:chobi_e:20101110220611j:image





メモリの割り当てを行ないます。自分のマシンと相談しつつ適度な値を設定してください。大体512Mあればまぁ、動くかなというところです。




f:id:chobi_e:20101110220612j:image




仮想ハードディスクは起動ディスクにチェックを入れ、既存のハードディスクを使用をセレクトし、右のフォルダアイコンをクリックします。




f:id:chobi_e:20101110220613j:image




仮想メディアマネージャーのダイアログが表示されるので、左上にある「追加(A)」を押します。

先程解凍したSymfony2を指定し、Symfony2.vdiを選択して「選択(S)」を押します。




f:id:chobi_e:20101110220614j:image




これで登録はお終いなので「完了(F)」を押します。続いてネットワークの設定を行ないます。


VirtualBox でのネットワークの設定

そのままの状態だと色々と都合が悪いので今回はNAT+ホストオンリーネットワークで構築しました。詳細についてはそんなに詳しくないのですがVirtualBox を利用する際のネットワーク設定の話に詳しく記載されているので興味がある方は読んでみてください。




VirtualBoxの起動画面で先ほど作成したSymfony2のVMを選択し、「設定(S)」を押します。


今度はネットワークのタブに移動し、アダプタ1は「ネットワークアダプタを有効化」にチェックを付け、割り当ては「NAT」をセレクトします。


f:id:chobi_e:20101110220617j:image


アダプタ2は「ネットワークアダプタを有効化」にチェックを付け、割り当ては「ホストオンリーアダプタ」をセレクトしてOKを押します。


f:id:chobi_e:20101110220618j:image


これでVMの準備はすべて完了なのでSymfony2のVMを起動してみましょう。起動ボタンをぽちっとな!




起動が終わってログイン画面が表示されたらホストマシンのブラウザからhttp://192.168.56.10/を開いて見ましょう。今回はサーバーの設定をしているのでVMが起動していればすぐにアクセスできます。


f:id:chobi_e:20101110220616j:image


あら、Symfony2のSandbox環境が動いていますね(*´д`*)


設定お疲れ様でした!これでSymfony2のsandbox環境が用意できたので、続いて編集等が行えるように自分の好みの設定をしましょう。


Symfony2 Sandboxを編集するには?


今回の仮想マシンのイメージではUbuntu Server環境をインストールしてあり、Symfony2勉強会で必要な物が(きっと)全てセットアップされているかと思います。

あとはあなたのマシン上でFTP等の設定を行えばSymfony2のsandboxがさわれますよ!


  • ログインアカウント

ユーザーアカウント: symfony

パスワード: reloaded


Symfony2のキーワードですね。何度もタイプしてリローデッドォッ!と心の中で叫ぶとよいでしょう(*゜ー゜)このアカウントとパスワードで基本的に全てアクセスできるようになっています。


  • FTPの設定

FTPサーバー:192.168.56.10


ユーザーとパスワードはログインアカウントと一緒です。FTPで接続するとsymfony2のサンドボックスが編集できるようになっています。

無駄なファイルは見えないようになっているので、他の作業が必要な場合はsshを利用してください。


  • Windows共有の設定

WORKGROUPを設定しているのであればエクスプローラーに\\192.168.56.10\Symfony2と打ってログインアカウントとパスワードを入力すると共有できるようになっています。FTPと同様に/var/www以下を共有できるようになっていますのでエクスプローラーで開いてsandboxをガンガン編集していきましょう。


  • mysql,mongodbの設定

バインド先を0.0.0.0にしてあるのでホストOSから192.168.56.10に接続すれば接続することができます。mysqlはrootのパスワードがreloadedとなっていますのでお間違いなく。


  • sshの設定

192.168.56.10でsshでログインできるようになっています。rootで作業をしたい場合はsudo -i、www-dataで作業をしたい場合はsudo -u www-data -iを使うと良いでしょう。/var/www/以下はwww-data.www-dataでの権限ということにしたのでsshで/var/www以下をいじる場合はwww-dataにユーザーを変更してください。



今回は普段の開発で使われるであろうFTP,SSH,Sambaあたりでのアクセス手段を用意しておいたので、自分の好みにあった方法で作業を行うと良いと思います。


今回の仮想イメージの内部的なお話

ここから先はSymfony2勉強会や個人的な勉強で使ってもらおうと思って作成した仮想イメージの構成についてのお話です。主にスタッフやサーバー構築が出来て仮想イメージのフィードバックがしたいという型向け。


現状取り急ぎSymfony2勉強会に間に合わせるように作成したので細かい部分でポリシーの設定や、無駄なファイルや必要なパッケージの選定が現状行えておりません。

フィードバックして頂ければ出来る限り反映をしていきたいと思いますのでよろしくお願いいたします。


  • 主なインストール済みパッケージ一覧
# PHP周り
php5
php5-cli
php5-mysql
php-apc
php-pear
pecl_mongo

# サーバー周り
apache2.2-mpm-prefork
mongodb
mysql-server-5.1

# SCM
git
subversion

# その他
openssh-server
proftpd
samba

  • ネットワーク関連

eth0 NAT,eth1 host only.ゲストとホストとの通信はNATを経由して行われるようになっているみたいです。eth1はstaticで192.168.56.10を指定。

host onlyでNAT経由だから複数マシン間でバッティングしなかったよね?(´・ω・`)


  • apache周り

/var/www/symfony2をapache2のデフォルト指定(というかコレしか設定してないので)となっている状態なのでIPアドレスを打てばsymfony2のsandboxにアクセスできるようになっています。

あとは現状Ubuntuデフォルトの設定。


  • php5周り

mongo,mysqliが入っているくらいでデフォルトです。PHPUnit3周りとか入れといたほうが良いかな?


  • monogo , mysql周り

バインド先を0.0.0.0に変更しています。あとはmysqlのchraset変更した程度でデフォルトです


  • ユーザーアカウント周り

基本的にはsymfonyアカウント及びwww-dataアカウントを利用して作業を行ないます。


  • ftp周り

mod_auth_file.cを使用してサーバーのアカウントは別の設定をしています。これは/var/wwwの権限をwww-data.www-dataに保ちつつ、簡易に編集する為に設定しています。トリッキーではありますが、使う側からみればこれがシンプルかな、と。


  • なぜsamba?

ローカルのVMなんだし、ファイル共有で開発したいっていう人(主にワタシ)も中にいると思うので。


あとがき

もしサーバー設定の知識に長けている方がおりましたらtwitterのmentionもしくは日本symfonyユーザーグループでご指摘いただけると嬉しいです!


Changelog的なメモ

2010-11-19

* : Symfony2勉強会で扱うサンドボックスを追加

https://github.com/symfony-japan/Sandboxes/archives/2011-11-18_1からのファイルを追加

symfony-sandbox-modを/var/www/symfony2として置いてあるので勉強会の時はそのままお使いできます。

その他の勉強会用のファイルは/home/symfonyに展開してありますのでそちらからお使いください。

2010-11-11

* : Symfony2の開発ステータスについての注意書きを追記

* : mysqlの接続設定とか書いてなかったので追記