[WordPressメモ]Googleに素早くインデックスしてもらうプラグインPubSubHubbubとPuSHPress。
PubSubHubbubというグーグルに素早くインデックスしてもらうための仕組みがあるのですが、これをWordPressにサポートさせるためのプラグインがPubSubHubbubとPuSHPressです。
どちらも、インストールして有効にするだけで機能するので好きな方を使えばいいのですが、実は最初私は、PubSubHubbubをインストールしました。ところが問題が発生。
過去記事を更新しようとしたところ、更新ボタンを押した後畫面が真っ白になる問題が発生。PubSubHubbubをインストールしてしばらくしてからだったので、最初はPubSubHubbubが原因だと気が付きませんでした。
その時は放置して、サイト自体は動いているのでその記事だけだろうと思い、特に問題視しませんでした。ところが、書いたばかりの記事も更新しようとしたら、同じように画面が真っ白になって更新できない現象が発生。これはまずいということで、調査を開始。
WordPressをデバッグモードにして、ログを取ってみたところ
[20-Sep-2014 15:18:45] PHP Fatal error: Call to undefined function curl_init() in /home/hogehoge/public_html/example.com/wp-content/plugins/pubsubhubbub/publisher
というログが目に入りました。
PHP Fatal error: Call to undefined function curl_init()
どうやらcurlを初期化しようとして、「ナイヨ!致命的なエラーな!」と止まってしまっているようです。
wp-content/plugins/pubsubhubbub/publisher
で、原因となるプラグインはPubSubHubbubであると…。
調べてみると、phpでcurlが使えるようになっていないといけないようで、
<?php phpinfo(); ?>
で調べてみると、見事に–with-out-curlでコンパイルされていました。PubSubHubbubは使えないということになります。
yumでphpをインストールしているので、ソースをリビルドというわけにも行きません。探してみるとyumでremiを有効にしてphpをインストールするとcurlが有効になったものがインストールされるようですが、PubSubHubbubのためだけにそこまでの冒険をする気には慣れませんでした。
他にもPubSubHubbubと同じ機能のPubSubHubbubをサポートしたプラグインがあるのではないかと探してみたところPuSHPressというのがあることがわかりました。
試しに入れてみました。
で、記事を更新してみると…。ちゃんと更新出来ました。どうやらcurlを使っていないようです。
一応確認の為にPubSubHubbubとPuSHPressのソースにgrepを掛けてみたところ、PuSHPressの方にはcurlという単語は見つかりませんでした。つまり、curlを使っていないようです。
そういうわけで、phpをアップグレードするという冒険をしないで解決することが出来ました。
同じように、PubSubHubbubをインストールしてハマった方は、PuSHPressの方を試してみてください。
追記:2014.10.30
–with-out-curl でも
/etc/php.d/curl.ini
; Enable curl extension module
;extension=curl.so
のコメントを外して
; Enable curl extension module
extension=curl.so
とすれば、いけるっぽい。
タグ : curl, PubSubHubbub, PuSHPress, WordPressメモ