symfonyのセットアップメモ。仕事では1.2系だけど1.4系で遊ぼうと思う。
自分はPHPはそんなに詳しくない、WordPressを少し改造したり、Smartyをちょっと使ったことがあるぐらい。PHPでWebフレームワークを使うのはsymfonyが初めて。
Practical symfony を一通りやると良い感じだと思った。
いつも通り、ubuntu9.10 server(x64)で作業する。
PHP5が動きそうな環境を作る(他にもパッケージいるかも?)。
$ sudo aptitude install apache2 php5 php5-cli php5-mysql mysql-server
symfonyのセットアップ
ホームディレクトリ(今回は/home/tokibito/)にvendorディレクトリを作っておく。
$ cd ~ $ mkdir vendor
symfonyをvendorディレクトリにダウンロードして、展開して名前を変える。この記事では1.4.4
$ cd vendor $ wget http://www.symfony-project.org/get/symfony-1.4.4.tgz $ tar xzf symfony-1.4.4.tgz $ mv symfony-1.4.4 symfony
とりあえずsymfonyのバージョンを確認する。
$ php ~/vendor/symfony/data/bin/symfony -V symfony version 1.4.4 (/home/tokibito/vendor/symfony/lib)
プロジェクト用にディレクトリmyprojectを作成する。
$ cd ~ $ mkdir myproject
プロジェクトを作成する。
$ cd myproject $ php ~/vendor/symfony/data/bin/symfony generate:project myproject
~/vendorのシンボリックリンクをlib/に作成しておく。(vendor以下はそのままディレクトリにして置いてもよいけど、いくつかのプロジェクトで共有するためにシンボリックリンクにしておいた。)
$ cd ~/myproject/lib $ ln -s ~/vendor vendor
これでmyprojectディレクトリ以下にsymfonyコマンドが存在してるはずなので、コマンドヘルプを見てみる。
$ cd ~/myproject $ php symfony
いっぱいコマンドが表示されたらok。
アプリケーションを作成
とりあえずhelloアプリケーションを作成する。
$ php symfony generate:app hello
これで空のアプリケーションが作成されてるはず。
webディレクトリ以下にindex.phpやhello_dev.phpが作成されているか確認する。
$ cd ~/myproject/web $ ls css hello_dev.php images index.php js robots.txt uploads
Apacheを設定する
$ cd /etc/apache2
$ sudo vim ports.conf
(編集)
$ sudo cat ports.conf
$ sudo cat ports.conf
NameVirtualHost *:80
Listen 80
# added
Listen 8000
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>
$ cd /etc/apache2/sites-available
$ sudo vim php-symfony
(編集)
$ cat php-symfony
<VirtualHost *:8000>
DocumentRoot "/home/tokibito/myproject/web"
<Directory /home/tokibito/myproject/web>
AllowOverride All
Allow from all
</Directory>
Alias /sf /home/tokibito/vendor/symfony/data/web/sf
<Directory "/home/tokibito/vendor/symfony/data/web/sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
$ sudo a2ensite php-symfony
$ sudo /etc/init.d/apache2 restart
