Emacs XML-RPC登录WordPress报错request 500

Clloz · · 2,014次浏览 ·

前言

一直想尝试在 emacs 里面写博客并上传到 wordpress,其实并不方便,主要是折腾 emacs。一般实现这个功能是用 org2blog 这个插件,以来插件是 xml-rpcmetaweblog,之前就试过,但是在配置完之后,每次调用 org2blog/wp-login 方法都会报错 request 500,后来就放着没搞了。前两天又想到这个问题,留着问题解决不掉总是让我浑身难受,于是花了点时间搞了这个问题。

问题解决过程

其实这个问题我最开始就搞错了方向,我一直以为是 emacs 的配置出了问题,拼命在谷歌上搜索 org2blog request 500 相关的问题,在 org2blogGitHub issue 里面也有两个相同的问题,不过都没什么参考价值。其实我搞错方向还钻进牛角尖完全是因为我对 emacs 的配置所知甚少,几乎是盲人摸象的状态,就一直以为是 emacs 的问题,而且我还是使用的 spacemacs 一大团配置,更加迷糊,一直在找是不是插件依赖或者插件加载的问题,结果当然解决不了问题。manateelazycat说的确实不错,想要真的成为一个 emacs 使用者,必须把痛苦的路走完,学好 elisp 并且一点一点从零配置,真的理解这个伪装成编辑器的操作系统才能得心应手地使用,否则永远陷入不停地被 bug 和报错搞得云里雾里的,那样完全提高不了生产力,而成了自己的掣肘。只有搞懂 elisp ,知道 emacs 是如何工作的,自己写写插件,才能真正让这个牛逼的工具提高你的生产力。其实说到底,学任何东西都是这样的,质胜于形,道胜于质,真正的原理往往都是大道至简的,只是求道的路不好走,看你愿不愿意花功夫了,如果只是停留在表面,是没法搞出好的东西的。其实有时候被 bug 搞得云里雾里浪费的时间不如花时间把原理搞懂,磨刀不误砍柴工,而且那种拨云见日的感觉真的是很痛快的。

扯远了,后来我意识到不是配置的问题,于是把注意力转向了 server,于是想看看 log,开始我想的是看 apachelog,后来想象不对,应该是 wordpresslog,但是 wordpresslog 默认是不开启的,这就引出今天的主题了。

开启 wordpress 的 debug

我是建议大家安装 wordpress 的时候就把 debug 开启,一方面是方便自己找到问题,另一方面自己开发插件的话,这也是必须要开启的。开启的方法其实非常简单。在根目录的的 wp-config.php 文件中修改下面的内容。

define('WP_DEBUG', true);
define( 'WP_DEBUG_LOG', true );

现在在 wp-content 文件夹中就会出现 debug.log 文件,我们的错误信息都会被输出到里面。这时候再在 emacs 中登录一次就能够在 debug.php 里面看到错误信息了,结果是我使用的一个 markdown 编辑器中有一个文件使用 include 的类在 new 的时候类名前面没有加反斜杠,加上之后问题就解决了。可以看到其实是个很简单的问题,如果钻进牛角尖,搞错方向,也可能会浪费很多时间。

反斜杠 \php 5.3 中的一个含义是命名空间分隔符,可以理解为路径,只有一个反斜杠的时候表示全局命名空间。

总结

遇到问题的时候还是要冷静思考,把问题好好分析一下,不然很可能搞错方向南辕北辙。当然最重要的是不断提高自己的知识面,经验丰富了自然解决问题就快了,如果啥都不懂,解决问题当然就像盲人摸象,找不到症结所在,我讨厌这种乱打乱撞的感觉,唯一地解决办法就是不断学习不断提高。另外给自己定个小目标,明年上半年找一个月把 elisp 搞熟。然后从零开始搞懂 emacs,朝一个 emacs 高手努力,让 emacs 成为自己的一个有力的生产力工具。


Clloz

人生をやり直す

发表评论

电子邮件地址不会被公开。 必填项已用*标注

我不是机器人*

 

00:00/00:00