Alan Hou的个人博客

Magento本地迁移上线

使用本地环境对Magento网站进行了相关配置(参见使用xampp安装Magento部分)并测试确认满足上线条件时,就需要将本地的数据库及文件迁移到所购买的空间上去,毕竟这才是我们开发网店的最终目的。

迁移步骤主要包含本地文件的迁移,数据库的迁移,相关文件的配置。

1.本地文件就是您所安装的文件夹(通常名称为Magento)内的所有内容,建议进行压缩后再上传,这样可以节约网络流量并缩短上传时间。当然如果采用压缩的方式上传在服务器端需进行解压缩处理。上传的位置为您所布署站点在空间中的根目录位置。

2.数据库的迁移直接去http://localhost/phpmyadmin找到对应的数据库,点击Export进行导出,不同的空间商支持不同格式文件的导入,通常使用的是.sql文件。导出后访问空间服务商提供或您自己设置的MySQL数据库管理后台点击Import进入导入。或者在ssh中用 mysql后,use 数据库名;source 所导入的数据库.sql。

3.修改LOCAL.XML(app\etc)文件中的数据库名称,用户名及密码。

4.将旧域名或IP更改为新域名,步骤如下:

修改magento数据库,core_config_data表中的path为web/unsecure/base_url和web/secure/base_url的内容,为你网站的新域名,注意域名后面的“/”。

在迁移中可能会遇到一些问题,常见问题如下:

1.如果phpmyadmin导入SQL的时候报错是因为magento的数据库使用了外键约束。

解决办法:

在导出的sql文件上加如下一行

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;

2.访问magento提示Exception printing is disabled by default for security reasons.

解决方法

改变magento根目录下 /errors/local.xml.sample 为/errors/local.xml

改变magento根目录下/lib/Zend/Cache/Backend/File.php文件里面protected $_options = array( ‘cache_dir’ => NULL, ‘file_locking’ => true,为protected $_options = array( ‘cache_dir’ => ‘var/tmp/’, ‘file_locking’ => true

,然后在根目录下创建tmp文件夹.

3.出现SQLSTATE[HY000] [2002] Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)报错

解决办法:

修改magento的配置文件,位置在app/etc/local.xml以及app/etc/config.xm,注意修改CDATA里面的内容 主要是数据库连接数据库用户名 密码 数据库名称

4.发现应用的rewrite无效,可能是因为数据库中默认没用应用rewrite,进入数据库管理后台将core_config_data表中的path值为web/seo/use_rewrites和web/secure/use_in_frontend的Value值更为改1。

5.media目录下的所有图片无法正常显示。

解决办法:

修改MEDIA目录下的.HTACCESS文件的第一行,将其注释掉。

#Options All -Indexes

<IfModule mod_php5.c>

php_flag engine 0

</IfModule>

*或是将MEDIA目录下的.HTACCESS改名。(不推荐)

6.如果访问首页正常,但访问其它URL出现问题,可能是因为URL中带有/INDEX.PHP/而导致404访问失败

解决办法:

首先修改MAGENTO根目录下的.HTACCESS文件的REWRITE模块,保证以下两行在其中:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

</IfModule>

然后,按如下方法让MAGENTO启用REWRITE功能:

go to “System >>  Configuration >>Web >> Search Engines Optimization”

Use Web Server Rewrites : YES

Go to “System >>  Configuration >>Web >>Secure”

Use secure URL Frontend: YES

或用是PHP MYADMIN修改如下数据值

<v:shape
id=”_x0000_i1026″ type=”#_x0000_t75″ alt=”sky3-15-2013 6-13-53 PM.png”
style=’width:347.25pt;height:4in’/><!–[if !vml]–><!–[endif]–>

7.如果想要修改的配置改变立即发生,最保险的办法是清除VAR/CACHE文件夹之后再CTRL+F5强制刷新浏览器页画。

8.将index.php跳转到根目录

## rewrite everything else to index.php

RewriteRule .* index.php [L]

在上面两行数据下加上
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.mydomain.com/$1 [R=301,L]
RewriteCond %{http_host} ^www.mydomain.com [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,NC]
RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]

9.无法成功登陆进入后台,修改根目录下的.htaccess,网上获取的示例文件如下:

RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f

RewriteRule ^.+.php$ /bogusfile

php5.ini

register_globals = off

allow_url_fopen = on
expose_php = Off

max_input_time = 60

variables_order = “EGPCS”

extension_dir = ./

upload_tmp_dir = /tmp

precision = 12

SMTP = relay-hosting.secureserver.net

url_rewriter.tags = “a=href,area=href,frame=src,input=src,form=,fieldset=”

;Only uncomment zend optimizer lines if your application requires Zend Optimizer support

;[Zend]

;zend_optimizer.optimization_level=15

;zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.3

;zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.3

;zend_extension=/usr/local/Zend/lib/Optimizer-3.3.3/ZendExtensionManager.so

;zend_extension_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.3/ZendExtensionManager_TS.so

;– Be very careful to not to disable a function which might be needed!

;– Uncomment the following lines to increase the security of your PHP site.

;disable_functions = “highlight_file,ini_alter,ini_restore,openlog,passthru,

;phpinfo, exec, system, dl, fsockopen, set_time_limit,
;popen, proc_open, proc_nice,shell_exec,show_source,symlink”

;This file is for CGI/FastCGI installations.

;Try copying it to php5.ini, if it doesn’t work

;adjust memory limit

memory_limit = 64M

max_execution_time = 18000

;disable magic quotes for php request vars

magic_quotes_gpc = off

;disable automatic session start

;before autoload was initialized

flag session.auto_start = off

;enable resulting html compression

zlib.output_compression = on

;disable user agent verification to not break multiple image upload

suhosin.session.cryptua = off

;turn off compatibility with PHP4 when dealing with objects

zend.ze1_compatibility_mode = off

;PHP for some reason ignores this setting in system php.ini

;and disables mcrypt if this line is missing in local php.ini
extension=mcrypt.so

cgi.fix_pathinfo = 1

退出移动版