symfony2をローカルで動作させる環境をサクッと作る

この記事は、Symfony アドベントカレンダー 2010 に参加しています。


開発環境が不手際によって消えてしまったため用意してきた記事がパーになってしまいブルーです。
そこで開発環境の再構築をまとめた結果を記事にすることにしました。
アドベントに参加されている他のみなさんの記事を読んで、自分もsymfony2を試してみたい!
そう思った方の参考になれば幸いです。
なおUbuntu大好きな僕なので今回の構築作業はUbuntu10.10にて行っています。

必要なソフトウェアのインストール

apache,php,mysql,mongoDB,gitをインストールします。

sudo apt-get install -y apache2
sudo apt-get install -y mysql
sudo apt-get install -y mysql-server
sudo apt-get install -y mongodb
sudo apt-get install -y mongodb-server
sudo apt-get install -y git
sudo apt-get install -y php5
sudo apt-get install -y php5-mysql
sudo apt-get install -y php5-dev
sudo apt-get install -y php-pear
sudo apt-get install -y php-apc
sudo pecl install pdo

必要なものはインストールできました。

symfony2のダウンロードと設置

次にsymfony2の最新ソースをgithubからチェックアウトします。
今回は/home/jiska/Public以下にソースを設置することにします。

cd /home/jiska/Public
git clone https://github.com/symfony/symfony-sandbox.git

最後にapp/cache,app/logsディレクトリを全ユーザーで書き込める権限をつけます。
本番運用時ではphp実行ユーザーに適切な権限を与えましょう。

chmod 777 app/cache
chmod 777 app/logs

これでsymfony2の設置は完了です。

php.iniの設定確認

symfony2は設置しましたがすぐに使うことはできません。
php.iniの設定を変更する必要があります。

php /home/jiska/Public/symfony-sandbox/web/check.php

以下のエラーと警告が表示されました。

[[ ERROR ]] Checking that the "date.timezone" setting is set: FAILED
            *** Set the "date.timezone" setting in php.ini (like Europe/Paris) ***
You must fix this problem before resuming the check.

[[WARNING]] Checking that php.ini has short_open_tag set to off: FAILED
            *** Set short_open_tag to off in php.ini ***

/etc/php5/cli/php.ini, /etc/php5/apache2/php.ini それぞれに以下の値を設定します。

date.timezone = Asia/Tokyo
short_open_tag = Off

最後にapacheのドキュメントルートを設定してブラウザからアクセスしましょう。
/etc/apache2/sites-available/defaultを編集します。
オリジナルのdefaultは消してしまうともったいないので/etc/apache2/sites-available/default.distとリネームして保存しておきます。

cd /etc/apache2/sites-available
sudo cp default default.dist
sudo vi default
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /home/jiska/Public/symfony-sandbox/web
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/jiska/Public/symfony-sandbox/web>
        Options Indexes FollowSymLinkS
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    ErrorLog ${APACHE_LOG_DIR}/error.log
</VirtualHost>

編集がおわったらapacheのconfファイル文法チェックを行ないましょう。

apache2ctl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server localhost.localdomain (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost localhost.localdomain (/etc/apache2/sites-enabled/000-default:1)
Syntax OK

Syntax OKと表示されているので大丈夫ですね。たぶん。
apacheを再起動して、ブラウザからアクセスしてみます。

http://localhost/check.php

すべてグリーンで表示されていますか?もし表示されていなければphp.iniを確認してください。

これでsymfony2の環境作成は終わりです!

symfony2の使い方

symfony2の使い方ですが、いきなりソースを読み始めてもなにがなんだかわからない状態になってしまうかもしれません。
僕はなりました。symfony2はsymfony1.4から大きく構造が変わっているのも戸惑う原因の一つでした…。

公式サイトのドキュメントを見るのがいちばん手っ取り早いです。
Symfony2 Documentation

それでは良きsymfony2 lifeを。

Symfony Advent 2010

Symfony Advent 2010では12月1日から12月24日までを使って日替わりでsymfonyでイイなと思った小さなtipsから内部構造まで迫った解説などをブログ記事にして公開していくイベントです。

日本Symfonyユーザー会
Symfony アドベントカレンダー2010

※Syfony Advent 2010はsymfony好きな有志で集まったチームです。