nginx + Apacheで20万PV/日を捌く

GMOクラウドVPSの2GBプランで運営しているWordPressサイトがあるのですが、5万PV/日を超えてだんだん重くなってきたので4GBプランに移行しました。 
■これまでの経緯
・Apache:2GBプランだと2万PV/日くらいで厳しくなる(メモリ不足)
・nginx:5万PV/日を超えたあたりで重くなる(ロードアベレージが高すぎる)

chibiegg日誌を参考に、バックエンドの処理をApache、フロントエンドの処理をnginxにさせて負荷軽減を目指します。

中規模Webサーバーの設定

メモリ2GBのVPSにCentOS 6.6を入れましたが、数万PV/日で遅くなったり、アクセスの多い時間帯にメモリ不足で落ちたりすることがありました。

チューニングしてしばらく様子を見てみます。

ORDER BYでNULLを最後に

Microsoft SQL Serverで、ソート時にNULLを最後に持ってくる場合、CASE WHENを使うと便利です。

htmltemplate.incがPHP5.3で動かない

PHPのテンプレートエンジンは、Hiroshi Ayukawaさんが作成したhtmltemplate.incをよく利用しています。
非常にコンパクトなので習得も早く、また軽いのも特徴です。

http://sourceforge.net/projects/htmltemplate/

オールドドメインの取得方法

SEOランクを上げるためには、ページランク(PR)の高いオールドドメインを使うこともひとつの方法だそうです。
業者から購入すると高いので、(時間と手間はかかりますが)自分で取得する方法をまとめました。

Galaxy Nexus(SC-04D)をeclipseに認識させる

Galaxy Nexusをeclipseに認識させるための覚え書きです。

Cordova(Phonegap)で、イメージをローカルに保存

カメラや写真を画面に表示して、永続的(PERSISTENT)に保存するサンプルです。
(Cordova 3.4.1、Androidの場合)

Cordova(Phonegap)で AdMobを表示する (Android)

いくつか参考となるサイトがあったのですが、どれを試しても動かず・・・最終的には以下のサイトの方法でうまくいきました。
GitHub / PhoneGap-Android-Native-AdMob

SFTPで管理画面からWordPressを更新

CentOS 6.4に入れたWordPressを、SFTPでアップデートさせるための設定です。
# yum install ssh2
# yum install libssh2
# yum install ssh2-devel
# pecl install -f ssh2
うちの環境ではssh2, libssh2は入ってたので、最後の2つのみ実行しました。
その後、 /etc/php.ini に以下を追加してhttpdを再起動します。
extension=ssh2.so

さくらのVPSでSSL(https)

さくらのVPS (CentOS 6.4)にSSLを設定しました。 証明書は、低価格のRapid-SSL.jpで。

textareaでmaxlengthチェック

textareaはmaxlengthの設定ができません。(HTML5からは可能みたいですが)
maxlength pluginなんていうのもありますが、日本語だとちょっと動きがヘンみたい。
そこで、jQuery inline Form Validation Engineを使って、submitボタンが押されたときに文字数チェックするようにしてみます。

PHP 5.5.0からMySQL関数が非推奨になりました

PHPには、MySQLに接続する関数が3種類あります。
http://www.php.net/manual/ja/mysqlinfo.api.choosing.php

このうち、MySQL関数がPHP5.5.0から非推奨になりました。

WordPress : timthumb脆弱性への対応

WordPressで、画像を縮小してサムネール表示するようなテーマ/プラグインで使われているライブラリのひとつ "TimThumb" に脆弱性が見つかっています。

[JPCERT] WordPress の TimThumb スクリプトに脆弱性

PHPで日本語入力チェック

掲示板のように投稿できるサイトを作ると、海外からのSPAM書き込みが増えてきます。
その対策として「入力された文章にひらがなまたはカタカナが使われているか」をチェックするようにしました。

CSS UIキット(タブレット・スマホ用)

10 Free Pure CSS UI Kits

CSS3で書かれた、iOSやAndroidのようなフリーのUIキット。
さまざまな理由でjQuery Mobileなどを採用できない場合がありますが、そういう時に便利かも。