Magento后台报404错误

发布时间:2011-04-06

一般的Magento开发流程是:先在本地上修改模板和上传数据,然后把文件和数据库上传到服务器,由于本地环境和服务器环境有一些差异,所以上传后可能导致一些问题。
上传到服务器后修改app/etc/config.xml 文件里的数据库用户名,数据库和密码,然后清空 var/cache文件夹下的所有文件,最后修改core_config_data的两个记录域名地址的记录:

update core_config_data set value=”http://你的网址” where path=”web/unsecure/base_url” or path=”web/secure/base_url”;

(当然这些工作可以在本地做好在上传到服务器)。如果这些工作都做好了,后台还是进不去,

“Error: 404 Not Found”

通过查看Magento系统日志(var/log/system.log)

2011-03-20T15:13:20+00:00 ERR (3): Recoverable Error: Argument 1 passed to Mage_Core_Model_Store::setWebsite() must be an instance of Mage_Core_Model_Website, null given , called in /var/www/html/website/shop/app/code/core/Mage/Core/Model/App.php on line 591 and defined  in /var/www/html/website/shop/app/code/core/Mage/Core/Model/Store.php on line 292
2011-03-20T15:13:20+00:00 ERR (3): Recoverable Error: Argument 1 passed to Mage_Core_Model_Store_Group::setWebsite() must be an instance of Mage_Core_Model_Website, null given, called in /var/www/html/website/shop/app/code/core/Mage/Core/Model/App.php on line 611 and defined  in /var/www/html/website/shop/app/code/core/Mage/Core/Model/Store/Group.php on line 227

通过日志发现后台(Admin)的 store_idwebsite_id 应该设置为 0,所以我们需要工作修改相应的值,执行下面的SQL语句:

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

完成后再次清空系统缓存后台就可以进去了。