0

質問:

sf2 キャッシュはディレクトリに依存しませんか? つまり、特定のディレクトリで実行cache:clearしてから、キャッシュを壊さずにプロジェクトディレクトリを別のマシン/ディレクトリに移動できますか?

シナリオ:

  • Symfony2 に基づくアプリケーションがあります。
  • 本番マシンには 500MB があります。
  • 現在、ソフトをアップロードしてからキャッシュをクリアすることで展開しています。
  • 生産機では、app/console cache:clear生成されるまでに約 5 分かかります。
  • 2GB の開発マシンでは、ほんの数秒続きます。

生産までの時間を最小限に抑える必要があります。キャッシュを待つ 5 分間は長すぎます。

cache:clearをローカル マシンで実行し、生成済みのキャッシュを使用して製品を本番環境にアップロードすることを考えました。プロジェクトのローカル パス (/home/ubuntu/devel/...) は、運用パス (/var/www) とは異なり、同じになるように調整することはできません。

4

1 に答える 1

2

Symfony2 キャッシュはさまざまな場所で絶対パスを使用するため、パスが異なる場合、あるマシンから別のマシンにキャッシュをコピーすることはできません。

あなたが本当に探しているのは、capifony による展開です。展開すると、ライブ マシンに新しいフォルダーが作成され、そのフォルダーに新しいバージョンのプロジェクトが準備され (アセットの公開、キャッシュのクリアなどが含まれます)、古いフォルダーが新しいフォルダーに単純に切り替わります。

一定数の古いバージョンがライブ サーバーに保持されているため、必要に応じてロールバックを実行することもできます。

また、capifony と Jenkins CI を使用して、気の利いたワンクリック デプロイメントを構築できます ;)

于 2012-07-13T22:07:43.753 に答える