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のパッケージマネージャーをインストールするみたいなのでさっそく実行

C:\xampp\php>go-pear.bat

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の最終行に

extension = php_wincache.dll

と追加しておきました。

pear6

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

extension_dir="C:\xampp\php\ext"

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

※未解決

EC CUBE, PHP, XAMPP

Posted by bistro