symfony1.2でDoctrine1.1使ってJobeetチュートリアル23日目

本番環境へ移行する回。

Previously on Jobeet

昨日は、キャッシュ設定の仕方について学びました。そして、本番環境で運用する準備が整いました。
22日目までは、開発環境(大抵はローカルマシーンではないでしょうか)で開発していました。本番環境で開発しているのなら、ベリーバッドなアイディアです。
本日は、本番環境に移行するに当たって何が必要かを学びます。

Preparing the Production Server

本番環境に移行する前に、本番環境では適切な設定がなされていることが望まれます。

Server Configuration

check_configuration.phpsymfonyのウェブサイトからダウンロードしてきて、コマンドラインとブラウザの両方からチェックしましょう。

PHP Accelerator

パフォーマンス向上のためhttp://en.wikipedia.org/wiki/PHP_accelerator:PHP accelerator的なものをインストールしましょう。

# pecl install APC

apxsねーよ。
さーせん

# yum search apxs

httpd-develだよ。
あざーす

# yum install httpd-devel
# pecl install APC

success!

# vim /etc/php.ini

apc読み込ませる

[APC]
extension = apc.so

apache再起動

# /etc/init.d/httpd restart

The symfony Libraries

Embedding symfony

symfonyに必要なファイルは、プロジェクトディレクトリに集約されているので移動は簡単です。パスも基本的に、相対パスで書かれているので変更する必要がありません。
ProjectConfiguration.class.phpへのパスが唯一絶対パスで書かれていますが、初日に相対パスへ書き直しましたね。

Upgrading symfony

subversionを用いてsymfonyを最新版に保つ方法。
webディレクトリ以下のindex.phpなどで、ProjectConfiguration.class.phpをrequireしてますが、ProjectConfiguration.class.phpまでのパスを切り替えるだけで、異なるバージョンのsymfonyを使い分けることが可能。

Tweaking the Configuration

Database Configuration

本番環境では、データベースのデータベース名・ユーザ名・パスワードが違うと思います。
そんなときは、configure:databaseタスクまたは、databases.ymlを編集することで変更可能です。

Assets

plugin固有のcss, js, imageファイルなどは、シンボリックリンクで参照するので、plugin:publish-assetsタスクで張り直す。

Customizing Error Pages

オリジナルの404ページ作成方法。

Customizing the Directory Structure

ディレクトリ名の変更方法。
ProjectConfiguration.class.phpで、setHogeDir()メソッドで指定。

The Factories

factories.ymlでデフォルトの設定を変更しよう。

Cookie Name

セッション名の変更方法。

Session Storage

セッションをデータベースで管理する方法。

Session Timeout

セッションのタイムアウトを指定する方法。

Logging

本番環境では、デフォだとログを取っていない。
ログを取るように変更する方法。

Deploying

project:deployタスクを用いた転送方法。
rsync, sshを使うので、転送元・転送先共にrsync, sshがインストールされている必要がある。


sshfsでマウントして、cpコマンドで転送しようとしたら、.svnファイルの「許可がありません」地獄
svn exportして、.svnファイルを含まない状態にしてコピーした方が無難です。