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に変更し、clear cacheコマンドを再実行すると、次のエラーが発生します。
[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か月間公開されており、これは以前には問題になりませんでした。
どんな助けでもありがたいです!
キャッシュとログの両方のフォルダーに対するアクセス権を取得する必要があります。これを行うには、次の指示に従います。 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
in Symfonyキャッシュがapp
からvar
に移動したフォルダーなので、コマンドは次のようになります:
$ rm -rf var/cache/*
$ rm -rf var/logs/*
$ Sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" var/cache var/logs
$ Sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" var/cache var/logs