Mr. Panda
Tech For Fun

[Wordpress] Wordpress 迁站所遇到的问题集锦

之前在建立站点的时候没有进行过当的优化,现在遇到一些情况需要迁移站点。在将 wordpress 迁移到新的云服务器时遇到了一些问题,现将遇到的问题和解决方法记录如下。总结一些,迁移完毕我最大的感受就是千万不要随意升级 wordpress版本、插件、主题等,你可以利用插件来禁用这些更新,虽然这样于安全不利,但是可以避开很多坑。找到一个比较舒适的站点维护的方法,然后坚持下去。

先总结一下迁站的基本步骤:

  1. 备份旧站点
  2. 搭建 wordpress 建站环境(mysql、nginx、php、wordpress、phpmyadmin等),需要用到 ssh (xshell)、ftp (filezalla)、rz、vim 等工具。
  3. 运行 mysql、nginx 服务,nginx 解析 php 文件。
  4. 恢复 mysql 数据库,恢复 wordpress 资源,包括插件、主题、配置。
  5. 优化站点运行速度、配置 cache、nginx 解析固定链接、SEO 等。

备份站点内容

备份站点常用如下方法:

备份数据

  • 从 phpmyadmin 中导出数据库为 sql 文件。 

备份 wordpress 资源

  • 将 www 目录下的全部文件资源直接打包。

搭建wordpress环境

  1. 安装 mysql 数据库,创建 wordpress 库。
  2. 安装 nginx 配置 http 服务。
  3. 下载 phpmyadmin 到 www 目录,安装 php 环境 ,配置 nginx 解析 php 。
  4. 在 phpmyadmin 中导入 sql 文件,恢复数据库。
  5. 将备份的 wordpress 文件恢复到 www 目录。
  6. 重新配置启用主题、插件、升级资源等。 

参考文章:

站点自定义样式

注意:自定义站点样式不要直接改主题样式文件,可以在自定义 -> 自定义样式中进行修改。

分类和标签丢失

搭建过程中出现了文章分类和标签丢失的情况,经查询发现 term 相关的数据表数据没有恢复进行,重新回复无果,问题原因还不明确。好在 localhost 中还有相关的表数据,只好单独恢复这些表数据。

经查询,这种情况与我遇到的情况不符:

WordPress分类目录、标签丢失问题的解决方法

开启nginx gzip 压缩

在/usr/local/nginx/conf/nginx.conf 中配置如下内容:

server{
    gzip on;
    gzip_buffers 32 4K;
    gzip_comp_level 6;
    gzip_min_length 100;
    gzip_types application/javascript text/css text/xml;
    gzip_disable "MSIE [1-6]\."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
    gzip_vary on;
}

参考:nginx中如何设置gzip(总结)

配置 nginx 固定链接

在 WP Super Cache 配置页面缓存时,不能使用 wordpress 默认的固定链接配置,这是需要修改固定链接配置,同时修改 nginx 配置。

修改 nginx 配置如下:

server {
    listen       80;
    server_name  www.chaichunyan.com;

    access_log  /var/log/nginx/access.log  main;

location / {
        root /www/data/xxx;
        index  index.php index.html index.htm;

        if (-f $request_filename/index.html){
               rewrite (.*) $1/index.html break;
        }
        if (-f $request_filename/index.php){
               rewrite (.*) $1/index.php;
         }
        if (!-f $request_filename){
               rewrite (.*) /index.php;
         }
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

    location  ~ \.php$ {
        root /www/data/xxx;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

开启静态页面的缓存, wp super cache 的使用

参考:最佳 WordPress 静态缓存插件 WP Super Cache 安装和使用(转)

古登堡编辑器打开页面时提示未知错误

原因是 SEO 插件 Yoast SEO 引起的,只能暂时将之禁用。之后再考虑 SEO 的问题。

文章的图片使用绝对路径导致迁站后无法显示

这个问题开始以为是 get_attachment_url 的问题,按照网上的方法修改 siteUrl  无果。仔细排查发现是图片地址有问题,图片的域名是原来的域名,现在只有一个方法了,那就是对数据库的posts中的图片地址做批量修改。

修改方法如下,在phpmyadmin中执行如下命令:

UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.***.com/', '/')

这里顺便就把图片的地址改成了绝对路径,虽然做么做对 SEO 不是很友好,但是这样对于以后需要迁站还是有好处的。

当然,这些sql语句也可以使用工具生成:wordpress 更换域名工具

更改 post 的主题样式

  1. 借助于markdown的主题样式进行修改,可以参考:https://theme.typora.io/。下载一个喜欢的主题进行修改。
  2. 上传至远程主机的www站点下的wp-content/themes/主题路径中。

解决 mac ssh 链接心跳中断的问题

参考:解决mac下ssh空闲一段时间自动断开的问题

ssh卡顿还经常掉线?试下mosh吧!

解决 mac rz 无反应的问题

参考:Mac osx 下安装iTerm2,并使用rz sz上传下载(附homebrew配置)

google font  无法访问,导致页面加载缓慢?

安装 Self-Hosted Google Fonts,这个插件会将google fonts 缓存到本地服务器中。

古登堡编辑器无法插入代码?

安装 Code Syntax Block 插件,支持修改代码高亮、选择语言和主题。

jonsam ng

jonsam ng

文章作者

海阔凭鱼跃,天高任鸟飞。

[Wordpress] Wordpress 迁站所遇到的问题集锦
之前在建立站点的时候没有进行过当的优化,现在遇到一些情况需要迁移站点。在将 wordpress 迁移到新的云服务器时遇到了一些问题,现将遇到的问题和解决方法记录如下。总结一些,迁移完…
扫描二维码继续阅读
2021-05-02