WordPress高速化 OPcacheとAPCuの導入(Mysql5.5+php5.5)

スポンサーリンク
サーバー
スポンサーリンク

VpsのApache、php5.3(FastCgi)、MySQL(5.3)でワードプレスを動かしていたのですが、少し遅い+メモリを食い過ぎるので、高速化+メモリの縮小を行うためにした事の備忘録。

これを行った事によって、ワードプレスの表示速度が、平均0.86秒から、平均0.41秒になりました。

スポンサーリンク

まずは、MySQLを5.5にUPする。

事前準備

# yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
# yum install yum-utils
# yum-config-manager --disable mysql56-community
# yum-config-manager --enable mysql55-community

 MYSqlインストール

# yum install mysql mysql-devel mysql-server mysql-utilities

これでMysqlのインストール完了。

次は、phpのバージョンを上げる。

事前準備

# yum remove php*

今ある既存のphpを削除

epelとremiのレポジトリの追加。

# rpm -ivh  http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

 必要なモジュールを指定して、yumでphpをinstall

# yum install --enablerepo=remi --enablerepo=remi-php55 php php-cli php-common php-devel php-gd php-mbstring php-mysqlnd php-opcache php-pdo php-pear php-pecl-apcu php-pecl-jsonc php-pecl-jsonc-devel php-pecl-zip php-pgsql php-process php-xml

インストールが完了したら、問題ないか確認。

# rpm -qa | grep php
# php -v

これで、phpのインストール完了。

OPcacheのインストール

# yum install php-opcache --enablerepo=remi-php55,remi
# vim /etc/php.d/opcache.ini

[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1

設定のマニュアルはこちら(PHP: 実行時設定 – Manual)

OpCacheにどれくらいキャッシュされているかは、下記のツールを利用すれば把握できます。

opcache-status · GitHub

opcache-status · GitHub

ocp.php · GitHub

私は、opcache-statuを利用しました。

APCuのインストール

# yum install php-pecl-apcu --enablerepo=remi-php55,remi
# vim /etc/php.d/apcu.ini

extension = apcu.so
apc.enabled=1
apc.shm_size=128M
apc.ttl=86400
apc.gc_ttl=86400
apc.mmap_file_mask=/tmp/apc.XXXXXX

以上でApcuのインストールが完了です。

これで、ワードプレスが高速化されるはずです。

php -v でUnable to initialize moduleが出た。

 

PHP Warning: PHP Startup: ******: Unable to initialize module がで

mysql とmsqli と pdo_mysql が初期化できないよと言われていました。

読み込んでるextensionに誤りがあるみたいですね。

私の場合は、前にインストールしたMysqlのものが残っていたので、読み込まれる対象の******.iniファイル(mysql.ini、mysqli.ini、pdo_mysql.ini)を削除しました。