デプロイ

アプリケーションが完成したら、またはその前に、それをデプロイしたいと思うことでしょう。 CakePHPアプリケーションをデプロイする際には、いくつかやっておかなければならないことがあります。

セキュリティの確認

もしあなたが荒野にアプリケーションを解き放とうとするなら、何か抜け穴がないかを確認しておくことをお勧めします。 CSRF攻撃や、フォームの改ざんなどを防ぐために /core-libraries/components/security-component をチェックしてください。 /models/data-validation を行うこと、そして データのサニタイズ は、XSS攻撃からデータベースを保護する素晴らしいアイデアです。 webroot ディレクトリだけが公開され、あなたの秘密(アプリケーションのsaltとセキュリティキーなど)はプライベートでユニークなことを確認してください!

ドキュメントルートの指定

アプリケーションでドキュメントルートを正しく指定することはコードをセキュアに、またアプリケーションを安全に保つために重要なステップの内の一つです。 CakePHPのアプリケーションは、アプリケーションの app/webroot にドキュメントルートを指定する必要があります。 これによってアプリケーション、設定のファイルがURLを通してアクセスすることができなくなります。 ドキュメントルートの指定の仕方はWEBサーバーごとに異なります。 WEBサーバー特有の情報についていは URLリライティング ドキュメントを見てください。

どの場合においても app/webroot/ をバーチャルホスト(バーチャルドメイン)のドキュメントルートに設定すべきでしょう。これは webroot ディレクトリの外側のファイルを実行される可能性を取り除きます。

core.phpの更新

core.phpの更新、とりわけ debug 値は非常に重要です。 debug = 0 にすることで、広くインターネットに晒されることがあってはならない多くの開発用の機能を無効にできます。 debugの無効化は以下の種々のものごとに変更を与えます:

  • pr()debug() で生成されるデバッグメッセージが無効化されます。
  • CakePHPコアのキャッシュが、開発時の10秒ごとの代わりに999日ごとに破棄されるようになります。
  • Errorビューが吐く情報が少なくなり、代わりに共通のエラーメッセージが与えられます。
  • エラーが表示されなくなります。
  • 例外のスタックトレースが無効になります。

上記に加えて、プラグインやアプリケーションの拡張が debug を用いてその挙動を変えます。

アプリケーションのパフォーマンスの向上

プラグインの画像や JavaScript、CSS ファイルなどの静的なアセットを扱う場合、ディスパッチャを通すことはかなりの非効率です。

本番環境においては、次のようにシンボリックリンクを張ることを強くお勧めします。

ln -s app/Plugin/YourPlugin/webroot/css/yourplugin.css app/webroot/css/yourplugin.css