最近把magento迁移到另外一台服务器上,当我登录后台时,发现点击任何一个页面都会报错, 在var/reports/
在任何页面下记录或显示以下错误
a:5:{i:0;s:71:"Could not determine temp directory, please specify a cache_dir manually";i:1;s:3597:"#0 lib/Zend/Cache/Backend.php(217): Zend_Cache::throwException('Could not deter...')
#1 lib/Zend/Cache/Backend/File.php(130): Zend_Cache_Backend->getTmpDir()......
原因
Magento无法在Magento根目录下写入缓存var/cache/
和var/tmp/
文件夹。目录不存在或webserver无法写入这些目录
解
- 确保Magento根目录下存在
var/cache/
和var/tmp/
文件夹。如果找不到,只需重新创建即可 - 如果该目录
var/cache
或var/tmp/
存在但不可写,更改该目录的权限,允许Web服务器写在那里。通常,0750权限应该足够了。如果它不起作用,请尝试一些松散的权限0770甚至0777。请注意,对于后者,您允许任何人写入该目录,所以要小心,特别是如果您在共享主机上,并咨询您的托管支持以获得正确的权限,以允许Web服务器在那里写入 - 修改代码 /lib/internal/Cm/Cache/file.php
/ ** @var array * /
protected $ _options = array(
'cache_dir'=>'var/tmp/', //缓存文件
的路径'file_name_prefix'=>'cm',//创建缓存目录的前缀
'file_locking '=> true,//最好保持启用
'read_control'=> false,//使用校验和检测损坏的数据
'read_control_type'=>'crc32',//如果启用了read_control,则使用哪个校验和算法
'hashed_directory_level '=> 2,//应该使用多少个字符来创建子目录
'use_chmod'=> FALSE,//不要在文件和目录上使用chmod(应该使用umask()来控制权限)
'directory_mode'=> 0770,//已创建目录的文件系统权限(需要use_chmod)
'file_mode'=> 0660,//已创建文件的文件系统权限(需要use_chmod)