PHP-Xcacheのインストールと設定方法

投稿日: 2013年8月15日 | カテゴリ:『自宅サーバー』>メンテナンス

PHP-Xcacheは、PHPの実行ファイル(opcode)を物理メモリーに保存し、PHPスクリプトのコンパイル時間を省略することによって、PHP関連のアプリケーションの処理速度を加速させるプログラムです。Fedora18でのインストール方法を紹介いたします。

[注意]
このアプリは、PHP7では使用不可になりました。PHP7以降でサーバーを運営する場合には、他のアプリケーション(例えばPHP-opcache+PHP-apcu)に乗り換えてください。

インストール

Linux系オスのFedoraではバイナリファイルのRPMが準備されています。root権限でコンソールにログインして次のコマンドを入力してインストールを行います。

[root@localhost ~]# yum -y install php-xcache xcache-admin
…….
以下略
インストール成否の確認

インストールが終了したら、端末で次のコマンドを入力して、以下の表示が出力されれば、xcacheが無事インストールされています。

[root@localhost ~]# php -v
PHP 5.4.17 (cli) (built: Jul 12 2013 15:14:10)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with XCache v3.0.2, Copyright (c) 2005-2013, by mOo
with XCache Optimizer v3.0.2, Copyright (c) 2005-2013, by mOo
with XCache Cacher v3.0.2, Copyright (c) 2005-2013, by mOo
with XCache Coverager v3.0.2, Copyright (c) 2005-2013, by mOo

次のようなphpinfo.phpファイルを/var/www/htmlディレクトリに作成し、パーミッションを755にします。

 
<?php
phpinfo()
?>

自コンピュータのブラウザからhttp://自サイトのアドレス/phpinfo.phpにアクセスします。次の図のようにXCacheの項目が追加されていれば正常にインストールされています。

画像をクリックすれば別ウィンドウで拡大イメージが見れます(以下同じ)
初期設定

インストールが無事終了すれば、/etc/php.dディレクトリにxcache.iniファイルが自動的に作成されていますのでそれをエディタで開いて各設定を調整します。
その前に、端末で管理者パスワードのハッシュ化を行っておきます。”typeyourpassword”に設定するパスワードを入力します。出力されたmd5パスワードをコピーしておいてください。

echo -n “typeyourpassword” | md5sum
abcdefghijklm

解説を参考にして自分の環境に合わせてxcache.iniファイルを適宜変更してください。コメントは省略してあります。コードボックス以下の説明は、筆者が四苦八苦しながら各機能をなんとか稼動させた教訓的なコメントです。参考にしてください。

[xcache-common]
extension = xcache.so
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = ""  
xcache.admin.pass = "abcdefghijklm" 
[xcache]
xcache.shm_scheme =        "mmap"
xcache.size  =  56M  
xcache.count =                 1
xcache.slots =                8K
xcache.ttl   =                 0
xcache.gc_interval =           0
xcache.var_size  =  8M   
xcache.var_count =             1
xcache.var_slots =            8K
xcache.var_ttl   =             0
xcache.var_maxttl   =          0
xcache.var_gc_interval =     300
xcache.var_namespace_mode =    0
xcache.var_namespace =        ""
xcache.readonly_protection = Off
xcache.mmap_path =    "/dev/zero"
xcache.coredump_directory =   "" 
xcache.coredump_type =         0
xcache.disable_on_crash =    Off
xcache.experimental =        Off
xcache.cacher =               On
xcache.stat   =               On
xcache.optimizer =           Off
[xcache.coverager]
xcache.coverager =           On 
xcache.coverager_autostart =  On
xcache.coveragedump_directory = "/var/local/xcache" 

5行目:xcache管理者のID(例えばadmin)を入力します。
6行目:先に作成したmd5パスワードを入力します。
9行目:デフォルトは60Mバイトです。
14行目:デフォルトは4Mバイト。当サーバーでは、4Mバイトを超過したことがあったので増加しました。
32行目:デフォルトではoff、使用する場合にはonにしてください。Onにしておくと指定したディレクトリにキャッシュされたファイル(拡張子 .pcov)がツリー状に書き込まれます。
34行目:coverageファイルが保存されるディレクトリです。デフォルト推奨では”/tmp/pcov”ですが、tmpディレクトリに作成するとCoveragerタブを指定してもいつまでも”no data”でデータが書き込まれないので、このディレクトリを指定しました。所有者をapache [48]に設定しています。自分の環境に踏まえて適宜調整してください。

次に、etc/httpd/conf.dディレクトリに作成されているxcache.confを設定します

# Configure XCache Administration
Alias /xcache /usr/share/xcache
<Directory /usr/share/xcache>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     Require ip 192.168.x. 
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

6行目:デフォルトは、”all granted”です。当サイトでは、ローカルからのみアクセスを可能にしてあります。この場合には、ルーターのIPアドレスを指定してください。

以上の設定が終了したら、httpdを再起動して、変更を有効にします。

[root@localhost ~]# systemctl restart httpd
Xcacheの動作確認
(1) PHP Cacher

PCからhttp://サーバーのIPアドレス/xcacheにアクセスするとログイン画面が現れます。先に設定したユーザー名とパスワードを入力してOKボタンを押します。すると次のようなメイン画面が現れます。

cov_casher

最初は左上のSummaryタブが選択されています。Cashed(キャッシュされたPHP実行ファイルの数)は、せいぜい1桁程度の数字しか入っていないと思います。自サイトのWordpressにアクセスし、記事のいくつかを閲覧して再度Xcacheにアクセスしてみてください。100以上の数が表示されているはずです。
Module Infoには、iniファイルで設定した項目が表示されています。自分が設定した通りに表示されているか確認してください。
次にSummaryの右にあるListPHPタブをクリックすると保存されているPHPファイルが全て表示されます。
この段階では、var#0の行はキャッシュされていないはずです(これを可能にする設定については後で説明します)。

cov_listphp
(2) Coverager

右上にあるCovaragerのタブをクリックします。
読み込まれているPHPファイルのrootディレクトリが表示されます。

このディレクトリをクリックするとツリー上に深まっていき、最後には保存されている実行ファイルのPHPファイルが表示されます。それをクリックするとPHPファイルのスクリプトが表示され読み込まれている行がグレー、読み込まれていない行がレッドで着色されて表示されます。
Percentは、スクリプトの全行に対する読み込まれている行の割合を表しています。

サーバーのファイラーやWinSCPで/var/local/xcacheにアクセスしてみるとディレクトリがツリー上に作成されていて最終的には拡張子.pcovのバイナリーファイルが保存されています。興味があったら確認してみてください。
Coveragerの使用は、Xcacheの動作を遅くする可能性もあるので、必要なければこの機能をOFFにしてください。他の機能への影響はありません。

(3) Diagnosis(機能診断)

右上のDiagnosisタブをクリックすると以下のような表示がなされます。

異常がなければグリーンのバックグラウンドでその旨(異常がないこと)が表示されます。
Using VAR Cacherの行とXcache Module行の項目は、Warning表示でバックランドはホワイトになっているはずです。前者には、「単にVar CacherをONにしただけではVar Dataのキャッシュは行われません。サード・パーティのアプリが必要です」といった趣旨の但し書きがあります。3rd Parteyのアプリは具体的に示されていませんので、ネットでWordpress用のプラグインを検索してみました。次にそのインストール法を説明いたします。

(4) Var Cacherのインストール

Var CacherはMysqlの計算結果を保存し、その計算過程を節約することによってMysql Data Baseへのアクセスを加速化させるプログラムです。
次のサイトにアクセスしてobject-cache.phpをダウンロードしてください(他のプラグインのように自動インストールはしないでください)。
XCache Object Cache Backend
ダウンロード・ファイルxcache.1.1.2.zipを解凍するとreadme.txtとobject-cache.phpファイルが現れるので後者のファイルをwordpress/wp-contentディレクトリにコピーし、所有者をapacheに変えます。
Wordpressでの操作を繰り返した後、再度xcacheにアクセスすれば、var#0行のCachedカラムに数字が入っているはずです。
Diagnosisタブにアクセスすれば、Using VAR Cacherの行がグリーンになって”Warning”が”OK Cache in use”に変わっているはずです。

以上、Xcacheの重要な機能を引き出す方法を説明しましたが、各機能の項目の詳しい説明や有効活用については不明なところが多くありますので、その解説については今後の課題とします。読者で解明された方がいたら教えてください。


関連記事



コメントを残す




空欄に計算式を満たす数値を記入してください(必須)