WordPress迁移中产生的一些问题

前几天,我更改了wordpress的ssl证书生成方式,于是噩梦开始了。
由于我的wordpress是用docker容器搭建的,结果重建容器后,wp-config.php文件也被重置了。看来挂载/var/www/html文件夹是非常必要的。

无限重定向

不知道为什么wordpress为什么不默认支持https,需要在wp-config.php头部添加:

$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

这样就能正常进入网站了。

WP Statistics(统计)插件和评论显示IP错误

一般使用反向代理或CDN后,显示正确的评论IP只需要在wp-config.php头部添加:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
  $_SERVER['REMOTE_ADDR'] = $list[0];
}

然而WP Statistics 12.6.3 中,这个设置并不奏效。我调试了一番后,发现插件获取IP用的既不是REMOTE_ADDR,也不是HTTP_X_REAL_IP,而是HTTP_X_FORWARDED_FOR的最后一个IP。真不知道作者是什么思路写下这种bug。
为了防止作者再写出别的bug,我直接伪造所有IP信息,把上面的代码修改为:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
  $_SERVER['REMOTE_ADDR'] = $list[0];
  $_SERVER['HTTP_X_REAL_IP'] = $list[0];
  $_SERVER['HTTP_X_FORWARDED_FOR'] = $list[0];
}

丢失操作前的文章

谁叫你不勤备份啊!修改服务器前一定要备份。

# wordpress 
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×