12

最近、Symfony 2 Web サイトでキャッシュをクリアしようとすると問題が発生します。ターミナルで次のコマンドを入力します。

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

次のエラーが表示されます。

[ErrorException]                                                                                                                                                                                                                                   
 Warning: rename(/var/www/corpsite/corpsite/app/cache/dev,/var/www/corpsite/corpsite/app/cache/dev_old): Directory not empty in /var/www/corpsite/corpsite/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php line 74  

そのため、そのファイルのアクセス許可を 777 に変更し、キャッシュのクリア コマンドを再実行すると、次のエラーが表示されます。

  [ErrorException]                                                                                                                                                                                                                         
  Warning: unlink(/var/www/corpsite/corpsite/app/cache/dev_old/twig/6b/e9/4491e41b895786689b86f32f446f.php): Permission denied in /var/www/corpsite/corpsite/vendor/symfony/src/Symfony/Component/HttpKernel/Util/Filesystem.php line 100  

「dev_old」フォルダーを削除することで問題を回避できますが、問題の原因となっている問題を解決したいと考えています。

PS - サイトが開発モードで実行されていることは承知しています。このサイトは 10 か月間公開されていますが、これまで問題はありませんでした。

どんな助けでも大歓迎です!

4

3 に答える 3

33

キャッシュ フォルダーとログ フォルダーの両方に対するアクセス権を取得する必要があります。それを行うには、ここに示されている指示に従うことができます: http://symfony.com/doc/current/book/installation.html#configuration-and-setup

OS に応じて、いくつかの方法があります (www-data を apache ユーザーに置き換えます)。

chmod +a をサポートしている場合:

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

$ sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
$ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs

または、setfacl をサポートしている場合 ( https://help.ubuntu.com/community/FilePermissionsACLsを参照):

$ 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

それ以外の場合は、これらの行を app/console、web/app.php および web/app_dev.php の先頭に追加します (推奨されません):

umask(0002); // This will let the permissions be 0775

// or

umask(0000); // This will let the permissions be 0777
于 2013-04-04T15:58:53.070 に答える
-5

キャッシュ フォルダーとログ フォルダーの両方に対するアクセス権を取得する必要があります。これを行うには、次の指示に従ってください。

于 2016-05-15T22:24:34.773 に答える