WinCacheについて調べてみた。

EC CUBE3をXAMPPにインストールするときに警告が出たのでWinCacheについて調べてみた。

ec3

http://pecl.php.net/package/wincache

こんなものらしいです。
でも英語で何が書いてあるかわかりませんね。

日本語のマニュアルを読んでみると
http://php.net/manual/ja/wincache.installation.php

もともとはバンドルされていないようなものなんですね。
追加で実装するモジュールのようです。

では何に使うのか?
の前にそもそもPECLが何かわかっていないので調べてみることに

http://php.net/manual/ja/install.pecl.php
» PECL は PHP 拡張モジュールのリポジトリで、 » PEAR パッケージシステムを経由して使用可能です。
とある。

やったね!全部無料っぽいよ!
PECL拡張モジュールを使うことによってPHPに拡張機能を持たせることができるみたいです。

“また、 » pear コマンド についても理解していることとします。 “

うえぇ・・・理解してないです。全然。
http://pear.php.net/manual/en/guide.users.commandline.cli.php
いやいや・・・いやいや。理解しなきゃダメなんですかねこれは
そんなわけで
http://www.phpbook.jp/pear/
このサイトさんを参考にしてみました。

PEARのパッケージマネージャーをインストールするみたいなのでさっそく実行

pear

ええ・・・こういう事じゃないの・・

pear2

と思ったらXAMPPには元々入ってたわテヘッ
早速マニュアルをダウンロード
http://pear.php.net/manual/
“Many HTML files"のzipファイルをダウンロードしてみた。

pear3

何も入ってなくてワロタ

仕方なく"pear_manual_en.tar"の方をダウンロードしてみたら中身が入ってました。

あっ・・ていうか2016年5月現在日本語マニュアルはリンク切れしてるのね。
仕方ない諦めよう。

PEARコマンドがどうかって話になりそうだけどWinCacheと関係なくなってきそうなので
本題に戻る。

PEARが入っていることが確認できたので
もう使えるようになってるのかな
http://pecl.php.net/package/wincache

  1. どこか一時的な場所にパッケージを展開します。

  2. php_wincache.dll を PHP の拡張モジュール用フォルダにコピーします。 このフォルダは、通常は PHP のバイナリファイルがあるフォルダと同じ場所にあって “ext" という名前です。たとえば C:\Program Files\PHP\ext のようになります。

  3. php.ini ファイルをテキストエディタで開きます。通常は PHP のバイナリファイルと同じ場所にあります。 たとえばC:\Program Files\PHP\php.ini のようになります。

  4. php.ini ファイルの最後に extension = php_wincache.dll という行を追加します。

  5. php.ini ファイルを保存して終了します。

  6. IIS Application Pools for PHP をリサイクルして設定の変更を適用します。 この拡張モジュールが有効になったことを確かめるには、 phpinfo 関数をコールする PHP のコードを書いた phpinfo.php というファイルをつくります。

  7. PHP を使う IIS ウェブサイトのルートフォルダに phpinfo.php を保存し、 http://localhost/phpinfo.php を開きます。そして、表示されたウェブページから wincache というセクションを探します。 拡張モジュールが有効になっていれば、phpinfo の出力に WinCache の設定項目が含まれるはずです。

ってな感じらしいですが

“この拡張モジュールには二種類のパッケージがあります。PHP 5.2.X 用と PHP 5.3.X 用です。使っている PHP のバージョンにあわせて適切なほうを選びましょう。"

え・・?
うちのXAMPPさんはPHP Version 5.6.15で動かしているのでどうしようか。
最新版入れておくか。

pear4

まあ・・1.3.7.10と2.0.0.6を両方ダウンロードしてみます。

2.0.0.6から使ってみるか。
んじゃまあ早速php_wincache.dllをC:\xampp\php\extあたりに入れてみますか。

解凍したけど・・・・php_wincache.dll無いんだけど
ああ!!!
Windowsだからこっちか!!

pear5

http://pecl.php.net/package/WinCache/1.3.6.1/windows

完全にリンク見逃してたわ。

スレッドセーフってなんやねん・・・
http://php.net/manual/ja/faq.obtaining.php#faq.obtaining.threadsafety

PHP をダウンロードするときの「スレッドセーフ」の意味は?

スレッドセーフである、というのは、Windows 上の Apache 2 のような マルチスレッドのウェブサーバーでも動作するバイナリだという意味です。 スレッドごとにローカルストレージのコピーを作成し、 別のスレッドとデータの衝突を起こさないようにしています。

それで、結局どっちを選べばいいのかですって? もし PHP を CGI として動かすつもりなら、スレッドセーフでなくてもかまいません。 リクエストのたびにバイナリが起動するからです。IIS5 や IIS6 といったマルチスレッドのウェブサーバーで動かす場合は、 スレッドセーフ版の PHP を選ばなければなりません。"

ってことなのでスレッドセーフ・・・ってことでいいのかな。ちょっと読んでもよくわかりません。
やっとのことでphp_wincache.dllが手に入ったのでさっそく入れてみました。

そして次は設定。php.iniの最終行に

と追加しておきました。
pear6

だがしかし有効にならない・・・

こちらのパスも合ってるしdllも入れたし。やっぱりPHPのバージョンかな。

※未解決

EC CUBE, PHP, XAMPP

Posted by bistro