A-A+

Magento 升级总结 (二) — 手动篇

2011年11月19日 灵犀一指 Magento 升级总结 (二) — 手动篇已关闭评论 阅读 857 人 次

上一篇文章我们介绍了通过SSH,利用PEAR来完成Magento的升级, 但是如果PEAR有问题, 或者感觉使用不怎么不放心的话, 我们还可以用全手工的方式完成Magento的升级, 今天将对这种方式做一次详细的介绍, 假设我们在网站的服务器上已经拥有SSH权限, 当然, 如果你没有SSH的权限, 只有FTP的权限, 也可以成功的, 只不过要麻烦很多…

同样, 在升级之前我们要备份网站的一切,
1. 首先, 备份你的网站的所以文件:
$ tar -cvvzf web_site_directory.tar.gz web_site_directory/

2. 备份网站的数据库, 一般有三种方式:
其一, 通过magneto后台自身备份, System->Tools->Backups
其二, 通过PHPMyAdmin来完成数据库备份(数据库不能太大, 否则,需要更改php的运行时间限制)
其三, 通过mysql命令行的方式:

mysqldump -u USER -p DBNAME > dump.sql

若需要恢复备份,则只需要运行下面命令:

mysql -u USER -p DBNAME < dump.sql

3. 单独备份配置文件app/etc/local.xml, 下面会用

4. 在网站根目录下,创建一个新的文件夹new

mkdirnew
5. 下载最新的Magento版本(当前最新版本为ver. 1.5.0.1):
wget http://www.magentocommerce.com/downloads/assets/1.5.0.1/magento-1.5.0.1.tar.gz
6. 解压压缩包:
tarxvfp magento-1.5.0.1.tar.gz

注释: 解压的时候, 一定要配合参数–xvfp, 这样可以确保解压后的目录权限, 避免很多因为目录权限原因引起的500错误.

6. 创建一个新的数据库, 然后, 把之前的备份导入到新数据库中, 在导入之前, 先关闭外键的关联, 否则导入时可能会报错, 在备份文件dump.sql的开头和结尾分别加上下面代码:
强制关闭外键关联

SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT;
SET@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS;
SET@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION;
SETNAMES utf8;
SET@OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET@OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
SET@OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0;
数据导入完成后, 恢复相关的外键关联
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT;
SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS;
SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION;
SET SQL_NOTES=@OLD_SQL_NOTES;
mysql -u USER -p NEWDBNAME < dump.sql

7. 修改数据库表core_config_table,里面的base_urls, 指定到当前的路径, 例如: http://www.mysite.com/new/
8. copy 备份的app/etc/local.xml 到 /new/ app/etc/local.xml
9. copy 原站点/media目录下的所有文件, 到/new/media
10. 访问你的新站点,然后测试, 测试, 再测试

升级完成, 第一次加载时间会很长, 因为magneto要升级老的数据库,初始化生成很多临时文件, 如果一切都进展顺利, 我们就可以逐步移植自己的自定义模块或第三方模块了.

 

标签:

评论已关闭!