2016-11-07 7 views
0

私はSymfonyをWebサーバにデプロイしています。一度デプロイしたらキャッシュをクリアします。私は0000のumaskを使用しています。これは潜在的な権限の問題を回避するためです(私はdeploumentユーザーの下でクリアを行い、apacheユーザーの下でサイトを実行しています)。symfonyがログディレクトリを作成できません

私はdirsとして/var/symfony/cache/projectname/branchname/environment/var/symfony/log/projectname/branchname/environmentを使用して、キャッシュとログを保存しています。これらはAppKernel.phpファイルで設定されています。

私が展開(使用のPHPのbin /コンソールキャッシュ:= --no-デバッグPRODを明確--envを '):

を[のRuntimeException] 作成できません。私が言うメッセージが表示されますログディレクトリ()

私は/ var/symfony/log/dirにファイルを作成しました。それで問題なく動作しました。なぜキャッシュクリアコマンドが失敗したのでしょうか?

/var/symfony/ディレクトリのスティッキービットをdrwxrws--tというように設定しているので、デプロイメントユーザーとしてキャッシュをクリアすると、ユーザーはapacheとして設定され、wwwグループとしてwwwとグループ化されます。

+1

スクリプトを実行するユーザーにこれらのディレクトリを作成する権限がありません。事前に作成するか、親ディレクトリにファイルを作成する権限をユーザーに与えることができます。 ACLを使用して親のユーザ/グループに触れます。サーバーがLinuxの場合は、setfaclコマンドとgetfaclコマンドを参照してください。 – solarc

+0

いいえ、それは問題ではなかった、私は将来のために人々のための答えを投稿しました。 – MicWit

答えて

1

Symfonyはログを保存するディレクトリ構造を作成しないようです(ただし、キャッシュのようですが)。これは、ログディレクトリ(この場合は/var/symfony/log/projectname/branchname/environment/)がキャッシュをクリアする前に存在する必要があることを意味します。

私の場合、これを回避するには、ディレクトリが存在していることを確認するために

注:サイトを参照してアクセス権が正しいと、ログディレクトリが作成されますが、コンソールクリアキャッシュコマンドを使用した場合、パスは作成されません。

関連する問題