WordPress发布文章失败问题与解决

昨天完成这个博客的升级之后,想着不如顺便搞一搞当前这台服务器的SSL支持、利用CloudFlare提供的免费服务为当前网站开通SSL证书、并启用https协议访问的功能。 CloudFlare提供的免费证书非常容易申请,只要将域名DNS给到CloudFlare托管、便可以直接开启SSL功能。而且配置起来也很灵活、方便。用了不到20分钟,便令当前网站支持了https协议。 但是试用了一阵发现,WordPress出现了一些问题:前台文章访问、阅读等一切功能都正常,但进入后台之后,发布文章或修改文章时,会提示:Updating failed. You are probably offline。 这是因为后台发布文章时,wordpress会在服务器上直接本地调用自身的接口,而它尝试本地调用的使用也是采用https协议。但我并没有在服务器上部署证书、当初偷懒,只在CloudFlare上做了边缘证书。也就是说通过dns解析域名时,会经过cloudFlare进行中转,但在服务器上直接访问时却发现服务器实际上并未真实的支持SSL协议。 解决起来也简单:对wordpress进行一些修改,让它在进行文章发布、更新时,仍然使用http进行访问。不过这样的修改工作量其实远比做一套完整、完备的端到端证书要更加繁琐。而且同样的工作量下,这样一种“修修补补”的方式反而会给自己日后升级blog埋下隐患。 所以,既然服务器的权限完全在自己手里,又能够对apache进行各种配置、调整,就没有必要只做一个边缘证书,而是中规中矩的在CloudFlare中申请一套免费证书、并且下载到服务器上,开通apache的ssl mod,并将证书文件指定好,如此一番操作下来,彻底完成当前web server的端到端加密访问支持。 重启apache服务,一切正常,无论wordpress的前台还是后台功能,就都正常了。 后记:利用CloudFlare提供的免费证书完成服务器的ssl支持,还是非常简单、容易的。我起初对这个流程并不了解,在网上搜索他人教程,发现写的也是五花八门、迂回曲折。但自己真正的一条路走下来,发现整个过程并不复杂,现在想着自己手里还有另外一个小网站也是多年没有维护、还停留在http访问方式上。 待过些日子,对那个网站也做一下SSL的支持,到时将完整的配置过程,逐步截图留存,并写一个step by step的图文,当给同样遇此问题的朋友们参考吧。

Blog升级到了最新版本

这个Blog很久没有更新过了,使用的WordPress也一直停留在5.1.12未曾更新,今天下定决心将它升级一下。 升级的想法我已经动过很多次,但每每想起来,就觉得麻烦。原因是这台服务器上的PHP还是5.6版本,因为WordPress的新版已经需要至少PHP7.1才能安装,所以不得不从基础环境入手,我一直觉得那可能会是非常繁重的工作。 不升级吧心里总是惦记着,升级呢又担心麻烦。今天我终于鼓起勇气,决定大刀阔斧地进行一下升级工作。结果却发现整个过程远比想象的简单,很快就都搞定了。 首先服务器的系统,重新安装了一遍。没有使用自己常用的Ubuntu,而是改用AWS推荐的Amazon Linux。我想既然是跑在AWS上的服务,用他自家的系统应该更好一些吧?而且接下来公司的一些项目可能要用到AWS的服务,提前了解一下Amazon Linux也许是必要的。 其余的LAMP模块都还是中规中矩,直接用包管理器一键安装,很快就都搞定了。 最后将老Blog部署上去,并将WordPress的最新版下载、解压、覆盖、升级,便完成了所有的工作。 以上全部,连40分钟都没到就全都完成了。早知道这么容易,早就该升级才是。 上面的WordPress升级完成之后,我想不如趁热打铁,将另外一个拖欠了很久的工作一并做了吧:给当前的博客增加支持HTTPS访问。 以前要想个人拥有一套SSL证书,是比较难的,主要是因为这个证书资源太贵了,最便宜的一年恐怕也要几百元。如果脱离证书颁发机构自己直接发行一张证书、又完全没有意义——浏览器会提示这个证书并非公信机构发行,这个警告提示一旦显示出来,会让人觉得网站是不是被黑了、效果反而更差。 如今SSL证书的获取相对就比较容易了,有一些机构为了扶持个人网站的发展,提供了免费的证书。例如cloudflare,我就用这个公司对当前博客的域名进行了托管,并且使用他提供的免费证书完成了当前网站对https访问的支持。 不过因为WordPress似乎对https访问的支持存在着一些小的问题,所以这块的工作进展并不是十分顺利,虽然现在磕磕绊绊的算是可以正常访问,但感觉其中还是或多或少存在着一些问题,只待再有时间、再完善吧。