2012-05-23

初めて symfony でプロジェクトを作ってみた

PHPのフレームワークを使ってみた。あんまり好きじゃないけどお仕事ですからね〜 (>_<)

1.取りあえずrootで作っちゃう

⇒ 本当はアプリケーションアカウントを作って実施すべし。
  1. $ sudo su -  

2.プロジェクト用のディレクトリを作成

  1. # cd /var/www/html/  
  2. mkdir world  
  3. # cd world/  

3.プロジェクト(スケルトン)作成

  1. # symfony init-project world  
  2.   Task "init-project" is not defined.  
ってエラーが出たら、v1.4系なのにv1.0系のコマンドを使った証拠。やりなおし。 バージョン調べたければ事前に「$ symfony -V」してみる。
  1. # symfony generate:project world  
  2. >> file+     /var/www/html/world/symfony  
  3. ....  
  4. >> tokens    /var/www/html/world/config/doctrine/schema.yml  
  5. >> tokens    /var/www/html/world/lib/form/BaseForm.class.php  
  6. #  
いろいろいる物を作ってくれる。 何も無かったところがこんな感じに。
  1. # ls -l  
  2. drwxr-xr-x 2 root root 4096 May 23 11:26 apps  
  3. drwxrwxrwx 2 root root 4096 May 23 11:26 cache  
  4. drwxr-xr-x 3 root root 4096 May 23 11:26 config  
  5. drwxr-xr-x 3 root root 4096 May 23 11:26 data  
  6. drwxr-xr-x 3 root root 4096 May 23 11:26 lib  
  7. drwxrwxrwx 2 root root 4096 May 23 11:26 log  
  8. drwxr-xr-x 2 root root 4096 May 23 11:26 plugins  
  9. -rwxrwxrwx 1 root root  446 May 23 11:26 symfony  
  10. drwxr-xr-x 5 root root 4096 May 23 11:26 test  
  11. drwxr-xr-x 6 root root 4096 May 23 11:26 web  

4.アプリケーション設置

  1. # symfony generate:app traveler  
  2. >> dir+      /var/www/html/world/apps/traveler/modules  
  3. ....  
  4. >> tokens    /var/www/html/public_html/lib/form/BaseForm.class.php  
  5. #  
なんかまた作ってくれる。
  1. # ls -l ../world/apps/traveler/  
  2. drwxr-xr-x 2 root root 4096 May 23 16:41 config  
  3. drwxr-xr-x 2 root root 4096 May 23 16:41 i18n  
  4. drwxr-xr-x 2 root root 4096 May 23 16:41 lib  
  5. drwxr-xr-x 2 root root 4096 May 23 16:41 modules  
  6. drwxr-xr-x 2 root root 4096 May 23 16:41 templates  

5.開発用ファイルを使えるようにする

  1. # vi web/traveler_dev.php  
  2. この部分をコメントアウト  
  3. if (!in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1''::1')))  
  4. {  
  5.   die('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');  
  6. }  
コメントアウトしないと開発環境のアプリケーションにアクセスした時に、 http://hogehoge.jp/hoge1_dev.php/ 「You are not allowed to access this file. Check traveler_dev.php for more information.」 ってでて見えない。

6.Apacheの設定

  1. # vi /etc/httpd/conf.d/vhost.conf  
  2. NameVirtualHost *:80  
  3.   
  4. <virtualhost *:80="">  
  5.   ServerName world.hoge.jp  
  6.   DocumentRoot "/home/web-apps/world/web"  
  7.   DirectoryIndex index.php  
  8.   <directory "="" home="" web"="" web-apps="" world="">  
  9.     AllowOverride All  
  10.     Allow from All  
  11.   </directory>  
  12.   
  13.   Alias /sf /usr/share/pear/data/symfony/web/sf  
  14.   <directory "="" data="" pear="" sf"="" share="" symfony="" usr="" web="">  
  15.     AllowOverride All  
  16.     Allow from All  
  17.   </directory>  
  18. </virtualhost>  
あとは、Apache起動させてOK.おなじみの画面でたし (*´∀`*)

参考:Practical symfony | symfony | Web PHP Framework