把WordPress从nginx迁移到Apache

By | 2019年12月2日

WordPress做迁移也比较简单,如果新旧服务器配置环境一样,最直接的方法就是整站打包,导出数据库文件,然后在新服务器解压,导入数据库文件即可。
如果新旧服务器配置环境不同,像我之前测试了,PHP+nginx迁移到PHP+Apache,就需要再修改一下配置信息了。
我原来服务器用的是nginx,整站打包和导出数据库,放到新服务Apache环境后,只能打开博客的首页,二级目录、文章这些页面直接404,网上查了下,说是伪静态问题,但具体也没给出直接修改方法,网上的答案都是复制黏贴,像我这种完全没有IT基础的人看得一头雾水。
干脆就自己搞了个.htaccess文件放到新服务器网站根目录下,想不到还真的可以用。
.htaccess配置内容如下:

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

如果网站域名也做了更换,那还需要在数据库里修改替换为新的域名,可以使用phpMyAdmin工具来修改。
登录数据库之后,一般只需要修改wp_options和wp_posts这两个表,把旧域名改成新域名即可。
如果文章比较多,打开wp_posts后,可以表内执行一下SQL命令:

UPDATE wp_posts SET post_content = REPLACE( post_content, '旧域名', '新域名');
UPDATE wp_posts SET guid = REPLACE( guid, '旧域名', '新域名');

多说一点,如果之前用的是LNMP环境的nginx,迁移到宝塔面板的nginx,那还需要在宝塔面板内增加伪静态:

location / {
    try_files $uri $uri/ /index.php?$args;
}

# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

发表评论