初めまして。マイと申します。
HostGatorというサーバーで、WordPressを使い
恋愛ネタを書くサイトを運営しているのですが、
リモート投稿API(xmlrpc.php)を使い、
記事投稿しようとしたところ、サーバー側で
何らかの制限がかかり、投稿ができません。
サーバーの設定方法をご存じの方、
どうかお知恵を貸して頂けないでしょうか。よろしくお願いします。
作成したAPI投稿プログラムの他、これまでの対応内容を記載します。
■利用したいAPI投稿プログラム
WSH(VBScript)による投稿プログラムのソースコードです。
※ログインIDとパスワードは伏字にしてあります
https://docs.google.com/document/d/15ND6FM5UvI3Iz0vp8gbcstqc8385bJX-Xw4-11_aUHc/edit?usp=sharing
ソースをメモ帳にコピペしてtest.vbs等の名前で保存し、
ダブルクリックで投稿開始します(Windows環境のみ)
■正常動作する場合、
自分のローカル環境(XAMPP、InstantWordPress)、および
ロリポップサーバに設置したWordPressでは正常動作します。
投稿完了すると、下記の応答が帰ってきます。
lang
1<?xml version="1.0" encoding="UTF-8"?> 2<methodResponse> 3 <params> 4 <param> 5 <value> 6 <string>***</string> 7 </value> 8 </param> 9 </params> 10</methodResponse>
なお、<string>***</string>の部分には、
WordPress側で自動作成された、
投稿記事ID(121,122,123等)がセットされます。
■HostGatorでの応答
HostGatorに設置したWordPressでは、
下記の応答が帰ってきて、投稿ができません。
lang
1<html> 2<head> 3<title>Not Acceptable!</title></head> 4<body><h1>Not Acceptable!</h1> 5<p> 6An appropriate representation of the requested 7resource could not be found on this server. 8This error was generated by Mod_Security. 9</p> 10</body></html> 11
■これまでに行った対応
・まず最新版のWordPressを再インストールし、プラグインを全て停止しました。
・下記URLで、HOSTGATORでXMLRPCが利用可能な事を確認しました。
http://support.hostgator.com/articles/php-modules
・functions.phpに、xmlrpc.phpの動作を停止させるような
コードの記載が無い事を確認しました。
・サーバー管理画面で、「xmlrpc.php」の
パーミッションが「755」である事を確認しました。
・他にXMLRPCを用いたソフトの動きを確認するため、
Microsoft Live Writerをテスト導入したところ、
正しく投稿できるようなので、XMLRPC自体は利用可能と思われます。
(ただし、後述の別のXMLRPCアプリであるJETPACKは、
当方と同じエラーが出て動作していません)
・MOD_SECURITYの停止
WordPress設置フォルダ直下の「.htaccess」に下記を記載しました。
lang
1#Disable MOD_SECURYTY 2<IfModule mod_security.c> 3SecFilterEngine Off 4SecFilterScanPOST Off 5</IfModule>
なお、一部の海外ブログで、HostGatorは
MOD_SECURITYのバージョンが2.0系との
記事を見かけたので、こちらも試してみました。
lang
1<IfModule mod_security2.c> 2SecRuleEngine Off 3</IfModule>
しかしこちらの2.0系の設定にした場合は、
「Error 500 Internal Server Error」が発生し
WordPressサイト全体が表示されなくなるので、
上記の1.0系の記載に戻しています。
・xmlrpc.php、POST送信のアクセス許可設定
WordPress設置フォルダ直下の「.htaccess」に下記を記載しました。
lang
1#Allow file access 2<Files xmlrpc.php> 3Order Allow,Deny 4Allow from 192.168.**.** 5Deny from all 6</Files>
※アスタリスク「*」は、私のPCのIPを記載しています。
■現在の状況
ここまで設定したところ、
サーバーからの応答は下記のような 403 Forbidden エラーを示す
HTML文書がエラーとして帰っています。(長いのでGoogleDocで)
https://docs.google.com/document/d/1QM5YtOXANXclgOUGIVGX6CIGSPsvH8mrwYxGSTkAqyQ/edit?usp=sharing
また、調査の一環で、XMLRPCを利用した別の外部アプリとして有名な、
JETPACKをテスト導入したところ、こちらも動作せず、
私のAPIテスト投稿WSHと同じく、403エラーが発生しているようでした。
下記のJETPACKテストサイトに、
http://jetpack.me/support/debug/
私のサイトのURLを入れると、403エラーの表示が出ました。
http://nugasekake.motewaza.net/
これらの他、海外のフォーラムやサイトをあたりましたが、
私の検索力ではこれ以上の対応策は見つけられず、
HostGatorサポートへのメールも出しましたが
パーミッション変更してみたら、といったFAQコピペが来るだけで、
解決にはいたらず、困り果ててしまいました。
「こういう設定を試してみたら?」とか
「このコードは間違ってるよ」とか
何かヒントがあればご享受頂きたいです。
どうぞ、よろしくおねがいいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/18 12:38