web-dev-qa-db-ja.com

RuntimeException:キャッシュディレクトリ(/ var / www / sonata / app / cache / dev)を作成できません

sonata管理バンドルをインストールしました。インストール後にページを更新すると、キャッシュの問題が発生したため使用します

rm -rf app/cache app/log

cache.thenを削除するには、コマンドを使用してディレクターも作成します

mkdir app/cache app/log

その後、私はこのような新しい問題を手に入れました

Runtime Exception : Unable to create the cache directory (/var/www/sonata/app/cache/dev). Please help .
28
user2779489

ファイル/ディレクトリのパーミッションの問題のようです。ディレクトリは、ウェブサーバーによって書き込み可能である必要があります。ディレクトリを作成した後、権限を調整する必要があります

$ chown -R www-data:www-data app/cache

そして

$ chown -R www-data:www-data app/log

コマンドラインで。

これはLinuxシステムでのみ機能します。ユーザーとグループは、ディストリビューションによって異なります。 DebianおよびUbuntuでは、これはwww-dataである必要があり、CentOSではApacheになります。

別の解決策は、フォルダ全体を削除するのではなく、そのコンテンツのみを削除することです

$ rm -rf app/log/* app/cache/*

ただし、このコマンドには注意してください。

51
l-x

この解決策は正しいです: https://stackoverflow.com/a/20128013/240037

ただし、Symfony3の2つのコマンドを変更する必要があります。最初に、プロジェクトのフォルダー内にいる必要があります。

$ Sudo chown -R www-data:www-data var/cache
$ Sudo chown -R www-data:www-data var/logs

キャッシュを削除した後:

$ Sudo rm -rf var/cache/*
$ Sudo rm -rf var/logs/* 

よろしく

6
juanitourquiza

フォルダーのユーザーとグループを変更して解決しましたvar/cacheおよびvar/logs、次にキャッシュを消去しました:

Sudo chown -R www-data:www-data var/logs
Sudo chown -R www-data:www-data var/cache

Sudo rm -rf var/logs/* var/cache/*
4
Jirson Tavera

また、centosの場合:

chown -R Apache:apache app/cache

symfony Helpにアクセスする場合は、app/logsフォルダー全体を削除する必要があります。

chown -R Apache:apache app/logs
4
sjt003

CHMODの変更が役立つ場合がありますが、開発中にキャッシュがユーザーを悩ませる場合は、それを非アクティブ化することができます。アプリの構成ファイル(ルートディレクトリから../app/config/config.ymlにあります)に移動します。 twig構成設定(twig:の下))までスクロールし、キャッシュ値(キャッシュディレクトリを指す必要があります)を次のようにfalseに変更します。

twig:
    cache:  false

キャッシュ構成エントリが表示されない場合は、上記の行を追加するだけです。

2
user254883

これは主に許可の問題です。

次のコマンドを使用してMACで解決しました:$ Sudo chmod -R 777 <path/to/cache/directory>

試してみてください:$ Sudo chmod -R 777 /var/www/sonata/app/cache

1
Pratik Patel

エラー画像としてPHP symfonyを使用しているときに、同様の問題が見つかりました。コマンドを実行した後、それが見つかりました

php bin/console cache:clear

フォルダー内のすべてを削除して解決しました/ app/var/cache

enter image description here

macコンピューターでは:

$ Sudo chown -R _www:_www var/cache
$ Sudo chown -R _www:_www var/logs

上記のいずれにも当てはまらないの場合、phpファイルで "phpinfo()"を呼び出し、 "User/Group"値を見つけます。それが許可を与えるユーザーグループです。

0
Tiago Gouvêa

おそらく起こっているのは、Apache/nginxの下にファイルを作成しようとしているということです。デフォルトでは、Apacheまたはnginxのumaskは0022に設定されています。

From: http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

Octal umaskモード022および002の説明

前述したように、デフォルト設定が変更されない場合、ファイルはアクセスモード666で作成され、ディレクトリは777で作成されます。この例では:

通常のユーザーに使用されるデフォルトのumask 002。このマスクを使用すると、デフォルトのディレクトリ許可は775、デフォルトのファイル許可は664です。rootユーザーのデフォルトのumaskは022です。デフォルトのディレクトリ許可は755、デフォルトのファイル許可は644です。ディレクトリの場合、ベース許可は(rwxrwxrwx)0777およびファイルの場合、それらは0666(rw-rw-rw)です。

ディレクトリを作成する前に、umaskを手動で0002に設定し、以前の設定にリセットする必要があります。

0
dminer

パスも確認してください。私の場合、私は持っていた

return dirname(__DIR__) . '../../../../var/cache/

の代わりに

return dirname(__DIR__) . '/../../../../var/cache/(欠落している/

0
simPod