PubSubHubbub の Movable Type 用プラグインを導入してみた

Google など検索エンジンにちょっぱやで新記事をインデックスして貰う方法の一つに、PubSubHubBub で更新情報を PUSH するというのがあります。

ぱぶさぶはばぶ、と読みます。ひらがなで書いても読みにくいですね。

ともあれ、これに対応してみます。

設定方法

1. MT-PubSubHubbub プラグインを、MTのプラグインディレクトリに投入

miyagawa/MT-PubSubHubbub にあるものです。2009年にアップデートされたっきりですが、大丈夫です。MT6で動いたから。

右下の [Download ZIP] ボタンの先のURLをコピー。

まずは、ターミナルからインスタンスにログイン。 参照:Mac の Terminal で、EC2 のインスタンスにログインする方法 - 非エンジニアがAWSでMT6のブログをセットアップしてみた日記

どこかのディレクトリに、wget でプラグインをダウンロードしてきて unzip。

$ wget https://github.com/miyagawa/MT-PubSubHubbub/archive/master.zip
$ unzip master.zip 
$ ls
MT-PubSubHubbub-master  master.zip

./MT-PubSubHubbub-master/plugins に移動して、chown でPubSubHubBub/ 以下すべてオーナーをwww:wwwに変更します。

で、/app/movabletype/plugins に mv。

作業ディレクトリに残った不要なファイルは任意で片付けましょう。

$ cd ./MT-PubSubHubbub-master/plugins
$ ll
drwxrwxr-x 4 ec2-user ec2-user 4096  2月 26 00:49 2010 PubSubHubBub
$ sudo chown -R www:www PubSubHubBub/
$ ll
drwxrwxr-x 4 www www 4096  2月 26 00:49 2010 PubSubHubBub
$ sudo mv PubSubHubBub/ /app/movabletype/plugins/PubSubHubBub2
$ pwd
/app/movabletype/plugins
$ ls
FacebookCommenters       GoogleAnalytics  MultiBlog         StyleCatcher  WXRImporter     mixiComment
FormattedText            Loupe            PubSubHubBub      Textile       WidgetManager   spamlookup
FormattedTextForTinyMCE  Markdown         SmartphoneOption  TinyMCE       feeds-app-lite

これで、プラグインディレクトリへの配置は完了

2. MT を再起動し、プラグインを設定する

$ sudo /etc/init.d/movabletype restart
Stopping movabletype:                                      [  OK  ]
Starting movabletype:                                      [  OK  ]

こうすると、[ツール] - [プラグイン] に PubSubHubBub のプラグインが出てきます。

plugin.png

PubSubHubbub Hub(s) に、http://pubsubhubbub.appspot.com/ を追加します。

3. ATOM フィードに 1 行追加

atom_template.png

Feed - Recent Entries に <$MTPubSubHubbubLinks$> を追加します。

これで、再構築したら完成!

動作確認

「記事公開後、ちょっぱやでGoogleで検索できるようになった!」と言えるのがベストなのですが、まあ記事公開直後にググっても出てきませんね。Googleでの取り扱いについては、Google マスターツールをさきほど仕掛けたので、今後の記事でも引き続き検証します。

とりあえず今は、記事公開後に、Hub からちゃんとリクエストが飛んできているかを、nginx のアクセスログで確認しました。

log.png

$ cat /data/logs/nginx/access.log | grep pubsub | tail -n 1
[07/Jan/2014:12:32:47 +0000] "GET /atom.xml HTTP/1.1" 200 18172 "-" "AppEngine-Google; (+http://code.google.com/appengine; appid: s~pubsubhubbub-hrd)" "-"

記事更新三秒後にそれっぽいリクエストが来てますね :)

うむ。きょうはこのくらいにしといてやる。