这两天花了不少功夫在PHP升级的事儿上。首先这事儿得从俺学习架设Twitter客户端说起。
前些天在网上逛的时候突然看到推特客户端源码。于是就想自己弄个来玩。虽然不对公众开放,但想看着它如何跑起来,如何实现推。于是就下载源码搭建。以为很简单,但跑起来的时候提示服务器不支持Json。而那套源码里说明了需要支持这玩意儿。网上搜了半天发现是我服务器上的PHP版本太低。至少要5.2以上才能支持。不然咋弄都没辙儿。好吧。那升级吧。
是啊。我服务器上跑的5.1.2已经几年了。我用这版本不太稳定,偶尔还会出点错,把应用程序池搞崩溃,内存位置失效等说不清的问题。这次升级就顺便把这个BUG也解决啦叭。凭弄了几年服务器的经历。升个PHP不算啥。三下五除二,升到5.2.13了。非常新地版本。程序也跑起来了,原来的BUG也木有啦,挺爽。这还只是开头。
这周没啥时间更新博客。昨天写了一篇,发送失败。我写博客是用的离线客户端WLW。写完了再通过xmlrpc接口发送出去。不料提示发送失败。找原因:好像是文中有较大的图片时就报这个错。
因为写完BLOG已经很晚,没来得及解决就睡觉去啦。今天大早起来,精神不错。于是又写了篇:mouseflow:超级页面鼠标跟踪器,然后又发送失败。抽儿了。上网搜,到底啥原因。结果出来的全是WP用户的解决方案,其中有项说要打开php.ini里的一项参数:always_populate_raw_post_data。我想是不是我升级了PHP后配置文件也跟着变啦。找到它,果真。这参数是关着滴。
上服务器,去php.ini里改成ON。回来再试,报同样的错误。接着抽……后来经过无数次上传图片试出来:大于72K的图片,都传不上去。想起是不是上传大小限制的事,也不对。快疯啦。用最原始的方法好啦:
反正这问题是在升级PHP版本后发生的。那把版本降回去试试。还好我保留了原来的5.1.2副本。用它换掉5.2.13,再用WLW发日志,OK啦!
出去吃饭……
晚上回来接着倒腾。问题出在版本上,我不一定要求跑最新的5.2,只要能让我的BLOG发文章正常就行。从5.2.13以下的版本开始降级测试。一直测到5.2最初版,问题都一样。其中下载版本无数,重启HTTP服务无数次……累趴下。
谁让我不是用的主流的WP啊?我支持国产,而且Bo-blog也不差。虽然很久没升级啦,这样也好啊,省了我不少升级调试的时间了。想到这里心情总算好受一点。
又开始到网上狂翻。尝试了N多方法,都以失败告终。一个xmlrpc怎么这么难捏?N个小时以后找到了切确的答案:PHP5.2版的很多改进,造成HTTP_RAW_POST_DATA无法正常的赋值,因此会导致XMLRPC服务无法获取客户端提交的数据。看来必须用新的xmlrpc接口文件才能搞定了。去bo-blog官方并没有找到新的版本。
最后终于觉悟:在没有新版xmlrpc接口文件的前提下,要使WLW发日志正常,还只能用5.2以下的版本了。于是只好牺牲掉对Json的支持了。现在许多PHP程序都需要这玩意,比如新版的PHPmyAdmin。也好也跟着放弃掉了。
剩下最后的一点收获:把用了几年的5.1.2小升到了5.1.6,解决了对应用程序池不稳定的问题。截稿!
分享按钮
mouseflow:超级页面鼠标跟踪器
YUANOS:又见国产WebOS

