阅读导航
最近升级了很多网站到Magento 1.9.3,这里把升级方法和碰到问题记录一下。 升级magento系统,首先第一步就是得备份。备份无非就是程序资源文件和数据库。一般的magento网站只需要拷贝网站目录副本 和导出数据库SQL文件即可。 下面的代码早前记录的【也不知道来源是哪里了】
升级步骤
1. 设置站点为维护模式:
cd /你的magento根目录 touch maintenance.flag
2. 备当前的数据库:
mysqldump -uroot -p 数据库名 > 数据库名.sql
3. 备份当前网站的目录:
cp -R /你的magento根目录 备份目录名 例如 cp -r mageoo.com mageoo.com_bak
4. 更新:
cd /你的magento根目录 chmod -R 777 ./* rm -rf var/cache/* var/session/* chmod 550 ./mage ./mage mage-setup . ./mage config-set preferred_state stable ./mage list-installed
如果最后的命令不会列出预期Magento的模块,如:
Installed package for channel 'community' : Lib_Unserialize 1.9.2.4 stable Mage_All_Latest 1.9.2.4 stable Interface_Adminhtml_Default 1.9.2.4 stable Interface_Frontend_Default 1.9.2.4 stable Interface_Install_Default 1.9.2.4 stable Mage_Downloader 1.9.2.4 stable Mage_Centinel 1.9.2.4 stable Interface_Frontend_Base_Default 1.9.2.4 stable Phoenix_Moneybookers 1.9.2.4 stable Mage_Compiler 1.9.2.4 stable Magento_Mobile 1.9.2.4 stable Lib_Cm 1.9.2.4 stable Cm_RedisSession 1.9.2.4 stable Interface_Frontend_Rwd_Default 1.9.2.4 stable Mage_Core_Adminhtml 1.9.2.4 stable Mage_Core_Modules 1.9.2.4 stable Lib_Js_Ext 1.9.2.4 stable Lib_LinLibertineFont 2.8.14.5 stable Lib_Js_TinyMCE 3.5.11.4 stable Lib_Varien 1.9.2.4 stable Lib_Google_Checkout 1.9.2.4 stable Lib_Js_Calendar 1.51.1.5 stable Lib_Js_Mage 1.9.2.4 stable Lib_Phpseclib 1.9.2.4 stable Mage_Locale_en_US 1.9.2.4 stable Lib_Mage 1.9.2.4 stable Lib_Magento 1.9.2.4 stable Lib_Credis 1.9.2.4 stable Lib_Pelago 1.9.2.4 stable Lib_IDNA2 1.9.2.4 stable Lib_ZF 1.12.10.4 stable Lib_Js_Prototype 1.9.2.4 stable Lib_ZF_Locale 1.12.10.4 stable
则使用如下命令:
./mage install http://connect20.magentocommerce.com/community Mage_All_Latest --force
如果您的Magento模块列举成功然后使用下面的命令:
./mage list-upgrades ./mage upgrade-all
5.恢复目录权限
如上命令执行完成,会看到哪些升级成功,哪些没有升级;升级后要恢复目录的权限:
php shell/indexer.php reindexall chmod -R 644 ./* find . -type d -exec chmod 755 {} \; chmod 550 ./mage
6.恢复网站运行
删除根目录的 maintenance.flag 文件 上面这些操作一般服务器环境设置没问题都能很顺利的升级成功。
可能出现的问题和解决办法
- 当这些操作顺利完成后,打开后台会出错,错误为一些数据表之类的操作失败。这时候可以清理下缓存试试,特别是magento配置了redis之类的缓存。
- 执行命令./mage upgrade-all 出现 ssl 相关的错误提示,这多个是服务器Curl版本过低造成的。
- 临时解决办法:修改downloader/lib/Mage/HTTP/Client/Curl.php文件,找到makeRequest这个函数,将$this->curlOption(CURLOPT_SSL_CIPHER_LIST, ‘TLSv1’);注释掉,或者改成$this->curlOption(CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);试试。
- 还有一个办法是用老版本的这个函数替换当前的。
- 最根本的就还是得升级服务器的Curl版本,Magento现在要求Curl最低的版本是 7.34.0。 版本过低后台会提示这句话:
Your current version of cURL php5 module is 7.19.7, which can prevent services that require TLS v1.2 from working correctly. It is recommended to update your cURL php5 module to version 7.34.0 or higher.
- 执行命令./mage upgrade-all出现 Error: upgrade-all: Failed to delete files: /home/wwwroot/mageoo.com/./pkginfo/Mage_All_Latest.txt Check permissions 这个错误提示,手动删除掉这个文件重新执行这个命令即可。
匆忙记录,有错误请提醒我。