MENU

关于wordpress迁移

October 19, 2020 • 阅读: 1329 • 笔记&折腾

在考试前花了时间把服务器迁移了一下,踩了很多的坑,记录一下,相信在不就的将来我还会用得到。

网上有很多迁移的方法,我采用的是最笨的方式,直接手动复制。

将原来的整个网站根目录下的文件复制下来,比如 ".../abaaba.com/" ,复制到目的服务器的网站根目录,".../abaaca.com/" 。

而后进入原服务器的后台,将网站的数据库下载,打包成 .sql 形式,在新服务器新建数据库,然后导入下载的数据库文件。在该数据库中执行以下语句:

UPDATE wp_options SET option_value = replace(option_value, 'old_domain.com', 'new_domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = replace(post_content, 'old_domain.com', 'new_domain.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'old_domain.com', 'new_domain.com');
UPDATE wp_comments SET comment_content = replace(comment_content , 'old_domain.com', 'new_domain.com');

如果新数据库与原数据库的数据名不同,必须在网站根目录中找到 wp-config.php 文件,修改以下内容,内容为新的数据库信息:

/** 数据库名称 */
define('DB_NAME', '名称');

/** 数据库用户名 */
define('DB_USER', '用户名');

/** 数据库密码 */
define('DB_PASSWORD', '密码');

其中 old_domain 是原来的域名,new_domain 是新域名,记住保存数据库的前缀相同,比如这里的 wp_ 要修改为自己原来数据库中的前缀 wpo_ 。


伪静态的问题,有时迁移后无法访问,在新服务器的网站根目录下找到 .htaccess 文件,修改内容:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress

关于首页访问正常,其他页面 404 。

很大部分是因为之前是 https 访问,而且还设置了强制 https 访问,所以必须把新的域名也设置成 http 访问才行。

Last Modified: February 25, 2021
Leave a Comment

已有 1 条评论
  1. Andy烧麦 Andy烧麦

    速度很快呢