厳密に言えば PHP の Imagick が使えない件。
ググってここにたどり着いた人の為に最初にいっておきますが、この問題、私は解決できてません!
環境はこう。
- Windows 7 Professional
- PHP 5.2.14
- Apache 2.2.x
- ImageMagick 6.6.5
ただ、この場合 Apache は多分関係ない。
だって、
php -v
ってやっただけで発症するんだから。
手順はこう。
1. Apache 2.2 をインストール。
これは普通にインスコ。多分今回の問題に関係ないので詳細略。
2. PHP 5.2.14 をインストール。
3. ImageMagick 6.6.5 をインストール。
4. Imagick を配備。
以前の PHP には ext に最初から php_imagick.dll も入ってたんだけど、5.2.14 のパッケージには入ってなかった。ただ、従来も、最初から入ってる php_imagick.dll は上手く動かないという報告が多かった。で、大抵はどっかからダウンロードしてきて配備する。いろいろググると、以下のようなところがあたる。
http://valokuva.org/outside-blog-content/imagick-windows-builds/080709/
http://valokuva.org/builds/
どっちも同じドメインだけど、配布物が違うのはこれ如何に?まぁそれは置いといて、結論をいうと、どれを使ってもダメでした。とりあえずここは上のサイトから一番新しいと思われる php_imagick_dyn-Q16.dll というのをダウンロードして、C:\php\ext にコピー。
5. VC++ 2008 再頒布可能パッケージをインストール。
どうも 上記の dll はVCでコンパイルされていて、それをうまく動かすにはこれが必要らしい。
http://www.microsoft.com/downloads/details.aspx?familyid=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=ja
6. php.ini 書き換え。
extension_dir = “c:/php5/ext”
extension=php_imagick_dyn-Q16.dll
という項目を追加する。
これで、コマンドプロンプトから
php -v
と打ち込むと、バージョン情報自体は表示されるが、ほどなく
CLIは動作を停止しました
というダイアログも表示される。
このキーワードでググっても、php_mysqli.dll が悪さをしてるんだというようなものばかりひっかかって、Imagick の話はない。php_mysqli.dll はすこぶる元気に動いてるんですが。当然、php_mysqli.dllをコメントアウトしても状況変わらず。php_imagick_dyn-Q16.dllをコメントアウトすれば、上記メッセージは出ない(つまり、正常動作)。
ちなみに、php_imagick_dyn-Q16.dll の代わりに php_imagick_ts.dll を使うと、
—————————
php.exe – エントリ ポイントが見つかりません
—————————
プロシージャ エントリ ポイント zend_replace_error_handling がダイナミック リンク ライブラリ php5ts.dll から見つかりませんでした。
というようなメッセージになる。
当然、この状態で Apache を起動しても、PHPから Imagick がロードできない。
かなり調べたんだけど、全く情報が得られず。これで悩んでるのって私だけかなぁ。
コメント