こんばんは、ボーノです。
ブログを頻繁に更新している人は、MarsEditを使っている人が多いと思う。
今回は、そのMarsEditでのエラーの解決方法について書いた。
コンテンツ
こんなエラーが出たら
MarsEditからWordPressへの投稿時に、「Post to Weblog Error」というエラーが出る
MarsEditから、投稿やRefreshをしようとすると本エラーが発生してしまった。
全て記述すると、「Can't post for XXX(blog name) because the server reported an error: Unknown Fault.」とある。
Unknown Faultって書いてあるし、かなり厄介そう。
何がきっかけでこれが出るようになったかイマイチ分からず。
最後の投稿以降にやった事と言えば、テーマを変更したのとWordPress4に更新した事くらいかな。
なかなか他に類似の例がなく、解決までに半日くらい要してしまったので、記録として残しておく。
したこと
テーマを変えてみる
ダメ元で、テーマを他のものに変えてみる。
当ブログはstingerの小テーマであるCANDY CRAZYというテーマを使用している。
ここでは、デフォルトのテーマであるTwenty Elevenというテーマに変更してみた。
エラーは相変わらず出る。
Edit Settingの確認
ブログ名をクリックし、「Blog」をクリック。
「General」の「API Endpoint URL」と「Blog ID」を確認。
下記サイトに依ると、API Endoint URLは、http://ブログドメイン/xmlrpc.phpで良いとのこと。
MarsEditを導入して初日でWordPressへの連携につまづいて何とかうまくいった話
Blog IDは、WordPress, Blogger, Movable Type等のCMSに依らず1で良い。
なおこれについては、xmlrpc.php内41行目以降に記述がある。
1 2 3 4 5 6 | </p> <api name="WordPress" blogID="1" preferred="true" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" /> <api name="Movable Type" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" /> <api name="MetaWeblog" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" /> <api name="Blogger" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" /> <p> |
しかし、効果なし。
プラグインの停止
プラグインが悪さをしている事もあるようなので、全プラグインを停止した。
wordpressの管理画面で「プラグイン」をクリックし、全プラグインにチェックをした後に「停止」→「適用」をクリックする。
しかし、これも効果なし。
パーミッションの設定
パーミッションの設定で外部からの書き込みやアクセスが禁止になっていると、MarsEditからの投稿ができない。
改めて、下記コマンドでwordpress内の全ファイルを757(自分とrootユーザは読み書き実行可、それ以外は読みと実行のみ可)とした。
1 | sudo chmod -R 757 wordpress/ |
今回の問題に対してはあくまでxmlrpc.phpに対してのみこの設定をすれば良いと思うが、念のため全ファイルに対して行っておく。
しかし、効果なし!
かなり行き詰まって、、.htaccessを疑ってみる
.htaccessを削除し、成功!
元々は、MarsEditのような外部ソフトから画像を投稿できるように.htaccessに下記記述を記載していた。
1 2 3 4 5 | </p> <files xmlrpc.php> AddHandler application/x-httpd-phpcgi .php </files> <p> |
これについては下記サイト参照。
XREA MarsEdit Upload File Error 画像がアップロードされない
もしやと思ってこれを削除すると、見事エラーが消えた!!
画像もちゃんと投稿される。
WordPress4での仕様なのか、そもそも最初から不要だったのか?
謎は解けないけど、とりあえず直ったからいいか。