web-dev-qa-db-ja.com

Windows 7でXAMPP 1.8.3でImageMagickを実行する

LocalhostでImageMagickが動作するように何時間も努力しています(Windows 7でXAMPP 1.8.3を実行)。私はこのウェブサイトで見つけることができるすべての解決策を文字通りチェックしてみましたが、他にもたくさんあります。何も動作しません。 ImageMagickビルドとimagick DLLの組み合わせに関係なく、Apacheを起動しようとすると常に「ca n't find dll」エラーが発生します(特定のメッセージは、どの組み合わせをしようとしているかによって異なりますが、常に欠落しているDLLメッセージ)。だれでも、動作するXAMPP/ImageMagick/Imagickの(比較的最近の)組み合わせを教えてもらえますか?

20
Chris Stocking

OK。私はようやく機能する組み合わせを見つけました。 [〜#〜] much [〜#〜]試行錯誤の後、最終的に以下の組み合わせを自分のマシンで動作させることができました。うまくいけば、これに苦労しているかもしれない他の誰にも有効です。

  • OS:Windows 7 64ビット
  • PHP:5.5.6
  • XAMPP:1.8.3
    • コンパイラ:MSVC11
    • アーキテクチャ:x86
  • ImageMagick:ImageMagick-6.7.7-5-Q16-windows-dll(利用可能 ここ
  • Imagick DLL: http://www.peewit.fr/imagick/ のPHP5.5.xバージョン

注:これを試した後、Apacheはエラーメッセージなしで起動しました。コンピューターを再起動する必要はありませんでした(Apacheを再起動しただけです)。名前にスペースが含まれていないディレクトリにImageMagickをインストールしています(一部のインストールで問題になる可能性があると示唆している人もいます)。私の場合、c:\ xampp\imagemagickにインストールしました。

幸運を祈ります!

34
Chris Stocking

ImagickはPECL拡張機能であり、 official windows.php.net サイトにはPECL拡張機能のコンパイル済みバージョンがあります。

Imagickを次からダウンロードしてください: http://windows.php.net/downloads/pecl/releases/imagick/

そして、ImageMagickを以下からダウンロードします。 http://windows.php.net/downloads/pecl/deps/

1つのサイトからImagickをダウンロードし、別のサイトからImageMagickをダウンロードすることはできません。これは、Imagickがコンパイルされるときに、コンパイル対象のImageMagickのバージョンに基づいて異なるいくつかの設定を使用するためです。

参考までに、Imagick拡張モジュールのメンテナーは Apache内で実行しない を推奨していますが、代わりにSupervisorDやcronなどを介してバックグラウンドタスクとして実行することをお勧めします。これは、セキュリティとパフォーマンスの両方の理由によるものです。

13
Danack

この爆破されたもの(Windows 7、64ビット)を動作させるのに何時間も費やした後、成功しなかったので、他のシステムを調べて問題を処理する方法を確認することにしました。 mediawikiが行ったことは、単にImageMagick/PHP拡張機能を使用しないことでした! ImageMagick convert.exeプログラムを直接呼び出し、その結果を使用します(mediawikiパッケージのincludes/media/Bitmap.phpを参照)。

PHP拡張機能を放棄したことを人々に非難することはできません。明らかに、「正しい」常に変化するコンパイラでコンパイルし、少なくともApacheおよびImageMagickビルドと一致させる必要があるからです。驚くべきことに、この問題は5年以上にわたって続いていますが、まだ処理されていません。

したがって、私の「解決策/答え」は実際には1つではなく、基本的にはMediaWikiのようにImageMagickを呼び出して問題を回避することです。

2
Mr Ed