コンピュータ」カテゴリーアーカイブ

WordPress の wp_insert_post() とかを使いやすくするツールを作りました

既存の独自 CMS とかのデータを WordPress に移行する際に、csv に落として CSV Importer とかを使うことが多いと思います。
ただ、これだとかゆい所に手が届かないとか、細かく設定できないとか、往々にしてあると思うんですよ。
そんな時は、wp_insert_post() とか wp_add_post_tags() とか wp_insert_attachment() とかを駆使して移行プログラムを書いたりするんですが、微妙に使いづらいので、これらをラップして使いやすくするクラスを作って、github で公開しました。

wokamoto/wp_post_helper

簡単な使い方は memo.dogmap.jp にも書いたんですが、あっさりとしすぎてるので、ここにも書いておきますね。
以下、使い方
続きを読む

WordCamp Philippines 2012

WordCamp Philippines 2012 に行ってきた

シンガポールでの AWS イベントの次は、マニラで行われた WordCamp Philippines 2012 に行ってきました。
今回、僕らだけでなく、Nao さんとか、AWS の堀内さん、メッサリバティの篠原さん、GMO さんなど、日本からの参加者がいっぱい居て現地スタッフが「あいつら、なんか間違って登録したんじゃないの?」とかって思ったらしいです。

WordCamp PhilippinesWordCamp は、フィリピンでは4回目の開催になるそうです。
Cebu 島から、わざわざフィリピン入りした方も居るようで、フィリピンでの WordPress コミュニティも中々盛り上がってる感じです。
参加者からの質問も多く、中には5〜6分自分の言いたいことを言ってる人も(あんた、それ質問とちゃうやろ!)。
参加者・スタッフ共に、一体感のある良いイベントでした。
最初のサプライズプレゼント(座ったイスの裏に当たり券が貼ってある)とか、最後のプレゼント大会でもハッシュタグ #wcph2012 でツイートした人の中から Twicket という Web サービスでランダムで選ばれるとか、工夫されてて楽しかったです。
この Twicket ってサービス良いですね、イベントの最初に告知しておけば、イベント中のツイートを促進させる効果があると思います。
これ、ちゃんと独自ドメインにして、動きつけたりしたら面白そうなサービスです。
続きを読む

シンガポールで JAWS-UG Sg Meetup と WordPress ハンズオンに行ってきた

シンガポールの AWS オフィスで行われた二つのイベント、JAWS UG Singapore MeetupAWS hands-on in Singapore に行ってきました。
海外の IT 系イベントは初めてだったので、中々興味深かったです。

JAWS-UG Singapore Meetup では、シンガポールで仕事をしている日本企業の担当者の方々とお会いしました。
ブイキューブの塗師さんの講演は、中々興味深かったです。
障害対策として AWS の東京リージョンとシンガポールリージョンをまたいでファイル同期してるとか。
あと、OSSの分散ファイルシステム Gluster も興味深かったです。
試してみよう、そうしよう。

網元紹介してもらいましたWordPress ハンズオンでは、AWS の堀内さんとウチの小賀さんに WP Booster網元 を紹介していただきました。
以外だったのは、一般での AWS の認知度が低かった点。
AWS のシンガポールリージョンは、東京リージョンよりも前からあったので、もっと浸透してるのかと思ってたんですが、法人利用の方が多くて個人利用は少ないんですかね?
まぁ、初心者向けハンズオンなので来場していただいた層が、たまたまそうだっただけかもです。
# 日本でも、個人利用はまだそんなに浸透してないですしね。
WordPress に特化した網元とか WP Booster は、個人でも AWS 利用するハードルを下げてくれると思うので、こちらを頑張って浸透させたい感じです。
続きを読む

Amazon ElastiCache

WordPress で Amazon ElastiCache を利用する

手軽に memcached サーバを使うことができる Amazon ElastiCache を WordPress で使用するための方法を解説します。
# なんか、あまり日本語での説明とか見つけられなかったんで

WordPress には Object Cache って機能があって、複雑なデータベースクエリなどの生成に負荷のかかるデータをキャッシュすることができます。
ただ、この Object Cache でキャッシュされるデータは永続的な物ではなく、キャッシュされたデータはすべてのページをまたいで使用される訳ではありません。
このキャッシュされたデータを永続的に使用するための特殊なプラグイン(正確には、ドロップイン)は、いくつか提供されています。
今回は、それらのプラグインの中で memcached にキャッシュデータを貯めておくことができる Memcached Object Cache を使います。

以下 Amazon ElastiCache の設定方法から、Memcached Object Cache の導入方法まで
続きを読む

mod_pagespeed

mod_pagespeed を試してみました

Google の Apache サーバ向け高速化モジュール mod_pagespeed の最初の安定版がリリースされました。

折角なので WordPress で試してみました

mod_pagespeed の設定は、デフォルトのままです。

比べてみてもらうと分かるんですが、CSS、JS、画像のファイルサイズが小さくなってます。
幾つかの画像は、すでに Yahoo! Smush.it で最適化されているので、それほど違いがありません。
しかし、Yahoo! Smush.it を適用していない以下の画像は mod_pagespeed を通したものと通していないものでは、ファイルサイズに差が出ています。

また、CSS は Minify するだけでなく、複数 CSS を結合後、小さい画像ファイルは自動でデータURIスキーマに変換してくれたりします。

これらを、特に意識することなく勝手にやってくれるのでラクチンですね。
以下、インストール方法。
続きを読む

WordPress のDB上のサイトURLを一気に変換

WordPress を、別サーバに移行するにあたってサイト URL を変更したい時があります。
例えば、開発環境から本番環境に移行する時とか

そんな時は、以下の SQL 文を発行することで wp_posts 内のデータを一発で置換できます。

UPDATE `wp_posts`
 SET post_content=REPLACE(post_content, "{旧URL}", "{新URL}")
 where post_content like "%{旧URL}%";

ただ wp_options とか wp_postmeta とかにはシリアライズされたデータが入っていることもあるので、これらはそのまま置換するとまずいです。
(シリアライズデータの中には、文字列の長さとかも含まれてるので)
そこで、シリアライズされたデータは一度アンシリアライズしてから置換して、シリアライズした後に DB に書き戻してやる必要があります。
ただ、手作業でこれやってるとかったるいので、それらを自動で行う PHP スクリプトを作りました。
https://gist.github.com/3627972
上記の gist から download するなり raw データを取得するなりして、PHP スクリプトを取得してください。
以下、使い方
続きを読む

WordCamp Tokyo 2012

WordCamp Tokyo 2012 と PHP Conference 2012 に行ってきました

9/15 に大田区産業プラザ PiO で合同開催された WordCamp Tokyo 2012PHP Conference 2012 に行ってきました。
新しい試みのブースも盛況で、中々楽しかったです。
僕はというと PHP カンファレンスの方で「NGINX + PHP」ってセッションをやらせていただいたり(開始時、ぐだぐだになってしまいすいません)、WordCamp Tokyo 2012 の方で「AWS ハンズオン」のお手伝いをさせていただいたりしてました。

PHP カンファレンスでやったセッションのスライドはこちら

回を重ねる毎にドンドン大規模になって行くイベントですが、大きな混乱も無く、今年も非常に楽しかったです。
スタッフとして関わった方々、お疲れさまでした&ありがとうございました。

ブラウザのキャッシュファイルをコントロールする

Web サーバから送出されるデータに Expires ヘッダーを追加して、ブラウザにキャッシュを持たせることで体感速度をあげてやるということは、良く行われていますね。
実際にどうやって設定するかは、以下のエントリで説明しています。

で、この時さらにキャッシュを長期間持ってもらおうと思って1年とか10年とか、とにかく長い有効期限を設定したりするわけです。
そうすると、困ったことに style.css とか修正しても、いつまでもブラウザのキャッシュが消えなくて、変更が反映されないとかいう事態も発生してしまう訳ですね。
そんな時は、名前を変えるとかクエリー文字列を変えるとかしてやれば良い訳です。
ただ style.css とか修正した時に、header.php の方を修正し直すのを忘れちゃうこともあるので、これを自動で更新して、ブラウザのキャッシュをコントロールしてあげようかという提案です。
続きを読む

Nginx Cache Controller

Nginx Cache Controller ver.1.1.4 をリリースしました

Nginx Cache Controller の 1.1.4 をリリースしました。
今回の修正では、以下の変更を行っています。

  • キャッシュ削除時にアクションフックを追加

これだけです。
ただ、このアクションフックを使用することで複数台構成にしている WordPress のサーバのキャッシュを一括で消せるようになります。
以下、やりかた。
続きを読む

WordPress で特定のプラグインを必ず有効にする方法

WordPress で、必ず有効にしておきたいプラグインがある場合、wp-content/mu-plugins というサブディレクトリを作って、その中に有効にしておきたいプラグインを入れておきます。
例えば、クライアントに納品した WordPress サイトで必ず有効にしておいてほしいプラグインがある場合、mu-plugins に入れておくと便利です。
しかし、残念ながら wp-content/mu-plugins に入っているプラグインは、ダッシュボードからアップデートしたりすることができません。

その問題を解決するために、特定のプラグインを必ず有効にしておくプラグインをさくっと書いてみました。
特定のプラグインを有効にするプラグイン — Gist
適当な名前で保存して wp-content/mu-plugins に入れておくと、特定のプラグインを必ず有効にしてくれます。
続きを読む