スポンサーリンク

iのサイト(www.i-wmobile.com)はhttp/2(SPDY)に対応しました

PC
スポンサーリンク
スポンサーリンク

ほとんど誰もアクセスしてませんが、サイトの高速化

wordpressはまだ初心者の域を出てませんが、サイトを高速化しないと見る人も管理するi(私)も使い勝手が悪いので、いろいろとカスタマイズを重ねています。最初は管理用サイトが一番遅くて、i自身ストレスを感じていました。

最初はキャッシュプラグイン

wordpressって様々な使い方をしている人がいて、カスタマイズも容易ですよね。そこが魅力なのですが、悪くとらえるとそこがデメリットにもなっている印象があります。

なぜか?って?

それはカスタマイズ情報を使用ユーザが紹介しているのですが、自分のwordpressにはそれを使って大丈夫なのか?判断が難しいと思います。

iは最初キャッシュが一番いいと思って、それを設定したのですが、実感がなかったです。他の人の高速化の情報を調べてみるとsimplicityとキャッシュとは相性が良くないことがわかります。

早速、キャッシュのプラグインを削除しました。

.htaccessとプラグインを組み合わせて高速化

このsimplicityを使っている人がよく設定している高速化に.htaccessとちょっとしたプラグインだけで結構な高速化ができることが判明したので、早速試しました。使用するプラグインは以下の3つになります。

  • Autoptimize
  • EWWW Image Optimizer
  • WP Hyper Response

これと.htaccessを検索すれば、詳しい方法は見つかるはずです。サイトが高速化されているのか?は以下のサイトで判断できるので、ぜひwordpress以外の人も試してみてください。

このWP Hyper Responseを使用をすると管理用サイトも少し高速化されるため、おすすめです。ただし他の人も書いてますが、何年か前からアップデートされていないのが不安らしいです。

httpsの人はSPDYも有効化してみては?

iのi-wmobile.comサイトではhttpsを使っています。管理するための通信は暗号化しないとまずいのは誰でも知っているかと思います。そのため一般の人にも使ってもらい、なおかつSPDY(googleが開発してオープン化されたプロトコル)を使うようにすれば、更なる高速化できるのではないかと考えました。今ではほとんどのブラウザでSPDY対応しているので、ウェブサイトで使わない手はないでしょう。ただしこれも注意点があります。それはmod_phpとコンフリクトすることです。

回避方法はmod_fcgiを使います。設定方法は以下のサイトで紹介されていますが、いまいちわかりにくいので、iがやった内容を紹介しましょう。!(^^)!

スポンサーリンク

mod_fcgiをphpで使う設定

  • 最初にspdyはいろいろなサイトでインストールについて紹介されているので、割愛します。
  • 次にmod_fcgidをインストールします。
  • /etc/httpd/conf.d/fcgid.confを編集し、以下を追加します。これはファイルのアップロードのサイズに影響し、画像のアップロードがwordpressでは2MB(/etc/php.ini)に設定されていますが、fcgidではこのパラメータの初期値が131072であるため、変更が必要です。
    FcgidMaxRequestLen 2097152
  • /usr/local/bin/php-wrapperを作成します。以下の内容となり、アクセス権は755でいいでしょう。
    #!/bin/sh
    # Set desired PHP_FCGI_* environment variables.# Example:
    # PHP FastCGI processes exit after 500 requests by default.
    PHP_FCGI_MAX_REQUESTS=10000
    export PHP_FCGI_MAX_REQUESTS
    # Replace with the path to your FastCGI-enabled PHP executable
    exec /usr/bin/php-cgi
  • /etc/httpd/conf.d/for-spdy_php.confを作成します。
    # SPDY:ON a2dismod php5; a2enmod sdpy; a2enmod fcgid
    # SPDY:OFF a2enmod php5; a2dismod spdy; a2dismod fcgidAddType application/x-httpd-php .php
    AddHandler fcgid-script .php
    Options +ExecCGI
    FcgidWrapper /usr/local/bin/php-wrapper .php# Customize the next two directives for your requirements.
    Order allow,deny
    Allow from all
  • httpdを再起動

今はこの設定をしております。そうすると今の所安心して使えております。

mod_fcgidが使われているか?確認方法

自分のサイトのファイルを置いてあるディレクトリ(/var/www/・・・)にphpinfo.phpファイルを作成します。
ファイル内容はシンプルです。「」を記載します。
そしてこのPHPファイルへアクセスします。(http://~/phpinfo.phpとか)
するとPHPに関する各種情報が表示され、以下のServer APIでCGI/FastCGIと表示されれば設定どおりの動作と確認できます。

Server API CGI/FastCGI

SPDYになっているのか?の確認

SPDYに設定したのはいいですが、確認しないと不安ですよね。便利なサイトがあるんですよ。

私のサイトをチェックした結果の画面です。

20150701_SPDY1

20150701_SPDY2

まずまずの結果になりました。httpは元々許可しているので、httpが有効になっている旨のメッセージと、「Not Using Strict-Transport-Security」の2つだけ注意されています。

httpをhttpsに誘導するための設定が必要です。

Header always set Strict-Transport-Security “max-age=10886400;”

これを.htaccessに保存するだけです。これで以下の表示になります。

20150701_SPDY3

どうでしょうか?管理のためにhttpsは必須で使っている人がほとんだと思いますので、ぜひSPDYも合わせて使うのは、有効な手段だと思います。

最後にphp.confの修正

/etc/httpd/conf.d/php.confファイルに「AddHandler php5-script .php」があると思います。本当にfcgiで動いているのか?確実に判断するためにも、この設定をコメントアウトしておいた方がいいと思います。必須ではありませんが、念のための設定となります。

オーノー。一部非表示を発見

翌日、スマホで適当にアクセスチェックしていたら、一部の投稿が全く表示されなかったり、ある投稿は最初のタイトルとSNSの共有ボタン部分のみが表示され記事の内容が全く表示されないことに気づきました。最初はSPDYとかHTTPDのworkerにしたのが原因と思い、元に戻したのですが全く正常になりません。
じっくりと考えて、調べたら最近の投稿2つだけ404エラーと表示されます。もう1つ前の投稿についてはSNSの共有ボタンの途中で止まっているように見えます。
結果として、simplicityのSNSの共有ボタンで「はてな」がエラーになっているようでした。最初の構築直後では問題なかったので、もしかしたら何らかのプラグインと相性が悪かったのかもしれませんが、問題の切り分けを完全にしていないので断定はできません。また、最近の投稿で404エラーに関する件はパーマリンクでカテゴリー名にしているのですが、カテゴリー名「pc」のslug名を同じにしており、それが原因でした。2文字がだめなのか?PCが駄目なのか?日本語の名前とslugを同じにしたのがいけないのか?まで、こちらも同様に完全に切り分けしていないので断定はできません。iとしてもこだわりのある個所ではないし、個人的なサイトなので、回避できればそれでいいのです。
最終的にSPDYは有効にしています。

コメント

タイトルとURLをコピーしました