一个客户的网站,在香港服务器开发设计好以后,准备部署到德国服务器。
使用的服务器均为Cent OS系统,配置也大同小异。
软件环境:Ngnix+PHP7.2+Mysql5.6
一切准备工作做得很充分,迁移网站前已经做好了数据库备份和网站程序备份。
网站上传到新服务器以后,配置完成,静态化后增加了多语言插件,优化了一些菜单,一切看起来都很顺畅很正常。
但是,接下来的事情才是真正让人头疼的开始。
首页两个按钮的链接更新后发布首页后预览发现,首页显示不全了。
从某一个地方往下,没了。
然后,刷新后台编辑器后发现后台的那个地方以下的部分也不对劲儿了。再更新发布,直接php报错了!提示某一个函数的参数所包含的数组没了。一大堆Warning!
然后,我就开始排查,我把这个页面复制了,然后裁掉显示不正常的部分,发现上半部分没问题,那个地方如果新增任何内容都无法正常显示。
然后我就找度娘,网上一大堆大神的解决方法,形形色色。我试着各种解决办法,排查。
在我实在没招的时候,我把网站又原原本本重新加压部署了一遍,页面正常了。
但是当我更新那个页面的时候,老问题依旧出现了。
于是我猜测数据库有问题,重新导入数据后,又正常了。然后以为解决问题了以后,修改那个页面并更新后,问题依旧出现了。
于是,我的排查范围进一步扩大,从数据库日志到php日志、再到服务器日志,查了近百个专业文档。问题始终没解决,但是我觉得一定是在数据库读写的时候出错了。
我也没有再导入数据库,我就复制一个页面,测试!
甚至我都给客户说了这个问题存在,准备实在不行就直接重新制作的时候,我想到一个办法,就是新建一个站点,然后创建一个很长的页面,试一下。结果发现这个问题在新站依旧,这就排除了网站自身的问题。
就在我没有办法百无聊赖的时候,翻动着网站后台,脑子突然想起来wp有检测系统健康状态的一些插件。然后就发现主题有一个功能:System Status
点开后,程序开始检测: WordPress Environment 一切正常;
Server Environment 有一项漂红了:“ PHP Max Input Vars: ” 提示系统默认只有1000,可能引起数据截断。功夫不负有心人!我虽然很笨但是我终于找到问题了。然后就找到PHP配置文件,在里面找到这项。这个php版本默认就是1000。我把这个数字改为5000,然后去掉前面的“;”。重启php,问题终于解决了!
我把这个分享出来,希望有一天能帮到哪个小兄弟。