カテゴリー : Web

WP-DBManager のメール文字化けを解消する

一日安静だーといいましても、一日中寝ていることもできないものなので、ネットしたりしながらゴロゴロとしているのですが、「wp-dbmanger 文字化け メールタイトル」だなんてクエリで検索があったので、そういえば気持ち悪かったものがひとつあったと思いだし、ちょっと直してみることにしてみました。

つい先日にもご紹介した、 WordPress のデータベースを自動でバックアップ・メール送信までしてくれる素敵すぎるプラグイン「WP-DBManager」ですが、やはり海外で作られたプラグインだけあって日本語のことなんかは考慮されていないつくりになっています。Gmail などで見れば問題はないようなのですが、ぼくが自宅で使用しているメールクライアント「Becky!」でバックアップメールを受け取ると、差出人と件名が壮絶に文字化けしてしまいます。

mojibakemail.gif
↑ こんなかんじ

ファイル自体は正常なのですが、メールボックスに化けに化けた件名のメールが溜まっていくにつれて、気持ちが悪いというかイライラしてきます。

原因自体は単純で、メールヘッダの From と Subject に WordPress の get_bloginfo(‘name’) (ブログ名)が指定されているからで、日本語が含まれたタイトルで運営しているとエンコードの都合で問題が出てしまうだけです。修正の方法も簡単でした。


$mail_subject = sprintf(__(‘%s Database Backup File For %s’, ‘wp-dbmanager’), get_bloginfo(‘name’), $file_date);
$mail_header = ‘From: ‘.get_bloginfo(‘name’).’ Administrator <’.get_option(‘admin_email’).’>’;

db-manager.php の 94,95 行目と database-manage.php の78,79 行目にある上記のコードから、メールの Subject, From 部分をメールヘッダ用にきちんとエンコードするべく、以下のように置き換えてあげるだけ。

$mail_subject = sprintf(__(‘%s Database Backup File For %s’, ‘wp-dbmanager’), get_bloginfo(‘name’), $file_date);
$mail_subject = mb_encode_mimeheader($mail_subject,”UTF-8″,”B”);
$mail_header = sprintf(‘From: %s Administrator <%s>’, mb_encode_mimeheader(get_bloginfo(‘name’),”UTF-8″,”B”), get_option(‘admin_email’));

mailmojibake2.gif
なおりました。:D

これでWP-DBManager を日本語化していようがいまいが、 どちらでも正常に表示されるはずです。

あくまでぼくの借りている CORESERVER 上でしか試していないので必ず直ります!とはいえませんが、 同じ問題でお悩みの方。一度おためしください :-)

CORESERVERでWP-DBManagerを動かすために

起きたらなぜか三時だった。

二度寝しようにも目がさえて眠れないので、摩訶不思議な状態に陥いり前々から気持ち悪く思っていた問題を解決することにしてみました。

WordPress のプラグインのひとつに、データベース内のデータをバックアップ、 リストア、バックアップしたデータをメールで自動送信ができるというすばらしいプラグイン「WP-DBManager」というものがあるのですが、このサイトが動いている CORESERVER ではデフォルト状態だと設定後に手動でのバックアップはできても、肝心のメール配信機能で 0byte のファイルが送られてきてしまうという問題が発生します。

これはどうも「そんな処理できねーよ!」というサーバー側からの無言の抵抗のようで、このメール自動配信機能は cron として処理する部分である以上、CORESERVER で……というよりも XREA 系のサーバーで動かすには、PHP を CGI として動作させる必要がでてきてしまうようです。

別にそうすりゃいいじゃないというお話でもあるのですが、CORESERVER のサーバーヘルプに書かれている説明だと『モジュール版PHPに比べて、動作が遅くなる。負荷が掛かる。』とあり、重くなるんかよウゲゲーと感情的に嬉しくありません。早いほうがいいですよね!

ルートに「AddHandler application/x-httpd-phpcgi .php」と書いた .htaccess を置けば実に簡単に解決するのですが、これだと全体がそう処理されてしまうわけですから、前述の負荷云々で問題が出そうです。

かといって、CGI として動作させないことにはどうにもなりません。そこで今回、その被害(?)を最小限に食い止める方法をご紹介してみます。

方法はいたって簡単。WordPress のルートフォルダに .htaccess を設置もしくは追記してあげるだけ(たぶん mod_rewrite がらみのものがあるので、追記になるはず)!

<files wp-cron.php>
AddHandler application/x-httpd-phpcgi .php
</files>

要は WordPress の cron 部分を担当しているファイルだけを指定してやるだけです。ひとまずこれでメールの 0byte 問題は解決。負荷 pt なんかもそんなに上がらないんじゃないかなーと踏んでいます。

お困りのかたは是非どうぞ、と言いたいところですが、ぼくも今し方、書き換えたばかりのものなので他にやっぱり問題が出るかもしれないというところは、念頭に置いていてくれると助かります :-)

おっと、ちなみに CORESERVER の mysql と mysqldump のパスは


mysqldump : /usr/local/mysql/bin/mysqldump
mysql : /usr/local/mysql/bin/mysql


となります。

WordPress 2.3.3

WordPress 2.3.3 は緊急のセキュリティリリースです。とても巧妙なリクエストによって、有効なユーザー権限を持つ者なら誰でも同一ブログ上の他のユーザーの投稿の編集ができてしまうという弱点が、私たちの XML-RPC の実装に見つかりました。

WordPress | 日本語 (2008-02-06)

日本語版もさきほどダウンロードできるようになったようです。

新しいバージョン大好きセキュリティリスクがあるのを放置しておくのもなんなので、サクッと 2.3.3 にアップデート。旧バージョンをご利用のかたはご注意!

サーバーの負荷が急に上がってしまったヨ

契約しているホスティングサービス「CORESERVER」さんですが、管理ページ上からCPUなり転送量なり、どの程度の負荷があるのかをポイントとして確認することができます。

ここ数日、投稿時もサーバーエラーが出たりと割と難儀していたこともあり、久しぶりに管理画面を見てみると、これまではずっと負荷状況的に問題がなかったところ(負荷率 0 ポイント)が 2/2 以降に急上昇。

問題になった 2/2 頃に導入したプラグインといえば、

ぐらいでしょうか(結構入れてるな!)。

このどれかが悪さしているというのも考えづらく、色々と原因を探ってみたところ、プラグイン「Smart Archives」を利用して生成しているアーカイブページでのクエリ数が異常に多いことに気がつきました。他のページなら、およそ30程度なのですが、アーカイブのみ 120 を越える勢いでクエリを発行している模様。

これはなんだろう。このページに Google の bot なりがガツガツやってきた影響で CPU 負荷が上がってしまったとか、そういうオチだったりするのか、たぶんそうだろう、そうであって欲しいと「アーカイブ」ページの一覧生成に利用していたプラグイン「Smart Archives」を急ぎ撤去し、同機能(むしろこっちのが高機能)な「wp-mosquito」に入れ替えました。

今のところ、実際にこれで負荷が収まってくれるかは分からないのですが、ちょっと一ページで吐くクエリとしては異常だと思われるので、同プラグインを利用されている場合にはちょっと注意が必要、かもしれません。一応、理由をサポートに問い合わせているところでもあるので、はっきりとした原因が分かった際にはこちらでもお知らせします。

ちなみに一ページごとにどれぐらいのクエリ、処理速度がかかっているのかは、WordPress のデフォルトテーマにもある以下のコードをテーマのフッタにでも挿入しておけば、いつでも確認することができます。

カスタムテーマを使用しているかたも、そっと挿入しておいてみてはいかがでしょーか。

<!– <?php printf(__(‘%d queries. %s seconds.’, ‘kubrick’), get_num_queries(), timer_stop(0, 3)); ?> –>

「’(シングルクォーテーション)」が全角になっているので挿入時には注意してください :D

注目させたい記事を表示するプラグイン

常にトップページ上にあげておきたいといったほどではなく、記事ごとの人気度を測って表示させるほどの必要もない。

埋もれてしまう記事を救う意味でも、特別な記事をピックアップするリストを簡単お手軽に作る方法はないものかと色々なプラグインを試していたのですが、シンプルに徹したものはどうも見つけられませんでした。

まあタグを使えば一発解決なんですが、タグの管理というのがどうも苦手というか、必要なくなったときのタグの付け替えが面倒だなあと思い、勉強がてらに「テーマのウィジェットとしてさくっと配置できて、ワンクリックで設定、出力も単純なリストで」的なプラグインをひとつ作ってみることにしました。

プラグインの作り方を解説しているサイトがないものかと探してみるも、データベースエラーで閲覧できないというステキすぎる状況……。そもそも、あまりプログラムが得意な人ではない ((コピペプログラマー))のですが、なんとか単純極まる仕組みのプラグインが完成。XAMPPがなければ、出だしで諦めていたかもしれません。

できあがったプラグインはこんな感じ。エディタ上から、注目させるかさせないかのチェックボックスで設定することができ、ウィジェットとしてぽいっと設置できるような感じになりました。早速設置してみましたが、大丈夫だよね……。

fav_plugin.gif

需要もないだろうし、これを公開する勇気まではさすがにありませんが、同じようなことで悩んでいる方がいらっしゃるようなら差し上げますので、コメント欄にでもお気軽にお知らせください。:-D

# その後、需要があったようなので公開しました。(2009/5/3 追記)

My Favorite Posts 0.3
http://blog.newf.jp/etc/favorite_posts.zip

しんしんと雪が降る中の暇つぶしには最適でした。

img_0598.jpg

豪雪のなか、散歩に行きたそうなレウさん。

眠れぬ夜の WordPress 遊び

なんでか四時ぐらいに目が覚めてしまったので、今更寝直すわけにはいかんというわけで WordPress を弄って遊んでます。 昨日もこんな感じだったなあ。

WordPress を弄るといえば、それはもう多々あるプラグインをどんどん入れて、「アッー、高機能っぽくなってるヨォ!」という遊びに尽きるわけですが、ご多分に漏れず今日もそのように遊んでいます。

そこで今日導入してみたプラグインは―

WP AJAX Edit Comments

投稿されたコメントを投稿者本人が編集できるようになるプラグインです。

本ウェブログでは20分間以内なら、投稿したコメントをちょいちょいと弄くることができるようになっています。誤字脱字の訂正などにがんがん利用してやってください。

本来なら名前欄も編集できたりするのですが、ここはそう編集することはないだろうし、ちょっと邪魔だなということで、削らせてもらいました。

昨日あたりからデザインテーマを変更したりと色々と弄くりまわしてしまっているので、何かおかしな表示になってしまっていたりするところがあれば、是非ともぼくに教えてください。いちおう、Firefox, IE7, Opera で確認しているので問題ないハズなのですけれど。

freshreader が突然動作しなくなった編

1/24 頃、ちょうどさくらインターネットで契約していたサーバプランの解約をしていたところ、CORE SERVER で動かしているはずの FreshReader(フレッシュリーダー)が動作しなくなってしまった。

どうも CORESERVER 側で PHP のアップデートをした模様。フレッシュリーダーを動かすために、結局色々と設定をいじくる羽目になったので、まとめメモ。

  •  フレッシュリーダーを設置しているフォルダに、php.ini を作成して、以下を追記。

    zend_extension = /virtual/アカウント/public_html/ドメイン名とか/freshreader/ioncube/ioncube_loader_lin_5.2.so

これだけだと、記事を取得してくれるクロウラーさんが「ここじゃまともに動作しないから、これを見てしっかり設定したまえ」的(<meta http-equiv=”refresh” content=”0;URL=ioncube.php” />click<a href=”ioncube.php”>here</a>)なページに飛ばされるので、併せてもうひとつ。

  • クロウラー用の cron を変更。

    /usr/local/bin/php -f /virtual/アカウント/public_html/ドメイン名とか/freshreader/crawler.php -c /virtual/アカウント/public_html/ドメイン名とか/freshreader/php.ini

ひとまずこれで大丈夫!

[Web] Google Map をブログに貼り付ける

ブロガーやサイトオーナーの皆様に朗報です。JavaScript や Maps API の知識がなくても、簡単にGoogle マップの一部を切り抜いてコピペするような感覚で、自分のページに地図を埋め込むことができるようになりました。たとえば:* 気に入ったグルメのお店の紹介ページに、店の地図を貼り付け* 旅行ルートを記録したマイマップの一部を、ブログに貼り付け使い方は、いたって簡単。Google マップで切り抜きたいエリアを決めたら、「このページのリンク」をクリックするだけで、HTML 貼り付けのコードが表示されます。それを自分のブログやウェブページにコピーペストするだけで OK です

Google Japan Blog: Google マップを自分のサイトに貼り付けよう (2007-08-22)

ちょっとメモ。WordPress にはGoogle Map を簡単に呼び出すためのプラグインはすでにあるのですが、Google 本家でブログに貼り付けることができるようになった模様。Google API の登録などもしなくていいっぽいので、こちらのほうが断然お手軽。

さっそく試してみたところ、ビジュアルエディタを有効にしているウチの環境では、貼り付けたとたんに編集が効かなくなってしまうため、どうにも使いづらい。編集するときは、ビジュアルエディタをいったん切るか、Google Map が読み込まれるまえに「コード」タブを連打(笑)すれば回避はできるみたい。


拡大地図を表示

マイマップで登録しているメモも引っ張ってこれるようなので、しばらくすれば、このサービスを使いまくったりするウェブログが出てくるかもしれませんね。

feedburnerの使用を止めてみる。

CORESERVERに移転後、feedburnerから毎時の勢いで

FeedBurner had trouble retrieving your Source Feed:

http://blog.newf.jp/feed/

なんてメッセージがガンガン届くようになってしまいました。

要は、あんたのところのフィードおかしいよというお知らせで、

The error message is: Error getting URL: 500 – Internal Server Error

Actions you can take:
Validate your Source Feed with Feed Validator. This service provides additional detail about the problem, and how to repair it.
Resync your FeedBurner feed once you have repaired the source feed.
Contact FeedBurner for help with your feed if all else fails.

具体的にはこんなメッセージがおまけで付属しています。

RSSフィードのURLが自分の環境(Firefox)で、たまに何も表示されなくなってしまうことがあることが関係しているような気もするのですが、そもそもこれがさっぱり原因が分かりません。CORESERVERに問い合わせてみるも、ルータの再起動をしなさいだとか、キャッシュをクリアしなさいということで。むむむ :-(

とりあえずFeedBurner 側でフィードのURLを変更しようとして、http://blog.newf.jp/feed/ 、http://blog.newf.jp/?feed=rss を新たに入力しても不正なURLだとか、フィードが含まれていないだとかではじかれるようになってしまい、にっちもさっちもいかなくなってしまいましたので、上記の問題が解消するまでは(するのかなあ)FeedBurnerは使用しないことにしました。

うーん、なんでだろう。

track feedさんが突然デレた。

track feed」というサービスをご存じでしょうか。

私が愛してやまないサイドフィード株式会社 ((フレッシュリーダー最高!))の提供しているサービスで、ページ上にステッカーをぺたっと貼っておくだけで、どこのサイトからリンクを貼られたのかを RSS で教えてくれる今風のイカしたサービスです。

いちおう登録して貼り付けておいたものの、世界の隅っこにあるようなぼくのサイトでは「リンクなんてないわよバカ」なんて具合のツンツン・フィードしか提供してくれなかったのですが……さきほど見ると、なにやらすごいことになってました。急にデレたとしか思えないほどのフィードの提供っぷり。

はてな。

急に増えたのはなんだろうと思いつつも参照先を見ると、うむむ? WordPressから?

何か悪いことでもしたっけ……と考えつつ、管理画面に入ってみるとエラいことになっていました。当ウェブログで使用している WordPress ME では、管理画面(ダッシュボード)にログインした際に、登録されたサイトの最新記事が表示されるなんて仕組みがあるわけですが……。

ご迷惑をおかけしました!

ヒィーッ! なんかごめんなさい!! きっと「何でこんなに占有してるんだよ」的な思いでクリックされたことでしょう……。せっかくなのでうちのかわいくて愛らしいレウさまの写真でも貼り付けておきますので、堪忍してください。

ちょっとだけよ。なんかしらないけど、ごめんなさい