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

先总结一下迁站的基本步骤:
- 备份旧站点
- 搭建 wordpress 建站环境(mysql、nginx、php、wordpress、phpmyadmin等),需要用到 ssh (xshell)、ftp (filezalla)、rz、vim 等工具。
- 运行 mysql、nginx 服务,nginx 解析 php 文件。
- 恢复 mysql 数据库,恢复 wordpress 资源,包括插件、主题、配置。
- 优化站点运行速度、配置 cache、nginx 解析固定链接、SEO 等。
备份站点内容
备份站点常用如下方法:
备份数据
- 从 phpmyadmin 中导出数据库为 sql 文件。
备份 wordpress 资源
- 将 www 目录下的全部文件资源直接打包。
搭建wordpress环境
- 安装 mysql 数据库,创建 wordpress 库。
- 安装 nginx 配置 http 服务。
- 下载 phpmyadmin 到 www 目录,安装 php 环境 ,配置 nginx 解析 php 。
- 在 phpmyadmin 中导入 sql 文件,恢复数据库。
- 将备份的 wordpress 文件恢复到 www 目录。
- 重新配置启用主题、插件、升级资源等。
参考文章:
- 在CentOS 7上搭建WordPress;
- Centos下安装配置WordPress与nginx教程;
- Linux centOs 7 升级php版本;
- CentOS 7升级php5.4到php7.2;
- CentOS 7 配置 nginx php-fpm 详细教程;
- wordpress 安装资源提示登陆 ftp 的解决办法;
站点自定义样式
注意:自定义站点样式不要直接改主题样式文件,可以在自定义 -> 自定义样式中进行修改。
分类和标签丢失
搭建过程中出现了文章分类和标签丢失的情况,经查询发现 term 相关的数据表数据没有恢复进行,重新回复无果,问题原因还不明确。好在 localhost 中还有相关的表数据,只好单独恢复这些表数据。
经查询,这种情况与我遇到的情况不符:
开启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 固定链接
在 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 的主题样式
- 借助于markdown的主题样式进行修改,可以参考:https://theme.typora.io/。下载一个喜欢的主题进行修改。
- 上传至远程主机的www站点下的wp-content/themes/主题路径中。
解决 mac ssh 链接心跳中断的问题
解决 mac rz 无反应的问题
参考:Mac osx 下安装iTerm2,并使用rz sz上传下载(附homebrew配置)
google font 无法访问,导致页面加载缓慢?
安装 Self-Hosted Google Fonts,这个插件会将google fonts 缓存到本地服务器中。
古登堡编辑器无法插入代码?
安装 Code Syntax Block 插件,支持修改代码高亮、选择语言和主题。