亲注册登录道勤网-可以查看更多帖子内容哦!(包涵精彩图片、文字详情等)请您及时注册登录-www.daoqin.net
您需要 登录 才可以下载或查看,没有账号?立即注册
x
wordpress网站搬家除了要把wp-content的文件转移之外,如果碰到数据库设置的变更,就比较麻烦了。在旧空间上,我们的WP是每个站独享一个数据库;在新的主机上由于权限的限制,好几个网站都必须共享一个数据库。解决思路是要在新的空间里给每个WP网站设置不同的prefix,思路很简单,但实际操作的时候还是碰到了不少问题。 第1步 备份wp-content文件夹先把每个旧网站的wp-content文件夹下载下来,分别上传到新主机每个WP网站对应的wp-content。wp-content文件夹包含了所有的插件(plugins文件夹)、主题(themes)以及附件(uploads)。搬家时为了节约时间和服务器空间,用不到的插件和主题都可以不用搬。 第2步 导出旧网站的数据库这里有一个比较简单方法,用插件。这次我选的WP数据库插件是BackWPup,这款插件有一个一件导出数据库的功能,可以把当前WP网站的数据库直接导出到sql文件。 ackWPup的功能其实不止于此,这个插件也稍微有点庞大,不过这次我们就用到这一点,而且只装在旧网站上,新网站不用装,所以不用担心会拖慢速度。 第3步 导入数据库到新的网站上由于新的空间权限实在有限,我所得到的只有单个数据库的用户名和密码,没有root帐号,也没有更多权限。查了一下WP也没有合适的导入数据库插件,而且由于域名变了,就算能直接导入数据会造成网站无法访问。所以要先给新的空间安装一个PHPMyAdmin,可以让我直接操作到数据库。先去官网下载PHPMyAdmin。下载完毕后解压,打开config.inc.php,找到并且修改以下几个变量: - $cfg['Servers'][$i]['host'] = 'domain'; //填入新数据库的URL,对应WP的wp_config.php中的define('DB_HOST', 'domain');
- $cfg['Servers'][$i]['auth_type'] = 'cookie'; //确认认证方式为cookie
- $cfg['UploadDir'] = 'ImportSQLFile'; //如果没有服务器权限,这行必须设置,否则超过8M的数据库你就不能导入了
- $cfg['SaveDir'] = 'ExportSQLFile'; //顺便设置一下导出的数据库存放目录
复制代码设置完这几个变量后,把PHPMyAdmin目录整体上传;上传完毕后再在PHPMyAdmin里建立ImportSQLFile和ExportSQLFile两个空文件夹;
把第2步导出的sql文件上传到新建的ImportSQLFile文件夹中;
通过浏览器登录PHPMyAdmin,输入用户名密码,点开要导入的数据库-import,找到如下选项,导入刚刚上传的数据库: 数据库导入完毕后,刷新页面,就可以看到已经导入的表了。这些表的前缀(prefix)全都是WP默认的“wp_”,由于在这个数据库中我还要放很多个其他WP网站,所以必须给他们修改前缀,用以区分网站。在Structure中给这些表都打勾,然后选“replace table prefix”,修改完毕后再刷新页面,这些表的前缀就修改完毕(用不着一个一个的重命名)。 修改完表名后,还要给数据库执行一遍以下命令,用来刷新表内数据的的prefix相关内容: - //为以防万一,建议先备份数据库
- UPDATE `prefix_usermeta` SET `meta_key` = REPLACE( `meta_key` , 'wp_', 'prefix_' );
- UPDATE `prefix_options` SET `option_name` = 'prefix_user_roles' WHERE `option_name` ='wp_user_roles';
- //注意要替换这两行命令中所有的prefix_为你的实际的前缀
复制代码如果不执行这两句SQL命令,登录WP后台会出现这样的提示:You do not have sufficient permissions to access this page. 第4步 修改域名如果新网站的域名和旧网站不同,还需要再登录PHPMyAdmin,找到prefix_opition表(注意前缀是前面修改过的),打开这张表,编辑siteurl和home这两条数据的option_value为新的WP的URL
或者直接执行这两条SQL也可以: - UPDATE `prefix_options` SET `option_value` = 'url' WHERE `option_name` ='siteurl';
- UPDATE `prefix_options` SET `option_value` = 'url' WHERE `option_name` ='home';
- //注意要替换这两行命令中所有的prefix_为你的实际的前缀,替换url为新网站的实际url(加http://)
复制代码如果新网站的域名和旧网站相同,则要去域名的控制面板修改DNS到新主机的IP,在主机控制面板加入绑定的域名,等上10分钟,一般就跳转完成了。 第5步 修改所有文章和变量中存在的旧域名(可选)如果网站旧域名保留的话,这一步可以不做。但如果旧的域名失效,这一步就不能跳过了。运行SQL: - UPDATE `prefix_postmeta` SET `meta_value` = REPLACE( `meta_value` , 'oldURL', 'newURL' );
- UPDATE `prefix_posts` SET `guid` = REPLACE( `guid` , 'oldURL', 'newURL' );
- UPDATE `prefix_posts` SET `post_content` = REPLACE( `post_content` , 'oldURL', 'newURL' );
- UPDATE `prefix_options` SET `option_value` = REPLACE( `option_value` , 'oldURL', 'newURL' );
- UPDATE `prefix_termmeta` SET `meta_value` = REPLACE( `meta_value` , 'oldURL', 'newURL' );
- UPDATE `prefix_usermeta` SET `meta_value` = REPLACE( `meta_value` , 'oldURL', 'newURL' );
- //注意要替换这两行命令中所有的prefix_为你的实际的前缀,替换oldURL/newURL为旧/新的域名。
复制代码2017/7/23更新:
在最近一次搬运网站文件到新服务器的过程中,我偷懒没有新建FTP用户,而是在FTP工具内直接用SSH登录方式上传了所有网站文件。结果发现WordPress后台无法升级插件,也无法上传任何文件,权限出了问题。在搜索了一圈后,原来用SSH上传的文件,并不属于www用户组,因此就没有办法通过网站去修改、上传文件。在putty中执行以下命令解决了问题: 2022/2/19更新
如果你使用Yoast seo插件,在数据库里会留下大量带有旧站URL的字段,需要批量转换一下: - UPDATE `prefix_yoast_indexable` SET `permalink` = REPLACE( `permalink` , 'oldurl', 'newurl' );
- UPDATE `prefix_yoast_indexable` SET `twitter_image` = REPLACE( `twitter_image` , 'oldurl', 'newurl' );
- UPDATE `prefix_yoast_indexable` SET `open_graph_image` = REPLACE( `open_graph_image` , 'oldurl', 'newurl' );
- UPDATE `prefix_yoast_indexable` SET `open_graph_image_meta` = REPLACE( `open_graph_image_meta` , 'oldurl', 'newurl' );
- UPDATE `prefix_yoast_seo_links` SET `url` = REPLACE( `url` , 'oldurl', 'newurl' );
复制代码如果你用了WPML多语言插件,在前端的CSS引用地址也不会随着站点URL的更新而刷新,需要到后台的 WPML-语言-自定义语言切换器 位置重新点击保存一下,前端样式表才会更新为新的地址。 这样就可以了
道勤主机提供365天*24小时全年全天无休、实时在线、零等待的售后技术支持。竭力为您免费处理您在使用道勤主机过程中所遇到的一切问题!
如果您是道勤主机用户,那么您可以通过QQ【792472177】、售后QQ【59133755】、旺旺【诠释意念】、微信:q792472177免费电话、后台提交工单这些方式联系道勤主机客服!
如果您不是我们的客户也没问题,点击页面最右边的企业QQ在线咨询图标联系我们并购买后,我们为您免费进行无缝搬家服务,让您享受网站零访问延迟的迁移到道勤主机的服务! |