symfonyを複数のバージョンで使い分ける 2009 年 11 月 17 日

symfonyのバージョンが頻繁に変わるので、バージョンを切り替えやすいようにしておく。これで動作確認もしやすくなる。
環境:centOS5.3

通常symfonyはpearコマンドで入れるのが楽。
自分の場合は、以下にインストールされている。

Shell
/usr/local/php5/pear/symfony

そこで、ディレクトリ構成的に簡単に切り替えができるように

Shell
/usr/local/php5/symfony1.0
/usr/local/php5/symfony1.1
/usr/local/php5/symfony1.2
/usr/local/php5/symfony1.3

このようにすることを想定。

まずはディレクトリまで移動

Shell
cd /usr/local/php5/

symfonyをダウンロード

Shell
wget http://www.symfony-project.org/get/symfony-1.2.9.tgz

※svnチェックアウトしてもよい
svn checkout http://svn.symfony-project.com/branches/1.2 symfony1.2

symfonyを解凍

Shell
tar zxpf symfony-1.2.9.tgz

ターボールを削除

Shell
rm -f symfony-1.2.9.tgz

リネーム

Shell
mv symfony-1.2.9 symfony1.2

指定したsymfonyバージョンのPHP環境確認

Shell
php /usr/local/php5/symfony1.2/data/bin/check_configuration.php

※問題があれば、修正する箇所のヒントが表示される

Shell
[[WARNING]] PHP version is not 5.2.9: FAILED
            *** PHP 5.2.9 broke array_unique() and sfToolkit::arrayDeepMerge(). Use 5.2.10 instead [Ticket #6211] ***

※ブラウザでアクセスして確かめることも重要
例)アプリケーションディレクトリが/home/{your account}/sampleの場合
cp /usr/local/php5/symfony1.2/data/bin/check_configuration.php /home/{your account}/sample/web/check_configuration.php

バージョン確認

Shell
php /usr/local/php5/symfony1.2/data/bin/symfony -V

symfony version 1.2.9 (/usr/local/php5/symfony1.2/lib)

エイリアスを追加

Shell
vi /home/{your account}/.bash_profile

alias symfony='/usr/local/php5/symfony1.2/data/bin/symfony'

これでルートからのディレクトリパスでコマンドを操作しなくても、symfonyだけでOKになった。

symfonyを読み込む設定変更箇所は一カ所だけ。
sfCoreAutoloadの読み込み場所。

Shell
vi /home/{your account}/sample/config/ProjectConfiguration.class.php

以下に変更
require_once '/usr/local/php5/symfony1.2/lib/autoload/sfCoreAutoload.class.php';

バーチャルホストなどで、エイリアス設定している場合は以下も変更

Shell
vi /etc/httpd/conf.d/httpd-vhosts.conf

Alias /sf /usr/local/php5/symfony1.2/data/web/sf
<Directory "/usr/local/php5/symfony1.2/data/web/sf">

関連する記事:

Leave a Reply