2016-10-29 6 views
0

のSymfony 2.8symfonyのApacheとDeployerの

のApache 2.4

Deployer 3.3

Apacheのユーザー別のファイルシステムの場所にsymfonyのWebディレクトリの下からの資産の場所を変更します画像がアップロードされるディレクトリは、symfonyのウェブディレクトリ/var/www/html/project/current/web/assets/itemsの下にあります。

Deployerを使用して新しいバージョンをデプロイすると、すべてのイメージを新しいassetsディレクトリに移動する必要があります。現時点では大きな仕事ではありませんが(16,000以上の画像があります)、成長するにつれて問題が発生する可能性があります。さらに、パス内のcurrentディレクトリはシンボリックリンクであるため、apache/phpはメモリ内の古い場所を保持しており、そこからデータを提供しているため、これらの画像の要求によって404エラーが発生するようです。

このディレクトリを別の場所(さらに別のハードドライブ)に移動すると、これらの煩わしさが解決されます。最初にいくつかのベストプラクティスを参考にしなくても、これを安全に行う経験があるとは思いません。私は、AliasをApacheの設定に追加する方法を理解することができたと確信していますが、私はセキュリティとSymfonyでの動作が心配です。

私の質問は、Symfonyが悪影響を受けないようにするために、assetsディレクトリをどのようなパーミッションとどのApache設定を適用するファイルシステムに入れるべきですか?

おかげ

答えて

1

あなたはリリース間で共有/共通のファイルやディレクトリを維持するために使用され"shared_dirs"変数のために、資産のディレクトリを追加することができます。この場合、アセットディレクトリは/ var/www/html/project/sharedフォルダに保存され、各リリースにシンボリックリンクされます。

set('shared_dirs', [ 
    'app/sessions', 
    'app/logs', 
    'web/assets/items', 
]); 

Apache symlinkの問題については、展開プロセス内でApacheサーバーの設定を再読み込みしてみてください。

// Reload Apache configuration to avoid symlink issue 
task('apache:reload', function() { 
    run('sudo /etc/init.d/apache2 reload'); 
})->desc('Reload Apache configuration'); 
after('cleanup', 'apache:reload'); 
関連する問題