5th symfony2 study meeting shigeoka' lt 20111204
TRANSCRIPT
PHP Fog + Symfony2 でステージング環境を作ってみた
2011/12/04第5回 Symfony2勉強会重岡 正(@bakorer)
おまえ誰よ?
• 重岡 正• Tadashi Shigeoka• @bakorer• Programmer 1年生
僕とSymfony• 新入社員研修でSymfony1.4
• それからは、、、まともに使ってない• 次の案件でSymfony2を使えるかも
人生初のLTです。
お手柔らかにお願いします。
ところで、皆さんステージング環境ってどうしてます?
• VPS 2つ契約してる
• 開発環境で確認したら、即、本番アップだぜ!
• ステージング環境なにそれ?おいしいの?
Heroku を使うとステージング環境がカンタンに作れて素敵
※引用:Herokuで認証付きのステージング環境を構築する - exdesign http://blog.exdesign.jp/heroku
Heroku で最近 PHP も使えるようになったし、
Herokuで作るか!
Herokuでは、できませんでした。
どのPaaS使おう?
Symfony2なんだし、PHP Fogを使ってみよう
PHP Fog + Symfony2 でステージング環境を作る手順• 1. PHP Fog で新規アプリ作成• 2. Symfony2 アプリケーションを PHP FogにPushする
• 3. PHP Fog App を Symfony2 用に設定する
• 4. Symfony2 に Basic認証を設定する
PHP Fog で新規アプリ作成
アプリケーションの選択
Symfonyがないじゃないか!仕方ないから「Custom App」から作ります
MySQLのパスワードとドメインの設定
できた!
SSH公開鍵の設定
Symfony2 アプリケーションをPHP FogにPushする
• $ git clone [email protected]:symfony2.phpfogapp.com
• $ cd symfony2.phpfogapp.com
• $ git rm index.php
• $ git remote add phpfog [email protected]:symfony2.phpfogapp.com
• Symfony2 のファイル一式を設置
• $ vim web/app_dev.php
• $ vim web/config.php
• $ git add .
• $ git commit -m 'symfony2 init'
• $ git push phpfog master
Symfony2 の動作確認
タイムゾーンの設定• date.timezone の設定をどこかに書く
• Rails の app/controllers/application_controller.rb 的なところに
• Symfony2 だと、どこに書けばいいですかね?
• → (追記) app/AppKernel.php に書けば良いと教えて頂きました!
• PHP アクセラレータはインストールできないのでスルー
• short_open_tag は変更できないのでスルー
•
ini_set('date.timezone', 'Asia/Tokyo');
PHP Fog App を Symfony2 用に設定する• $ vim web/clean_prod_cache.php
• $ git add .
• $ git commit -m 'create clean_prod_cache.php'
• $ git push phpfog master
<?phpsystem('php ../app/console env=prod cache:clear');system('php ../app/console env=prod cache:warm');?>
ドキュメントルートの設定
http://symfony2.phpfogapp.com/web/app_dev.php/→ http://symfony2.phpfogapp.com/app_dev.php/
と web を省略できる
cache, logs ディレクトリに書込み権限を与える
Symfony2 にBasic認証を設定する
• $ vim app/config/security.yml
security: encoders: Symfony\Component\Security\Core\User\User: plaintext providers: in_memory: users: admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } firewalls: secured_area: pattern: ^/ http_basic: realm: "Secured Area" access_control: - { path: ^/, roles: ROLE_ADMIN }
まとめ
• Symfony2 でアプリ開発するときに PHP Fogでステージング環境が作れる?
• Assetic を使うには有料プラン
• 参考• http://docs.phpfog.com/index.php/features/article/supported_frameworks
• http://www.developly.com/using-symfony2-on-phpfog-now-right-now
Thank you!