如果你的空间可以用ssh的话,你可以在官网的wiki Moving Magento To Another Server 中看到较为详细的搬家过程。
无论你的服务器是linux系统还是windows系统,其过程都是一样的,转移文件、转移数据库、初始化网址用户名密码或者不初始化。
1.关于文件:
magento的根目录中的var文件夹是magento的系统缓存文件夹,里面的东西都可以删掉,以减小转移文件的大小。但是注意里面的backup文件夹,里储存着magento后台System—>Tool—>backup中运行备份后的数据库文件。这个备份文件,需要的话,保存下,这个文件夹也可以删掉了。如果你发现里面有个pear文件夹,那么就很神奇了,因为这里面存放的是magento插件或者模板的包。里面有东西的话,备份下然后删掉吧。
magento根目录的media文件夹,里面的tmp文件夹删掉,再找下其它文件夹里面的cache文件,删掉。
magento根目录的 app/etc/local.xml 配置文件,是告诉magento使用哪个数据库服务器,数据库名字,访问数据库的用户名密码。所以当你搬到新空间,你要改成你新空间的。如果你不会改写这个文件的话,直接删掉,在新空间第一次在浏览器访问你的magento的时候会出现安装界面,就像第一次安装magento一样,安装结束local.xml就又被自动创建好了。
local.xml文件片段:
<default_setup>
<connection>
<host><![CDATA[localhost]]></host>
<!– 数据库服务器地址,localhost指本地
–>
<username><![CDATA[root]]></username> <!–
数据库用户名 –>
<password><![CDATA[]]></password> <!–
数据库密码
–>
<dbname><![CDATA[magento1324test]]></dbname><!–
数据库名字
–>
<active>1</active>
</connection>
</default_setup>
2.关于数据库
最头痛的就是magento的数据库了,每次导出就很费劲,每次导入也都会有错误报警,不过最后一切都很正常。
数据库文件中的名字带有log表,应该都是可以清空的,我试过, 最后一切运转正常。请你再做个备份清空后运行实验下,没问题了再这么干,magento是很神奇的东西,我总是不敢保证说没事。
数据库小的时候可以用phpmyadmin导出或者用magento后台的 System—>Tool—>backup 备份。数据库大了就用ssh是最方便的了。如果你不懂问技术客服,或者让技术客服帮你备份好。很多空间有cpanel或者其他的网页管理软件学下也可以备份。
不用去修改数据库中的任何表,即使你要换网址换magento后台的用户名密码,如果你要换,只要将上面所说的apc/etc/local.xml文件删掉即可,务必先清空你的var文件夹,再初始化你的magento。
如果你的magento是在一些magento专用空间安装的,现在你想换到别的空间,注意你的magento数据库表是否有前缀,在apc/etc/local.xml的配置文件中你可以看到,有的话在配置文件中或者安装过程中要写上,不然你就惨了。
local.xml片段:
<db>
<table_prefix><![CDATA[]]></table_prefix> <!–
此处代码片段显示没有前缀,但你要注意你的 –>
</db>
- 将原来网站文件中的var文件中的cache和session文件删除,将media中的缓存文件删除。然后将所有文件制作成一个压缩包,以减少文件体积,方便转移。
- 将压缩包转移到新的服务器域名指向的文件夹,解压。
- 导出magento的数据库,如果使用phpmyadmin导出,参考文章:http://www.hellokeykey.com/magento-export-database-via-phpmyadmin/ . 注意:看下你的数据库有无表前缀,在第9步的时候要写上。
- 在新空间创建新的数据库,导入备份的数据文件。如果导不进去的是因为magento的数据库使用了外键约束,通过phpmyadmin导入的时候会报错,在导出的sql文件上加一行
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
- 修改magento的配置文件,位置在app/etc/local.xml,注意修改CDATA里面的内容 主要是数据库连接, 数据库用户名, 密码, 数据库名称. 在此文件中也包含数据库表前缀的信息,重命名后打开看下.
- 检查var文件夹中的cache和session文件夹是否已经清空。
- 通过网址访问你的网站,进入了magento安装页面。
- 在填写数据库那一步,写上第4步新建的数据库的名称,用户名,密码,表前缀等信息。注意查看你的这个数据库有无表前缀,不然magento会重新建立所有的表。
- 安装结束后,进入后台去刷新下缓存和索引管理。
- 在前台检查是否有异样。如果某些图片显示不正常,检查是否使用了固定的链接,因为域名更换,引起图片无效。
- 如果修改了域名, 则还需要修改magento数据库,core_config_data表中的path为web/unsecure/base_url和web/secure/base_url的内容,为你网站的新域名,注意域名后面的“/”。更换网站完整域名+/ http://www.abc.com/
- 登录进入Magento后台, 进入system 的Cache management和index management刷新一下缓存, 并且重建索引.
参考文献
可能遇到的问题
导入数据库后, 无法访问主页: There has been an error processing your request
复制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' => 'tmp/', 'file_locking' => true,
然后在根目录下创建tmp文件夹.
再然后刷新前台,”There has been an error processing your request” 就没有了,出现的是错误提示的也没,然后根据错误提示方便寻找解决答案!
简单的来说就是给cache_dir设置一个目录为‘tmp/’
注意这个不要改漏掉了哦:复制magento根目录下 /errors/local.xml.sample 并命名为/errors/local.xml
[参考文献]
忘记Magento后台登陆用户名/密码
访问 http://domain.com/admin 后, 发现忘了用户名密码, 并且忘了邮箱, 这时可以直接修改MySQL表中的密码.
- 打开你本地或者空间管理后台的phpMyAdmin
- 进入你的magento数据库
- 点击你的magento数据库的管理员用户表admin_user
- 进去后会看到一个表,在表中找到与你管理员用户名对应的那一行,点击前面想笔一样的编辑按钮.
- 找到password字段,把值后面的字符串修改成你想要的密码,然后在函数中的下拉菜单中选择MD5,接着点击执行按钮就OK了。当然,你也可以直接用你已知密码的md5值覆盖替代。例如用admin123这个密码,他的md5值就是0192023a7bbd73250516f069df18b500
- 用这个覆盖你原来的密码的md5值,然后点下面的执行按钮。
- 完成后你就可以用你的新密码admin123登录了。