Magento 1.5升级至1.9后分类及商品页面HTML截断无法显示商品
解决Magento 1.9升级后分类/商品页面截断、无商品显示问题
刚帮朋友处理过一模一样的Magento 1.5升1.9后页面截断问题,给你几个亲测有效的排查和解决方向:
先查PHP内存够不够
Magento 1.9比1.5吃内存多太多,页面渲染到一半突然截断,大概率是内存耗尽撑不住了。你可以这么改:- 打开网站根目录的
index.php,在最开头加一行:
要是还不行就调到1G(只要服务器允许)ini_set('memory_limit', '512M'); - 或者在
.htaccess里加:php_value memory_limit 512M
改完刷新页面试试,很多时候这一步就能解决。
- 打开网站根目录的
赶紧把编译模式关了
升级前如果开了Magento的编译功能,升级后绝对会出问题,因为编译的文件还是旧版本的。用命令行敲这俩命令:php shell/compiler.php disable php shell/compiler.php clear要是能进后台的话,去
System > Tools > Compilation里手动禁用并清空编译文件也行,之后一定要清缓存。排查自定义模板的兼容性问题
1.5到1.9的模板结构改了不少,你之前的自定义模板大概率有冲突。先临时切换到默认的rwd主题,刷新页面看能不能正常显示商品:- 如果正常了,那就是你的自定义模板有问题。重点检查
catalog/category/view.phtml和catalog/product/view.phtml这俩文件,看看有没有未闭合的HTML标签、写崩了的PHP循环(比如foreach没关) - 去
var/report目录下翻错误日志,里面会明确告诉你哪个文件哪行出错导致页面中断,照着改就行。
- 如果正常了,那就是你的自定义模板有问题。重点检查
重新完整重建索引+清缓存
有时候升级后索引重建不彻底,数据库里的关联数据没更新。命令行执行全量索引重建:php shell/indexer.php reindexall重建完一定要把缓存清干净,不光是后台清,最好手动删
var/cache和var/full_page_cache里的所有文件,避免残留旧缓存。检查数据库数据是否正常
升级过程中可能丢了商品和分类的关联数据:- 用phpMyAdmin看看
catalog_product_entity里的商品数量是不是和升级前一致 - 再查
catalog_category_product表,看分类和商品的关联记录有没有丢 - 要是有商品状态不对的,跑个SQL修复下:
-- 把所有商品设为启用状态 UPDATE catalog_product_entity_int SET value=1 WHERE attribute_id=(SELECT attribute_id FROM eav_attribute WHERE attribute_code='status' AND entity_type_id=4); -- 把商品设为在分类和搜索中可见 UPDATE catalog_product_entity_int SET value=4 WHERE attribute_id=(SELECT attribute_id FROM eav_attribute WHERE attribute_code='visibility' AND entity_type_id=4);
- 用phpMyAdmin看看
翻服务器错误日志找线索
要是以上都没用,就去服务器的Apache或Nginx错误日志里找原因,比如是不是有PHP致命错误导致页面直接中断,日志里会写得明明白白。
内容的提问来源于stack exchange,提问作者hint
相关产品推荐
相关产品推荐

