cache
&フォルダーにアクセス許可を与える方法をいくつか試しましたlogs
が、その時点でキャッシュをクリアするたびに、ディレクトリに書き込めないなどの問題が発生します。
私はこの2つの方法を試しました:
root
パーミッションを持つユーザーによるキャッシュへのフルアクセス777
。www-data
Symfony2 docs で述べたように所有者を変更します。
しかし、それは私にはうまくいきませんでした。
cache
&フォルダーにアクセス許可を与える方法をいくつか試しましたlogs
が、その時点でキャッシュをクリアするたびに、ディレクトリに書き込めないなどの問題が発生します。
私はこの2つの方法を試しました:
root
パーミッションを持つユーザーによるキャッシュへのフルアクセス777
。www-data
Symfony2 docs で述べたように所有者を変更します。しかし、それは私にはうまくいきませんでした。
SElinux をオフにしたくない場合の解決策は次のとおりです。
cd your/symfo/app
chcon -R -t public_content_rw_t app/cache
chcon -R -t public_content_rw_t app/logs
setsebool -P allow_httpd_anon_write 1
このような問題が発生する最も一般的な状況は、Web サーバーのユーザーがプロジェクトが属するフォルダーに書き込む権限を持っていない場合です。実際には、ユーザー (php-cli/php-fpm) から実行されるいくつかのテストまたはコンソール コマンドを実行したい場合があるため、app/cache および app/logs の所有者を変更しても常に役立つとは限りません。その結果、現在のユーザーからキャッシュまたはログ フォルダーが作成され、Web サーバー ユーザーはそれにアクセスできなくなります。
私の提案は、 Webサーバーユーザー(おそらくwww-data)をユーザーグループに追加するか、ユーザーからWebサーバーを実行することです-そうすれば、そのような問題は永遠に忘れられます;)
同様の問題、よく説明された回答: Symfony2 の権限の問題
「構成とセットアップ」セクションの「アクセス許可のセットアップ」サイドノートを参照してください。アプローチを使用することをお勧めします。setfacl
一時的な解決策:
SElinux を永久に無効にする
SElinux を永久に無効にするには、SElinux の構成ファイル /etc/selinux/config を編集し、それを無効にする行を追加/変更する必要があります: SELINUX=disabled
注: SElinux を無効にするのは安全ではありませんが、開発環境では問題ありません。
恒久的な解決策:
アクセス許可の問題に対処する良い方法は、公式のガイドラインに従ってアクセス許可を設定することです。
su ユーザーとして次のコマンドを使用して、SELinux セキュリティをオフにします。
echo 0 > /selinux/enforce