web-dev-qa-db-ja.com

Symfony2キャッシュパーミッションの問題Ubuntu 12.10

/ opt/lamppにlampp 1.8.1をインストールしています。すべて正常に動作しています。

htdocsフォルダーに書き込みできるように、現在のユーザーを所有者としてhtdocsフォルダーに追加しました。

次に、symfony2プロジェクトを作成しました。すべてが正常に機能し、構成ページを適切に実行できました。

しかし、コマンドを使用してキャッシュをクリアしたとき

Sudo php app/console cache:clear --env=prod
Sudo php app/console cache:clear --env=dev

キャッシュはクリアされますが、権限の問題があります。前と同じ構成ページにアクセスしようとすると、ブラウザでエラーが表示されます:

「RuntimeException:キャッシュファイル「/opt/lampp/htdocs/Symfony/app/cache/dev/classes.php」の書き込みに失敗しました。」

しかし、私がキャッシュフォルダのアクセス許可を再度変更するとき:

Sudo chmod -R 777 app/cache

ページが再び正しく表示されます

キャッシュをクリアした後、毎回アクセス許可を変更したくありません。解決策はありますか、何か間違っていますか?

7
Ankit Khedekar

http://symfony.com/doc/current/book/installation.html#configuration-and-setup の「アクセス許可の設定」を参照してください。 Ubuntuでの私の好みの方法はsetfaclで、機能します(最初にパッケージをインストールするだけです):

Sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/cache app/logs
Sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
15
garakkio

Symfony3を使用

Sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX var/cache var/logs
Sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx var/cache var/logs

私のために働く。

0
anchan42

ユーザーが正しいルート権限を持っていない場合は

su root 
export user="changeToYouUsername"

setfacl -R -m u:www-data:rwX -m u:$user:rwX var/cache var/log
setfacl -dR -m u:www-data:rwx -m u:$user:rwx var/cache var/log

この例

Sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/cache app/logs

現在のユーザーにルートがあり、これがウェブログユーザーである場合にのみ機能します(ルートアカウントから実行する場合-権限が失敗する-ユーザー名として$ whoamiを使用する

これはsymfony 4のSudoユーザーです

Sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX var/cache var/log;
Sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx var/cache var/log;
0
Developer