使用 shell 命令时无法访问 Magento 1 缓存文件夹

Magento 1 Cache folder is not accessible when using shell command

我在使用 shell 命令清除特定产品缓存时遇到问题,因为缓存文件夹中的权限严格限于 www-data。例如,文件夹 /var/cache/mage--a 个文件是这样的:

-rw-------  1 www-data www-data 7646 Mar  4 11:20 mage---c54_PRODUCT_CACHE_123
-rw-------  1 www-data www-data  184 Mar  4 11:20 mage---internal-metadatas---c54_PRODUCT_CACHE_123

所以当shell命令运行时,它会调用Mage::app()->cleanCache('PRODUCT_CACHE_123'),这会触发到lib/Zend/Cache/Backend/File.php中定义的_fileGetContents函数,并且它无法打开元文件/var/cache/mage--a 由于上面列出的权限。

有人对此有建议的修复方法吗?

我最终改用 Redis 作为缓存。这有助于解决问题,因为我不再需要为缓存文件夹设置文件权限。