2010-11-03 Ubuntu10.10でSymfony2の開発環境をローカルに作る
Ubuntu10.10でSymfony2の開発環境をローカルに作る
メインマシンがMacbookAir11inchになり、開発環境も心機一転してウキウキな毎日ですがみなさんどうお過ごしでしょうか?
今日はUbuntu10.10が動いているローカルにSymfony2の開発環境構築をしてみたいと思います。
※開発環境とはいえ外部からアクセスされる可能性が少なからずともある場合は必ずファイアーウォールないしiptablesでの適切な権限設定を行ってくださいネ。
必要なパッケージをインストールしよう
そいでは必要なパッケージをインストールしていきましょう。今回はローカルの開発環境でセキュアであると仮定して特にmysqlのrootユーザーのパスワードは設定しません。
sudo aptitude install php5 sudo aptitude install php-pear sudo aptitude install php-apc sudo aptitude install php5-dev sudo aptitude install php5-xdebug sudo aptitude install php5-mysql sudo aptitude install mysql-server sudo vi /etc/mysql/my.cnf #[mysqld]と[mysql]ディレクティブにdefault-character-setの設定を追記します [mysqld] default-character-set = utf8 [mysql] default-character-set = utf8 sudo serivce mysql restart
とりあえずこれで一通り必要なものが揃いましたね。Web公開ディレクトリはUbunutuデフォルトで使われている/var/wwwを使うことにしましょう
ここでファイルの所有権の問題がちらっと出てくるのですが、今までの私の開発方法だとWindows上からSFTPを使ってweb公開用ユーザーとしてファイルをアップしていました。
しかし、今回はローカルの開発環境ということもありそのまま/var/wwwにあるファイルを編集してしまうとファイルの所有権がchobie.chobieとなってしまいます。いちいちユーザーを変更したり、所有権を変更するのは面倒くさいので公開ディレクトリへの読み書きはnfs経由にしてしまいましょう。
ちょっとアホくっさいですが、下記のような設定を行い公開ディレクトリへの読み書きはnfs経由にする事でファイルの読み書きがwww-dataユーザーで行われるようになります。(不要であれば次のステップは飛ばしてもらってかまいません)
NFSをインストールしてみよう
sudo aptitude install nfs-kernel-server sudo vi /etc/exports #ファイル末尾に追記します(anonuid/anongidはwww-dataのuid,gidを指定してください) /var/www localhost(rw,fsid=0,no_subtree_check,root_squash,all_squash,anonuid=33,anongid=33) sudo exportfs -ra
これで/var/wwwをnfsで共有できるようになり、さらにnfsのオプションでall_squashとanonuid/anongidを33に設定しているのでnfs経由の書き込みは全てwww-data.www-dataで行われることになりました(プログラムを実行したら当然今のユーザー権限で行われるので注意してくださいね!)
そいでは早速自分のホームディレクトリに開発用ディレクトリ(developmentとします)を掘って/var/wwwをnfsでマウントしてしまいましょう。
cd ~/ mkdir development sudo mount -t nfs localhost:/var/www develoment
これでマウントが完了しました。試しになにかファイルを作ってきちんと動作しているかを確認しましょう。
cd development/ touch hello && ls -la hello #-rw-r--r-- 1 www-data www-data 0 2010-11-03 21:38 hello ls -la /var/www/hello #-rw-r--r-- 1 www-data www-data 0 2010-11-03 21:38 hello
nfs経由できちんとwww-dataで書き込みができましたね。私はゴリゴリファイルつくって書くスタイルが好きなのでこれで開発も気分よく進められそうです。
設定も済んだしSymfony2のサンドボックスを動かそう
そいではsymfony2.chobie.airというホスト名でSymfony2のサンドボックスを動かすまでをやってみましょうか。
まずはhostsへのエントリの追加と、apache2のVirtualHostの設定を行ないます。
sudo vi /etc/hosts #hostsにsymfony2.chobie.airのエントリを追加する 127.0.0.1 symfony2.chobie.air #symfony2のサンドボックスをダウンロード cd ~/development/ git clone http://github.com/symfony/symfony-sandbox.git symfony2.chobie.air mkdir symfony2.chobie.air/logs #symfony2.chobie.airというVirtualHostを設定する sudo vi /etc/apache2.sites-available/symfony2.chobie.air <VirtualHost *:80> DocumentRoot /var/www/symfony2.chobie.air/web ServerName symfony2.chobie.air ErrorLog /var/www/symfony2.chobie.air/logs/errors CustomLog /var/www/symfony2.chobie.air/logs/access combined <Directory /var/www/symfony2.chobie.air> Options -Indexes AllowOverride All </Directory> <IfModule mod_php5.c> php_value date.timezone Asia/Tokyo php_flag short_open_tag off </IfModule> </VirtualHost> sudo a2enmod rewrite sudo a2ensite symfony2.chobie.air sudo service apache2 restart
今回は諸々をインスコしたあとなので間違いがないようにrestartさせときます。そいでは準備も整ったことですしhttp://symfony2.chobie.air/を叩いてみましょう。(symfony2.chobie.airなんてドメインは存在しませんが、/etc/hostsに追記したので名前解決をしてアクセスすることができます。)
上記のように表示されていればOKですね。興味のある方は/check.phpもたたいてall greanになっているのをみてニンマリするのもいいかと思います
あとがき
ちょっと特殊な環境になりましたが、Symfony2の開発環境をローカルに作るということでどうだったでしょうか?nfsで無理やり権限を変更させてたりする部分はかなり個人的な趣向が強くでてしまっていますが、いちWeb開発者の環境づくりということで参考になるもしれません。
初めての方もサーバーの設定なんぞコピペで済むのでローカルなら億劫がらずトライしてみましょう。もちろん、実案件では専門の人に任せましょうね。
次回は未定ですがSymfony2を使ったシンプルなアプリケーションでも書いてみましょうか。
- 4 http://pipes.yahoo.com/pipes/pipe.info?_id=f8e50936209277c7946c9bc16b988bf7
- 3 http://b.hatena.ne.jp/entrylist
- 3 http://pipes.yahoo.com/pipes/pipe.info?_id=5c957097ed152660234169b605fb3fa7
- 3 http://reader.livedoor.com/reader/
- 2 http://b.hatena.ne.jp/entrylist/it
- 2 http://d.hatena.ne.jp/keyword/抽象化
- 2 http://pipes.yahoo.com/pipes/pipe.info?_id=6ffca3d513899ee44c0d1201c766e92c
- 2 http://www.google.co.jp/
- 1 http://b.hatena.ne.jp/
- 1 http://b.hatena.ne.jp/entrylist/it?of=20

