Tag Archives: blog

ブログの更新を再開します

長女 1歳6カ月我が娘はとにかく寝ない子だったもので、ブログを更新する時間的余裕がまったくない状況でしたが、そんな娘も1歳半になって4月から保育園に通うになってからは、21時台には寝てくれるようになり、今では歩いてしゃべるどころか、走って歌うくらいには成長しました。というわけでブログの更新を再開したいと思います。

まずは古くさくなっていたWordPressのテンプレートを Twenty Fourteen ベースにフルリニューアルしました。ほとんどオリジナルのままじゃねーか!というツッコミもありそうですが、ついにWordPressのデフォルト・テーマがそこまでの品質になったということで。一応、Jetpack for WordPress との相性が悪いところは手動で調整したりして、地味なところに細かく手を入れてますし……!

また、今まではプラグインなどをカスタマイズしてしまうとそのプラグインをアップデートするときに大変だったので、WordPressのコードはすべてGitで管理するようにしました。おかげで開発環境を別に持ち、そこからpullして本番環境を作ることができるようにもなりました。WordPressのソースコードはGitHubにクローンされているので、それをフォークしたこのブログで使っているカスタマイズ版をGitHubで公開しています。

そして Twenty Fourteen の使用により、レスポンシブ・デザインとなりました。さらに、WP Retina 2x プラグインにより、HiDPIにも対応しています。

カテゴリーやタグ、概要、一部のCSSで見苦しいところが残っているかとは思いますが、徐々に直していきますので、まずはこの辺で新デザインに移行したいと思います。

複眼中心がスマートフォン用レイアウトに対応

複眼中心がiPhoneやAndroidなどのスマートフォンに最適化されたレイアウトに対応した。WordPressのスマートフォン対応というとWPtouchが有名だが、インデックス・ページが日付ばかり強調されてしまうデザインなのと、個別ページがRSSそのままみたいな素っ気なさがどうも気にくわなかったので自分で作成することにした。デスクトップ用レイアウトの雰囲気を維持したままスマートフォン対応できたと思う。

スマートフォン用レイアウトを作成するには、HTMLはそのままでCSSだけで変更する方法とHTMLもCSSも変更してしまう方法があるが、後者のほうが転送量が減らせる点となんだかんだでHTMLごと変更してしまったほうが制約が少なくて楽という理由から後者を採用した。

端末ごとにWordPressのテーマを切り替えるプラグインは WPtap Mobile Detector が有名だが子テーマに対応していないので、Multi Device Switcher を使用している。

残っている課題は3つ。

  1. iPadではデスクトップ用レイアウトで表示されるが、Androidタブレットではスマートフォン用レイアウトで表示されてしまう
  2. スマートフォン用レイアウトから手動でデスクトップ用レイアウトに変更することができない
  3. Opera Mobile for Android / Opera Mini for Android でのレイアウト崩れ

Continue reading 複眼中心がスマートフォン用レイアウトに対応

WordPressチューニング: WP Super Cache 導入

前回の記事APC (Alternative PHP Cache) を導入したものの、パフォーマンス・チューニングの目標値にまだ達していないので、WP Super Cache も導入する。

WordPressのページ・キャッシュには WP Super Cache のほかにも W3 Total Cache も有名だが、ゆっくりと…: WordPressキャッシュ系プラグインの比較とサイトに適した選び方 によるとボクのサイトには WP Super Cache のほうが良さそうだし、いろいろなキャッシュを同時に使うと古いデータがどこでキャッシュされているのかなどのデバッグが難しいので、まずはシンプルな WP Super Cache を試し、それでも目標に達せない場合 W3 Total Cache を検討することにした。

ページ・キャッシュを導入するに当たって気になるのは、左ペインにある「最近の人気記事」が正しくカウントされるかどうかだ。キャッシュから読み込むことで「最近の人気記事」のランキングがリアルタイムに更新されないことは気にならないが、キャッシュから読み込んだ場合にはカウントされないとなると、このウィジェットの意味をなさない。ありがいたいことに、ボクの使っている WordPress Populars Posts のChangelogの2.0.0に、Ajaxを使用することで WP Super Cache などのページ・キャッシュに対応したと書いてあるので問題なさそうだ。

Continue reading WordPressチューニング: WP Super Cache 導入

WordPressチューニング: APC導入

前回の記事でボクのブログが遅い理由はPHPであるところまでは切り分けできた。WordPressのキャッシュ・プラグインを使うのがすぐに思いつくけど、自宅サーバー監視に使っているZabbixもPHPアプリケーションで、こちらの速度もちょっと気になっていたので、まずはすべてのPHPアプリケーションに効果があるAPC (Alternative PHP Cache) を導入することにした。APCはアクセスのたびにPHPコードをコンパイルするのではなく、その中間コードをキャッシュ / 最適化することで高速にしている。

以下では CentOS 5.7 を使用しているが、Red Hat Enterprise Linux (RHEL) / Oracle Linux (OL) / Scientific Linux (SL) でも同様だろう。PHPはCentOSに含まれるパッケージではなく、IUS Community Project のphp53u.rpmを使用している。php53uのインストールについては 複眼中心: CentOS 5.6 で PHP 5.3.6 にアップグレード を参照してほしい。

IUS Community Project もAPCのパッケージを提供しているので、Yumから簡単にインストールできる。IUSを使っていない場合のパッケージ名はphp-pecl-apcになる。

Continue reading WordPressチューニング: APC導入

WordPressチューニング: ボトルネックの調査

1カ月ぶりにブログを更新したら、ページ表示の遅さが気になってしまったので、今まで何もしてこなかったWordPressのパフォーマンス・チューニングを行うことにした。

WordPressチューニングの情報はWebにいろいろあるけれど、ほとんどが「この設定をこうしたらこんなに速くなった!」みたいな話ばかりで、パフォーマンス・エンジニアの端くれとしては「なんでそこがボトルネックだと判断したの?」という視点がないことが気になった。そこで、この記事では原因分析から評価まできちんと記しておこうと思う。ただ、Webアプリケーション・パフォーマンス・チューニングのプロではないので、その辺はお手柔らかに……。

以下ではHTTPサーバーに Apache HTTP Server 2.2.3 + CentOS 5.7、データーベース・サーバーに MySQL Community Edition 5.1.52 + Scientific Linux 6.1 を使っているが、その他の環境でも応用できるだろう。

まず、どこで時間がかかっているのかの切り分けを行おう。Google Chrome 15 のメニュー「ツール > デベロッパー ツール」を開き、Networkタブを表示したら、Shiftキーを押しながら再読み込みボタンを押してWebブラウザーのキャッシュを使わずに再読み込みする。何度か試してみると4秒弱という結果が最頻値のようなので、以下の結果で分析することにした。

Continue reading WordPressチューニング: ボトルネックの調査