/ 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
ページが再び正しく表示されます
キャッシュをクリアした後、毎回アクセス許可を変更したくありません。解決策はありますか、何か間違っていますか?
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
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
私のために働く。
ユーザーが正しいルート権限を持っていない場合は
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;