2

AWS Linux AMI(無料利用枠のマイクロインスタンス)でSymfony2をセットアップし、PHP-FPMとnginxを正常にセットアップしました。

私のSymfonyアプリは動作します..コマンドラインを使用してキャッシュをクリアするまで。これを行うと、/app/logsandapp/cache/フォルダーが所有されroot、アプリはそのフォルダーに書き込めなくなります。

キャッシュをクリアするたびに手動でchmod 777/chown nginx:nginxこれらのファイルを作成できますが、もっと良い方法があるはずです。

キャッシュをクリアする前にbash関数を使用してみましたが、機能しsu nginx;ません。

キャッシュクリア前のキャッシュフォルダの前:

drwxrwxrwx 11 nginx nginx 4096 Nov  4 13:23 dev
drwxrwxrwx 10 nginx nginx 4096 Nov  4 20:39 prod

以降:

drwxrwxrwx 11 nginx nginx 4096 Nov  4 13:23 dev
drwxr-xr-x 10 root  root  4096 Nov  4 20:39 prod

rootこれはアプリで修正できるものですか、それとも権限が編集されないように権限を設定する方法はありますか?

編集:私が試したことにも言及する必要があります:

sudo chmod +a "nginx allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs

しかし、サーバーはを認識しません+a

また、使用してみました:

 setfacl -R -m u:nginx:rwx app/cache app/logs

これはエラーにはなりませんが、問題は修正されません。

4

2 に答える 2

0

sudo -u nginx php app / console cache:clear

于 2012-11-04T21:18:33.330 に答える
0

編集: まだこの答えを受け入れることはできませんが、これは私のために働きました:それで私はここのガイドに従って私のマウントでACLをうまく有効にしました:http://blog.dsyph3r.com/2011/09/symfony2-using-setfacl-for- cache-and.html

のような初心者の場合、ドライブのラベルが(やや奇妙なことに)"Label=/"にあることに注意してくださいfstab

それが終わったら私は使用しました

 setfacl -R -m u:nginx:rwx app/cache app/logs
 setfacl -dR -m u:nginx:rwx app/cache app/logs

これで、キャッシュを自由にクリアできるようになりました。

オリジナル(ACLを有効にできない、または有効にしない場合にのみ使用): ヘルプページをたどってumask(0000);、さまざまな場所、つまりapp/app*.phpsとapp/consoleスクリプトを設定しました。これはうまくいったようですが、その意味はわかりません。

umask以外のソリューションについては、質問を開いたままにしておきます。私のマウントでACLをアクティブ化することを検討していますが、それは初めてで、すべてが奇妙な名前になっているようです。

于 2012-11-04T21:18:44.450 に答える