web-dev-qa-db-ja.com

致命的なエラー:クラス 'imagick'が見つかりません

WampServer 2にimagemagic php拡張機能をインストールしようとしています。

  • ImageMagickをダウンロードしてインストールしました。 ImageMagick-6.8.8-10-Q16-x86-dll.exeを選択しました

  • PHP拡張機能をダウンロードしました。

  • ダウンロードしたdll拡張子をC:\ wamp\bin\php\php5.4.16\ext \に移動しました

  • Php.iniを変更し(Wampトレイアイコン>右クリック> PHP> php.ini)からアクセスし、引用符なしで「extension = php_imagick.dll」を追加しました。拡張リスト。

  • Apacheを再起動しました。トレイアイコンからPHP拡張機能リストに表示される拡張機能に気付かずに、wampserverを再起動しました。ImageMagick拡張機能はリストで有効になっています。

ただし、使用できません。クイックテストを実行すると、「致命的なエラー:クラス 'Imagick'が見つかりません」が返されます。 phpinfo()では、imagemagickがenv変数に追加されたことのみを示しています。

imagickをテストしようとすると:

$im = new imagick( 'test.jpg' );
// resize by 200 width and keep the ratio
$im->thumbnailImage( 200, 0);
 // write to disk
$im->writeImage( 'test_thumbnail.jpg' );

エラーが表示されます:Fatal error: Class 'imagick' not found何が間違っていますか?私はwin7 32ビット、phph 5-4-16およびApache2で作業しています

19
Dev DOS

動作させる唯一の方法は、古いバージョンのimagick:php_imagick-3.2.0b1-5.4-nts-vc9-x86を使用することです。

1
Dev DOS
  • 試してください:php -m | grep imagick
  • 結果が空の場合:Sudo apt-get remove --purge php5-imagick && Sudo apt-get install php5-imagick

よろしく

8
Amadu Bah

ライブラリのバージョンがずれている可能性があります。

これが私がそれを解決した方法です

私はこれらすべての答えに本当に苦労しました。振り返ってみると、非常に細かい重要な詳細を省略していることを除いて、それらのほとんどが正しいことに気付きました。

1).何よりもまず、php_infoで開始したいライブラリまたはDLLのダウンロードを開始する前にこれら3つの非常に重要なパラメータを見つけるために。

PHP_Infoを実行し、次を確認します。

  1. アーキテクチャ:x86またはx64。コンピューターはx64かもしれませんが、phpはx86で実行されているので、
  2. スレッドセーフ:はいまたはいいえ。また非常に重要です。
  3. あなたのPHPバージョン

2).以下からImageMagickをダウンロードします: https://windows.php.net/downloads/pecl/deps/ 。コンピューターはx64ですが、phpはx86を実行しているため、ImageMagick-7.0をダウンロードしました。--vc * -x86.Zip

3).すべてのDLLを解凍して、解凍されたbinサブフォルダーからApache binディレクトリーにコピーします。これは、CORE_RL _。dll and IM_MOD_RL _。dllに加えて、いくつかの他のDLLです。私の場合、[zip形式でダウンロード]/bin/*->にコピー-> C:\ Xampp\Apache\bin

4).http://pecl.php.net/package/imagick に移動します。 ZipリンクまたはDLLリンクを選択できます。DLLリンクを選択します。私の場合、最新バージョン3.4.3を選択しました。 https://pecl.php.net/package/imagick/3.4.3/windows に進みます。ここでは、別の慎重な選択を行う必要があります。

  1. 私のphpバージョンはPHP 5.6
  2. スレッドセーフはenabled
  3. Phpが実行されているアーキテクチャはx86
  4. そこで、5.6 Thread Safe(TS)x86

5).「php_imagick.dll」を解凍してphpextフォルダーにコピーします。そして、他のすべてのDLL phpフォルダーへのファイル

6).エディターを使用してphp.iniを開きます。 「extension =」を検索し、この行extension=php_imagick.dllをそれらの1つとして追加します。

7). Xampp/Wampを再起動するか、Apacheを再起動してPHP_INFOを再度実行します。 Imagickが表示されます。それでも表示されない場合は、このリンクを参照してください http://php.net/manual/en/imagick.setup.php#119084

ボーナスのヒント:visual c ++ 14 runtimeのダウンロードが必要になる場合があります。このリンクから https://support.Microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads 最新バージョンを選択しました。

2
Maxximum Rider

任意のページで<?php phpinfo(); ?>を実行します。これにより、サービスで実行されているすべてのサービスが表示されます。実行されている場合は、どのディレクトリで表示されます。

WHMパネルを使用している場合は、imageMagickをインストールする必要があります

0
earnest
apt-get install pkg-config libmagickwand-dev -y
cd /tmp
wget https://pecl.php.net/get/imagick-3.4.0.tgz
tar xvzf imagick-3.4.0.tgz
cd imagick-3.4.0
phpize
./configure
make install
rm -rf /tmp/imagick-3.4.0*
echo extension=imagick.so >> /etc/php/7.0/cli/php.ini
echo extension=imagick.so >> /etc/php/7.0/fpm/php.ini
service php7.0-fpm restart
service nginx restart

from PHP 7にImagick 3.4.0をインストール

0
Won Jun Bae

大文字の「i」から始めて、クラスに適切なケーシングを使用してみましたか?

$im = new Imagick( 'test.jpg' );

PHPでは、クラス名とファイル名は大文字と小文字が区別されませんが、クラスローダーは区別されます。

0
Paulo Amaral