symfony のデプロイ方法をためしてみる - jobeet23日目
本番アップはいつも FTP でやっているのですが、capistrano とかある程度ツールを使って自動化したいなと前から思っていました。今ちょうど symfony をやっているので symfony のデプロイ方法を試してみました。
- 本番環境チェック 実行すると、OK とか Warinig とか表示されるので必要に応じて対応します。APC のインストールとか。これは便利。 [code] wget http://trac.symfony-project.org/browser/branches/1.2/data/bin/check_configuration.php?format=raw check_configuration.php php check_configuration.php [/code]
- コアライブラリへのパスを本番に合わせる [code] // config/ProjectConfiguration.class.php require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php'; [/code]
- データベースを本番の設定に [code] $ php symfony configure:database "mysql:host=localhost;dbname=prod_dbname" prod_user prod_pass [/code]
- シンボリックリンクなどがあれば固定化する [code] $ php symfony plugin:publish-assets [/code]
- エラーページを設定する
- プロジェクトの転送 本番環境の情報を設定する [code] # config/properties.ini [production] host=www.symfony-project.com port=22 user=jobeet dir=/var/www/jobeet/ type=rsync pass= [/code] 転送したくないファイルがあれば設定する [code] # config/rsync_exclude.txt .svn /web/uploads/* /cache/* /log/* /web/*_dev.php [/code] プレビュー [code] $ php symfony project:deploy production [/code] 実際に転送する。rsync が実行される [code] $ php symfony project:deploy production --go [/code]
- 終了。あとこの方法だとサーバ上の不要になったファイルを削除してくれないのでそこは考える必要あり。
やっぱり rsync は楽ですね、どのファイルをアップするかとか考えなくてよくて、コマンド一発でデプロイが完了します。注意しないといけないのが設定ファイルを開発用のまま転送すると本番環境が動かなくなることです。この問題も本番反映用のシェルファイルを作れば解決しそうです。
参考 symfony | Web PHP Framework | The Jobeet Tutorial | Day 23: The Deployment 第16章 - アプリケーションの運用ツール 秋元@ずっと雪 » Windows+symfony1.1でproject:deployを動かすためのパッチ