純規の暇人趣味ブログ

手を突っ込んで足を洗う

UbuntuにOPcacheとAPCuを入れる

      2015/08/18    HimaJyun

本日、驚異の16時間睡眠を記録したHimaJyunです。

今日はこのブログを動かしているWeb鯖にOPcacheとAPCuを入れてみたので、
その方法をご紹介しようと思います。

ページ表示は早い方が良い

ここをご覧の方達はご存知だと思われますが、Webの表示速度は早いに越した事はありません。
Googleの検索順位(つまりはSEO)にはクロール速度(ページ表示速度?)が関係します。

少し余談ですが、
クロール速度と、ページの表示速度は別物です(←今さっき知った)

簡単にご説明致しますわ。

  • クロール速度
    サーバからHTMLだけをダウンロードするまでに掛かる時間
  • ページ表示速度
    サーバからHTMLをダウンロード、解析してCSS,JS,画像を読み込み、JSを動作させてページを表示する。
    つまりは、読んで字の如く、ページが表示されるまでの時間

です。

解説しているサイトによって「クロール速度」だったり「ページ表示速度」だったりするので、
どちらが本当かは分かりません、僕はSEOの専門家では無いのでこれ以上は触れない様にします。

どちらにせよ、それらが検索結果に与える影響は少ないですが、
より早い方がユーザに対して与えるストレスも少ない=結果として、サイトの人気に関係する。

のです、らしいです、なのです、わよ?
もう一度言いますが、僕はSEOの専m……(ry

PHPの高速化

どのみち、鯖の応答速度は早い方が良いです。
そのためには、PHPのアルゴリズムをより良いモノにしたら良いのなんで小学生でも分かるよねっ!!

でも、それらが出来ない、出来ても限界があるモノがあります。
そうです、既成のプログラムです。

今現在、世界中のWebサイトでも特段良く使われているのはWordPressです。
人気のあのサイト、お気にの同人サークル、いつも炎上している2chまとめ
そして、このブログも……

ま、ここを見ているくらいなのでご存知でしょうが、WordPressはPHPで動いています。
つまり、サーバのPHP実行速度を高速化するのは、サーバの応答速度向上に一役買います。

そのためには、様々なちうにんぐがあるのですが、今回はOPcacheとAPCuを導入してみようと思います。

今回テストする環境

鯖のバージョンを晒す行為はあまり好きではないので、詳細には書きませんが、
大まかには、以下の環境で試しています。

  • UbuntuServer
  • PHP5.5.x
  • Apache2.x

CentOSでは設定方法などが違うので気を付けて、

OPcacheを有効化

長くなるので説明しませんが、PHP5.5~ではワケ有ってAPCが使えません、
代替案として、ZendOPcacheがPHPに組み込まれているので、そちらを利用します。

1.sudo nano /etc/php5/apache2/php.ini

で、php.iniを開いてください(エディタはvimなり何なりお好きなものを、僕はnanoしか使えない素人なのでnanoで)
(ちなみに、Nginxだと/etc/php.iniらしいです。)

2.その中から、[opcache]を探す。

3.設定を好きな様に書き換える

UbuntuServerであれば、最初は全ての項目がコメントアウトされています。
僕は、その中から変更したい項目だけをアンコメント(コメントを解除)して適用しました。

参考までに、以下の通りです。

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=2000
opcache.revalidate_freq=2
opcache.fast_shutdown=0

値の意味などについてはPHP公式マニュアルを見て頂いた方が良いです。

opcache.fast_shutdownは「1」に、opcache.revalidate_freqは値を大きくした方が良いです、
が、僕的にはこちらの方が使いやすそうなのでこうしています。

4.sudo php5enmod opcache

最後にApacheを再起動して完了です。

APCuをインストール

OPcacheだけではユーザキャッシュが利用できません。
そのため、APCuと言うモノをインストールしたいと思います。

1.sudo apt-get install php5-apcu

2.sudo nano /etc/php5/apache2/php.ini

3.設定、

ですが、[apcu]と言うセクションは無いので、お好きな所に追記して下さい。
(分かりやすいので、[opcache]の上辺りがおススメです。)

そして、先程と同じように設定します。
僕は、以下の様に設定しました。

apc.enabled=1
apc.shm_size=64M
apc.ttl=3600
apc.gc_ttl=3600

こちらも、値の意味に関してはPHP公式マニュアルを見て頂いた方が良いです。

最後に、先程と同じ様にApacheを再起動します。

以上で完了です。
本当に出来ているのか心配な方はphpinfo()でも実行してみて下さい。
OPcacheやAPCuと言う項目があるはずです。

これらを設定しておくと、鯖負荷の軽減にも繋がるので、ぜひ設定してみて下さい。

 - サーバ運営 ,