MW211 EXIT

devlog
PECL/パッケージインストール手順
2013年10月15日
まず、PECLがPHPに標準添付されていないか確認する。
┌──────────────────────────────────────┐
│C:\Program Files (x86)\PHP>php -i                                           │
└──────────────────────────────────────┘
上記で、PHPのインストール情報を確認し、キーワード検索する。

「zip」パッケージはインストール済みだった。よって、インストール不要。
┌──────────────────────────────────────┐
│C:\Program Files (x86)\PHP>php -i                                           │
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
│zip                                                                         │
│                                                                            │
│Zip => enabled                                                              │
│Extension Version => $Id: 75f98b591f6e5b656786b38e42f0ca759a8eca80 $        │
│Zip version => 1.11.0                                                       │
│Libzip version => 0.10.1                                                    │
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
└──────────────────────────────────────┘
インストールしてしまうと二重呼出エラーとなってしまう。
┌──────────────────────────────────────┐
│Warning: Module 'zip' already loaded in Unknown on line 0                   │
└──────────────────────────────────────┘

そこで、(使い道はよくわからないが)該当のない
「trader」パッケージを対象にしてみる。

まず、未インストールである実験をしてみる。
「trader」パッケージの関数「trader_sum()」を実行してみる。
┌──────────────────────────────────────┐
│var_dump(trader_sum(array(2,4)));                                           │
├──────────────────────────────────────┤
│Fatal error: Call to undefined function trader_sum() in …                  │
└──────────────────────────────────────┘
未定義エラーが発生する。

さて、インストール。
まず、「http://pecl.php.net」で検索して、ダウンロードコーナーを探し、
Windows版のdllをダウンロードする。
今回の場合、「php_trader-0.3.0-5.3-ts-vc9-x86.zip」が入手され
この中に「php_trader.dll」が入っていた。

このdllを「C:\Program Files (x86)\PHP\ext」に置く。
で、「php.ini」を以下に書き換えて、Apache再起動。
┌──────────────────────────────────────┐
│[PHP]                                                                       │
│;;;;;;;;;;;;;;;;;;                                                          │
│; Fopen wrappers ;                                                          │
│;;;;;;;;;;;;;;;;;;                                                          │
│extension_dir="C:\Program Files (x86)\PHP\ext"                              │
│;;;;;;;;;;;;;;;;;;;;;;                                                      │
│; Dynamic Extensions ;                                                      │
│;;;;;;;;;;;;;;;;;;;;;;                                                      │
│extension=php_trader.dll                                                    │
└──────────────────────────────────────┘

さっきの命令を再度実行すると、見事に結果が返ってきた。
┌──────────────────────────────────────┐
│var_dump(trader_sum(array(2,4)));                                           │
├──────────────────────────────────────┤
│array(1) { [1]=> float(6) }                                                 │
└──────────────────────────────────────┘
(なにやっているかはわからないけどね)
とにかく、インストール成功!

アンインストールするには、dllの実体を削除して、
「php.ini」の「extension=」を削除してしまえばよい。
※「extension_dir=」はいじらない方がよさそうだ
※Apacheを停止しないと、dllは掴まれているの削除できないようだ
分類:PECL
PECL/実録あるパッケージのインストール
2013年10月14日
「zip」パッケージをインストールした手順(といっても後述の通りオチあり)。

まず、「http://pecl.php.net」で検索して、ダウンロードコーナーを探す。

「http://pecl.php.net/package/zip/1.12.2/windows」と判明したいので
今回は「PHP 5.3.17」にインストールする予定なので
「PHP 5.3」の「5.3 Thread Safe (TS) x86」を選択し
「php_zip-1.12.2-5.3-ts-vc9-x86.zip」をダウンロードする。

これを解凍し、中から「php_zip.dll」を取り出して
「C:\Program Files (x86)\PHP\ext」に置く。

「php.ini」を以下に書き換えて、Apache再起動。
┌──────────────────────────────────────┐
│[PHP]                                                                       │
│;;;;;;;;;;;;;;;;;;                                                          │
│; Fopen wrappers ;                                                          │
│;;;;;;;;;;;;;;;;;;                                                          │
│extension_dir="C:\Program Files (x86)\PHP\ext"                              │
└──────────────────────────────────────┘

ちなみに、「php.ini」に指定を追加する必要はないようだ。
┌──────────────────────────────────────┐
│[PHP]                                                                       │
│;;;;;;;;;;;;;;;;;;;;;;                                                      │
│; Dynamic Extensions ;                                                      │
│;;;;;;;;;;;;;;;;;;;;;;                                                      │
│extension=php_zip.dll                                                       │
└──────────────────────────────────────┘
もし、追加すると二重呼出エラーが発生する。
┌──────────────────────────────────────┐
│C:\Program Files (x86)\PHP>php -i|clip                                      │
│Warning: Module 'zip' already loaded in Unknown on line 0                   │
└──────────────────────────────────────┘

以下のようなテストプログラムを動かすと、ZIP圧縮ファイルの中身一覧が表示される。
┌──────────────────────────────────────┐
│$zip = zip_open('C:\xxxx\xxxx.zip');                                        │
│$entry = zip_read($zip);                                                    │
│while ($entry) {                                                            │
│    echo zip_entry_name($entry) . "\n";                                     │
│    $entry = zip_read($zip);                                                │
│}                                                                           │
│zip_close($zip);                                                            │
└──────────────────────────────────────┘

っていうか、「php_zip.dll」を削除してみたが、上記はそのまま動く。

よくよく調べてみると、標準でPHPに付随していたようだ。
┌──────────────────────────────────────┐
│C:\Program Files (x86)\PHP>php -i|clip                                      │
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
│zip                                                                         │
│                                                                            │
│Zip => enabled                                                              │
│Extension Version => $Id: 75f98b591f6e5b656786b38e42f0ca759a8eca80 $        │
│Zip version => 1.11.0                                                       │
│Libzip version => 0.10.1                                                    │
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
└──────────────────────────────────────┘
ということで、他で仕切り直し。

ちなみに、「pecl install zip」でインストールを試みるとエラーとなる。
┌──────────────────────────────────────┐
│C:\Program Files (x86)\PHP>pecl install zip                                 │
│downloading zip-1.10.2.tgz ...                                              │
│Starting to download zip-1.10.2.tgz (236,912 bytes)                         │
│.................................................done: 236,912 bytes        │
│61 source files, building                                                   │
│WARNING: php_bin .\php.exe appears to have a suffix .exe, but config        │
│ variable php_suffix does not match                                         │
│ERROR: The DSP zip.dsp does not exist.                                      │
└──────────────────────────────────────┘
分類:PECL
PECL/インストール手順まとめ
2013年10月12日
インストールには、直接インストールコマンドを実行して
一気通貫でやってしまうタイプと、一旦ダウンロードしてから、
インストールするタイプがある。
一旦ダウンロードして行うタイプだと、オフラインでインストールができる。
#インストーラ入手はオンラインだが
┌────────────┬────────────┬────────────┐
│                        │        PECL本体        │        PECL部品        │
├────────────┼────────────┼────────────┤
│ネット上からインストール│(go-pear.bat)           │pecl install 部品       │
├────────────┼────────────┼────────────┤
│ネット上からダウンロード│         (不明)         │pecl download 部品      │
├────────────┼────────────┼────────────┤
│ファイルからインストール│         (不明)         │pecl install ファイル   │
├────────────┼────────────┼────────────┤
│アンインストール        │(pear uninstall pear)   │pecl install 部品       │
├────────────┼────────────┼────────────┤
│インストール状況確認    │pecl help               │pecl list               │
└────────────┴────────────┴────────────┘
PECL本体については、PEAR本体のインストール時に同時にインストールされ
アンインストール時に同時にアンインストールされてしまうようだ。

なお、「pecl install ファイル」を行うと
「ERROR: The DSP ■.dsp does not exist.」というエラーとなる。
「pecl install 部品」でも過程が合流するので同じくエラーに。

ダウンロードしてきたファイルが実行ファイルではないためなのか?
「pecl build」や「pecl package」コマンドを実行してもうまくいかない。

何か根本的な誤認をしてそうだ。。。
分類:PECL
PECL/インストール物件を確保
2013年10月10日
┌──────────────────────────────────────┐
│pecl download-all                                                           │
└──────────────────────────────────────┘
を実行すれば、インストール物件を(取得できるものだけ)全部ダウンロードできる。
分類:PECL
PECL/PECLバッチのシンタックスエラー
2013年09月23日
「pecl.bat」を実行した場合に発生する以下のエラー。
  ┌────────────────────────────────────┐
  │syntax error,unexpected '(' in Unknown on line 9                        │
  └────────────────────────────────────┘
PEARの場合と同件で、パスに「Program Files (x86)」のように括弧が混じっていると、
発生するもの。
解消策としては以下の通り(PEARの場合と同じ)。
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  このエラーの解消策としては、例えば「pecl.bat」の中身を以下のように変更する
  ┌────────────────────────────────────┐
  │include_path="%PHP_PEAR_INSTALL_DIR%"                                   │
  └────────────────────────────────────┘
    ↓
  ┌────────────────────────────────────┐
  │"include_path='%PHP_PEAR_INSTALL_DIR%'"                                 │
  └────────────────────────────────────┘
  全体を「"」で囲ってやるのだ(右辺だけではなく全体という点に注意)
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
なお、シンタックスエラーの行番号は直す場所の行番号と全く関係ないから注意。
分類:PECL
前へ 1 次へ