Magento升级操作及错误解决

阅读导航

最近升级了很多网站到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版本过低造成的。
    1. 临时解决办法:修改downloader/lib/Mage/HTTP/Client/Curl.php文件,找到makeRequest这个函数,将this->curlOption(CURLOPT_SSL_CIPHER_LIST, ‘TLSv1’);注释掉,或者改成this->curlOption(CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);试试。
    2. 还有一个办法是用老版本的这个函数替换当前的。
    3. 最根本的就还是得升级服务器的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 这个错误提示,手动删除掉这个文件重新执行这个命令即可。

匆忙记录,有错误请提醒我。