1   アプリケーションと環境のセットアップ

Copyright (c) 2011 KUBO Atsuhiro <>, All rights reserved.

This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.

1.1   概要

このドキュメントでは オープンソースカンファレンス2011 Nagoya PHPフレームワークSymfony2 開発チュートリアル に参加される方に向けて、当日実際に手を動かしていただく場合に必要な事前準備について解説します。

Note

アプリケーションで使用するホスト名について

本チュートリアルのアプリケーションのホスト名は symfony2-osc とします。お使いの環境に合わせて適宜読み替えてください。

1.2   動作環境

Symfony2 の実行に必要な要件 | Symfony2日本語ドキュメント を参考に動作環境をチェックします。本チュートリアルではDoctrineを使用するために PDO拡張モジュール とデータベース固有のPDOドライバも必要となります。

1.3   Symfonyのインストール

Symfony のインストールと設定 | Symfony2日本語ドキュメント を参考にSymfonyをインストールします。以下は筆者の環境におけるインストールの例です。

最初にアーカイブを展開します。

$ tar zxf /path/to/Symfony_Standard_Vendors_2.0.0.tgz

次に展開されたルートディレクトリの名称を変更します。

$ mv Symfony symfony2-osc

次にコマンドラインから動作環境をチェックします。筆者の環境では設定パラメータ date.timezone の値が設定されていなかったためエラーが発生しました。

$ cd /path/to/symfony2-osc
$ php app/check.php
********************************
*                              *
*  Symfony requirements check  *
*                              *
********************************

php.ini used by PHP: /path/to/php.ini

** WARNING **
*  The PHP CLI can use a different php.ini file
*  than the one used with your web server.
*  If this is the case, please ALSO launch this
*  utility from your web server.
** WARNING **

** Mandatory requirements **

  OK        Checking that PHP version is at least 5.3.2 (5.3.5-1ubuntu7.2 installed)


[[ 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.

設定ファイルの該当箇所を date.timezone = Asia/Tokyo のように変更した上で再度チェックコマンドを実行したところ以下のような出力になりました。

********************************
*                              *
*  Symfony requirements check  *
*                              *
********************************

php.ini used by PHP: /path/to/php.ini

** WARNING **
*  The PHP CLI can use a different php.ini file
*  than the one used with your web server.
*  If this is the case, please ALSO launch this
*  utility from your web server.
** WARNING **

** Mandatory requirements **

  OK        Checking that PHP version is at least 5.3.2 (5.3.5-1ubuntu7.2 installed)
  OK        Checking that the "date.timezone" setting is set
  OK        Checking that app/cache/ directory is writable
  OK        Checking that the app/logs/ directory is writable
  OK        Checking that the json_encode() is available
  OK        Checking that the SQLite3 or PDO_SQLite extension is available
  OK        Checking that the session_start() is available
  OK        Checking that the ctype_alpha() is available

** Optional checks **

  OK        Checking that the PHP-XML module is installed
  OK        Checking that the libxml version is at least 2.6.21
  OK        Checking that the token_get_all() function is available
  OK        Checking that the mb_strlen() function is available
  OK        Checking that the iconv() function is available
  OK        Checking that the utf8_decode() is available
  OK        Checking that the posix_isatty() is available
  OK        Checking that the intl extension is available
  OK        Checking that the intl ICU version is at least 4+
  OK        Checking that a PHP accelerator is installed
  OK        Checking that the APC version is at least 3.0.17
  OK        Checking that php.ini has short_open_tag set to off
  OK        Checking that php.ini has magic_quotes_gpc set to off
  OK        Checking that php.ini has register_globals set to off
  OK        Checking that php.ini has session.auto_start set to off

** Optional checks (Doctrine) **

  OK        Checking that PDO is installed
  OK        Checking that PDO has some drivers installed: mysql, sqlite, sqlite2

次にブラウザから http://symfony2-osc/config.php にアクセスし、Webからも動作環境をチェックします。筆者の場合 app/cacheapp/logs ディレクトリにWebサーバが書き込めないという問題が指摘されました。

../_images/config1.png

ターミナルから実際に確認してみると、確かにWebサーバのユーザ・グループ(ユーザ: www-data, グループ: www-data)が書き込めないパーミッションになっていました。

$ cd app
$ ls -la
...
drwxr-xr-x 2 iteman iteman  4096 2011-07-28 17:52 cache/
...
drwxr-xr-x 2 iteman iteman  4096 2011-08-12 16:01 logs/
...

Symfony のインストールと設定 | Symfony2日本語ドキュメント に書かれているようにいくつかのパーミッションの設定方法があります。ここでは ACLを使わない方法 を採用します。

まず、グループ権限で書き込めるようにパーミッションを変更します。

$ chmod 2775 cache logs
$ chgrp www-data cache logs
$ ls -la
...
drwxrwsr-x 2 iteman www-data  4096 2011-07-28 17:52 cache/
...
drwxrwsr-x 2 iteman www-data  4096 2011-08-12 16:01 logs/
...

次に以下の行を app/console, web/app.php, web/app_dev.php の先頭に追加します。

umask(0002); // This will let the permissions be 0775

再度ブラウザから http://symfony2-osc/config.php にアクセスします。

../_images/config2.png

これでSymfonyのインストールは完了です。続いてこのページからSymfonyアプリケーションの設定を行うことができますが、その前にデータベースの設定を済ませておくことにしましょう。

1.4   データベースの作成

本チュートリアルのアプリケーションはDoctrine経由でオブジェクトをデータベースに保存します。ここではデータベースの作成とデータベースユーザの作成を行います。

Note

RDBMSについて

本チュートリアルで使用するRDBMSはMySQLとします。お使いの環境に合わせて適宜読み替えてください。

最初にデータベース symfony2_osc を作成します。

mysql> create database symfony2_osc;
Query OK, 1 row affected (0.00 sec)

次にユーザ symfony を作成します。パスワードは symfony とします。

mysql> grant all on symfony2_osc.* to symfony@'localhost' identified by 'symfony' with grant option;
Query OK, 0 rows affected (0.00 sec)

最後にコマンドラインから接続確認を行います。

$ mysql -u symfony -p symfony2_osc
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 5.1.54-1ubuntu4 (Ubuntu)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

1.5   Symfonyアプリケーションの設定

データベースの作成が完了したら、ブラウザから http://symfony2-osc/config.php にアクセスし、オンラインでSymfonyアプリケーションの設定を行います。ここで設定する内容は最終的に app/config/parameters.ini ファイルに書き込まれるため、あらかじめWebサーバから書き込めるようにしておく必要があります。

準備ができたらリンク Configure your Symfony Application online をクリックします。するとデータベース接続設定のページが表示されます。

../_images/config-database.png

フォームに接続情報を入力し NEXT STEP ボタンをクリックします。するとGlobal Secretの設定ページが表示されます。

../_images/config-secret.png

GENERATE ボタンをクリックし、Secretを生成します。Secretが確定したら NEXT STEP ボタンをクリックします。すると設定内容の書き込みが行われ、その内容がページに表示されます。

../_images/config-final.png

最後にページ下部のリンク Go to the Welcome page をクリックしましょう。無事 Welcome ページが表示されれば、Symfonyアプリケーションの設定は完了です。

../_images/welcome.png

このページのコンテンツ

ソース



クイックリンク

コメントリスト


ご質問や翻訳不備等お気軽にコメントください。


現在、翻訳が古くなっている箇所が多くあります。1箇所、1行などほんの少量でもかまいませんので、ドキュメント翻訳にご協力いただける方を募集しています。日本 Symfony ユーザー会メーリングリストまでご連絡ください。