• 229月

    WordPressを高速化しようとキャッシュを導入したりと色々工夫している
    最中なのですが、iPhoneでテーマを切り替える処理とバッティングして
    困りました。

    パソコン側で作成されたキャッシュページがiPhoneで表示されたり、
    その逆になったりしちゃうんですよねぇ。

    同じURLですから、仕方ないところです。
    しかし、これを理由にキャッシュをオフにするのも、もったいないですし、
    ユーザーエージェントを見て、iPhoneだったら、キャッシュを使わず、
    都度、phpで生成してあげようかと調べてみると、同じことをされている
    ページを見つけました。

    phpを直接修正して対処するので、後々の保守がちょっと面倒ですが、
    その程度はしかたないかな。

    全般的にMovable Typeにくらべると、WordPressではphpやサーバなどの
    知識を要求される場面が多い気がします。
    機能拡張も非常にフレキシブルだけど、マニアックだったり、英語でしか
    情報がなかったりもしますし。

    まぁ、このブログでも有用な情報があれば、ご提供できればと思っています。

    4798022012 WordPress 2.7対応「導入&カスタマイズ」実践ガイド―個人ブログも企業サイトも簡単&無料で構築できる!
    秀和システム 2009-02

    by G-Tools

    Filed under: Blog
    2009/09/22 9:37 pm | WordPressキャッシュをiPhoneで無効に はコメントを受け付けていません
  • 219月

    Movable Type 2.661をいまだに使い続けている、このブログですが、
    色々改造しながら、なんとかやってきましたが、さすがにそろそろ
    厳しくなってきています。

    そこで、実は少しずつ、WordPressへ移行しようと、裏で作業を進めてきました。
    それがようやく形になってきたので、テスト公開してみようかと。
    URLはちょっと短くなって、下の場所に試験開設です。
    オブジェクトキャッシュWP-Cacheというプラグインで、なんとか
    少し速くなりましたが、それでもMovable Typeより遅いですねぇ。
    ここは、今後もチューニングが必要そうです。

    先日作り込んだRSSの表示などはPHPコードが実行できるプラグイン
    Executable PHP widget」で、難なく移行できました。

    iPhoneのテーマ切り替えも「iWPhone」というプラグインで簡単
    でしたし、プラグインの存在はかなり大きいですね。

    スパム対策には「WP-SpamFree」と「Simple Trackback Validation Plugin」を
    使いました。

    とりあえず、これで10月半ばくらいまで様子を見て、本格的に移行するか
    どうかを見定めたいと思います。
    本格移行を決めましたら、リンクの修正をお願いすることになるかと
    思いますが、ご協力のほど、よろしくお願いいたします。

    なお、本格移行まではコメントなどは従来のブログにいただけると
    助かります。
    こちらも併せて、よろしくお願いいたします。

    Filed under: Blog
    2009/09/21 8:19 pm | 2 Comments
  • 169月

    ブログに、はてなアンテナやRSS更新情報などを追加したのですが、
    とりわけ、はてなアンテナのRSS取得が結構遅いようなので、キャッシュを
    取ってみることにしました。

    やり方としては、自前でファイルに保存しておくこともできるのですが、
    ここは便利なライブラリに頼るのが賢明でしょう。
    Cache_Lite」という、なかなか素晴らしいものがありました。

    実際の使い方は、以下のページ様を参考にさせていただきました。
    http://blogs.yahoo.co.jp/nob_ll/45478859.html

    ほとんど、この情報だけであっさり実現してしまいましたが、一点、
    注意するとすれば、キャッシュを格納するフォルダのパーミッションと
    相対パス指定のほうが楽なことくらいかな。
    また、最後にスラッシュを付けておいたほうが良さそうです。

    ローディングスピードの分析には、FireFoxのアドインを使いました。
    「Firebug」と「YSlow」で、これがまた素晴らしく高機能です。

    ちょっと使い方には慣れが必要ですが、YSlowのComponentsメニューの
    Response Timeを見ていくと、サイトのローディングのどこあたりが
    遅いのかが一目瞭然です。

    キャッシュ前のindex.phpのロードには2300~2500msもかかっていました。
    これがキャッシュを導入した後は700msに縮まっています。
    phpなしで500ms程度ですから、これだけ速ければ言うことなしかな。

    ほかにも、Retweetがらみの処理が遅いなぁとか、popinも結構かかってる
    といった具合に、かなり詳細にわかるので、これを参考にスピードアップを
    していこうかと思います。

    最近はあまり自前でガリガリとhtmlを記述する方は少ないとは思いますが、
    ブログパーツのチューニングなどにも使える方法だと思うので、参考に
    なれば幸いかと。

    Webアプリケーション・サーバー 設計・構築ノウハウ Webアプリケーション・サーバー 設計・構築ノウハウ

    by G-Tools

    Filed under: Blog
    2009/09/16 8:24 pm | PHPでキャッシュ はコメントを受け付けていません
  • 139月

    MySQLのデータベースを移設するのに結構手間取ったので、メモがてら
    エントリーしておきます。

    エクスポートは定番で、phpMyAdminを使ってGUIでできたので、
    楽々でした。
    方法は、いろんなサイト様で説明が挙がっています。
    http://fanstvbackstage.blog71.fc2.com/blog-entry-8.html

    これもデータベースのサイズが大きいと、途中で失敗したりするようですけどね。

    そして、問題はインポートのほうでした。
    普通はこれもphpMyAdminでできるわけですが、あいにくphpMyAdminが
    インストールされていない環境だったので、コマンドラインで実施します。

    調べてみると、以下のコマンドでできるとの記載を見かけたのですが、
    これではエラーが出て、うまくいきませんでした。

    mysql dbname < xxxx.sql -u root -p

    DBを事前に作成してあるとエラーになるのは仕方ないとして、あらかじめ
    削除しておいても、unknown databaseになってしまいます。

    で、色々、試行錯誤した結果、以下のやり方でうまくいきました。

    まずはmysqlに入ります。

    mysql -u root -p

    そして、以下のコマンドでインポートします。

    mysql > source xxxx.sql;

    わかってみれば簡単ですが、ここまで到達するのが大変なんですよねぇ。
    ちなみに、インポートしなおす場合は、事前にデータベースは以下のように
    削除しておく必要があります。

    mysql > DROP DATABASE dbname;

    ブログのバックアップを取りたい場合などにも、この方法は応用できるのでは
    ないかと思います。
    この際に、MySQLもちゃんと勉強しておこうかなぁ。

    MySQLデータベース構築バイブル MySQLデータベース構築バイブル

    by G-Tools

    Filed under: Blog
    2009/09/13 5:27 pm | MySQLデータベースのインポート はコメントを受け付けていません
  • 089月

    少し前に、ブログのサイドメニューに、RSS更新情報や、はてなアンテナを
    表示するようにしたのですが、どうも今晩は「はてなアンテナ」の調子が
    おかしいようで、うちのブログの表示自体も遅くなってしまっていました。

    そこで、一旦、再度メニューの表示をオフにして、タイムアウトの処理を
    組み込むことに。

    ただ、RSSの処理部分は既存の関数を利用していますので、事前にファイル
    チェックをおこなう処理を別個に入れることにしました。

    $server = “a.hatena.ne.jp”;
    define(“TIMEOUT_SECOND”, 1);
    $fp = @fsockopen($server, 80, $errno, $errstr, TIMEOUT_SECOND);
    if ( !$fp ) {
      //タイムアウトエラー
      $rss = “”;
      return $rss;
    }
    else {
      fwrite($fp, “GET http://”.$server.”/macbs/rss HTTP/1.0\r\n\r\n”);
      stream_set_blocking( $fp, TRUE );
      stream_set_timeout($fp, TIMEOUT_SECOND);
      $info = stream_get_meta_data($fp);

      $txt .= fgets($fp, 2000);
      $info = stream_get_meta_data($fp);
      fclose($fp);

      if ( $info[‘timed_out’] ) {
        //タイムアウトエラー
        $rss = “”;
        return $rss;
      }
    }

    まぁ、内容は見ての通り(^^;ということで、とりあえずオープンしてみて、
    ちらっと読んでタイムアウトだったら、処理をやめるという具合です。

    PHPのバージョンが新しければ、fopenで処理できるのですが、fsockopenを
    使ったので、ちょっとややこしくなりました。

    はてなアンテナが復旧してくれるのが一番ですが、こういうことは
    他のRSSでもありうる問題ですし、この機会に対処できて良かったです。

    PHP 逆引きレシピ (PROGRAMMER’S RECiPE) PHP 逆引きレシピ (PROGRAMMER’S RECiPE)

    by G-Tools

    Filed under: Blog
    2009/09/08 10:59 pm | PHPでタイムアウト処理 はコメントを受け付けていません
  • 059月

    クマデジタルさんが「いぬリンク」で特等席こと、最末尾に表示されて
    しまう件で、エントリーされていらしたので、ちらっと調べてみました。

    うちのブログも以前、この現象で困ったんですよね。
    その時に調べたのですが、「.htaccess」がいじれれば、以下の指定をするだけで
    おそらく解決すると思われます。

    XBitHack full

    ただ、ブログサービスの場合だと、なかなかこの指定は難しいかも。

    で、まずは現状をHEADリクエストしてチェックしてみます。
    HEADリクエストには、ターミナルからcurlを使って実施しました。

    Macintosh:~ macbs$ curl --head http://kumadigital.livedoor.biz
    /HTTP/1.1 200 OK
    Date: Sat, 05 Sep 2009 02:05:27 GMT
    Content-Length: 119501
    Content-Type: text/html

    こんな感じで、やっぱりLast-Modifiedがないですねぇ。
    ちなみに、うちのブログだと、こんな感じです。

    Macintosh:~ macbs$ curl --head http://saramac.main.jp/blog/index.html
    HTTP/1.1 200 OK
    Date: Sat, 05 Sep 2009 02:07:29 GMT
    Last-Modified: Fri, 04 Sep 2009 14:34:04 GMT
    Content-Length: 76098
    Content-Type: text/html

    もし、.htaccessが操作できないのなら、metaタグを埋め込むと良いかも。
    ただ、ここは「いぬリンク」の更新チェックロジックにも依存しますけれど。

    <META HTTP-EQUIV=”Last-Modified” content=”更新時刻”>

    更新時刻の部分には、GMTで実際の時刻をセットしてあげる必要があります。
    詳しくは、以下のページを参照されるとよろしいかと。
    http://sharl.haun.org/d/wl-how.html

    うまく解決できると良いんですけどね。
    うちもphpが絡んだりしてるから、念のためにmetaタグを入れておこうかなぁ。

    Filed under: Blog
    2009/09/05 11:32 am | 特等席対策 はコメントを受け付けていません