WordPress的迁移和反向代理

上一篇文章比较系统地讲了如何将wordpress迁移到apache环境下,特别提到apache能较好地完成web服务器任务,后来想到想在服务器上部署多个服务,并共用443端口,这种环境下较好的解决方案是安装Nginx来做反向代理。

一般web服务的反向代理配置较为简单,但wordpress在设计上有大量的动态代码,同时对内部数据的保护机制,使得它不能直接原位进行反向代理,直接反向代理将不能正确解释文件的链接,也不能正确渲染网站的样式。

所以再写一篇补充文章,简单谈谈wordpress手动迁移到apache的web服务器中,并用Nginx进行反向代理。

一、基础环境的搭建

包括操作系统、apache服务器、sql数据库、Nginx服务器等的安装调试,已在前面文章中有交待,可以参考。

另外需要准备域名和证书。

二、原始数据的打包上传

1、网站数据的打包上传

1.1 将原网站整个目录打包成压缩文件,wordpress.zip。

1.2 将 wordpress.zip 上传到服务器的 /var/www目录下

1.3 解压数据

unzip wordpress.zip

2、数据库的恢复

2.1 在原数据库中,将wordpress数据库导出为wordpress.sql文件

2.2 在原数据库中 新建mydb数据库,并将 wordpress.sql 文件导入其中

2.3 修改mydb数据库中的数据

2.3.1 将options字段中的siteurl和home的值修改为新使用的域名 https://aa.bb.com

2.3.2 将mydb 数据库中的网站链接全部替换为新的域名

update wp_posts set post_content=replace(post_content,'https://xxxxxx.com','https://aa.bb.com');

2.3.3 将 mydb 数据库 导出为 mydb.sql文件

2.4 将 mydb.sql文件 上传到服务器的 /home目录下

2.5 在服务器中新建wordpress数据库,并将 mydb.sql文件 导入其中

mysql
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
use wordpress
source /home/mydb.sql;

三、apache文件修改

1、修改apache2.conf

在其中增加根目录 /var/www/wordpress

2、修改ports.conf

在其中增加侦听端口 LISTEN 12356

3、修改sites-available目录中000-default.conf文件

在其中增加虚拟主机

4、重启apache2

systemctl restart apache2

四、修改网站设置

1、 修改wp-config.php

在define(‘WP_DEBUG’, false);语句之前,插入一段代码

可以参考附录文件的说明。

2、 修改wp-includes目录中functions.php文件

可以参考附录文件的说明。

五、配置Nginx

1、 创建wordpress反向代理配置文件

server

{

  listen 443 ssl;

    server_name aa.bb.com;

    index index.php index.html index.htm;

    root /var/www/wordpress;

    ssl_certificate    /etc/ssl/private/aa.bb.com.crt;

    ssl_certificate_key   /etc/ssl/private/aa.bb.com.key;

    ssl_protocols TLSv1.1 TLSv1.2;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

    ssl_prefer_server_ciphers on;

location / {

           proxy_pass http://aa.bb.com:123456; 

#以下代码使得web服务正确获得wordpress的链接地址

           proxy_set_header X-Real-IP $remote_addr;

             proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;

             proxy_set_header Host $host;

              proxy_redirect off;

      }

}

2、重启Nginx

systemctl restart nginx

六、浏览器中输入 https://aa.bb.com 验证网站能否正确运行。

上一篇文章是先用apache建好网站,并成功运行,是走一步看一步,这次是直接完成所有配置,一次性以反代方式运行网站。

附录:

1、Nginx反向代理实现Wordpress全站HTTPS TLS 1.3支持

2、Nginx使用Https反代WordPress