簡體   English   中英

致命錯誤:找不到類“imagick”

[英]Fatal error: Class 'imagick' not found

我正在嘗試在 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

  • 試試: php -m | grep imagick php -m | grep imagick
  • 如果結果為空,請執行以下操作: sudo apt-get remove --purge php5-imagick && sudo apt-get install php5-imagick

問候

您可能有未對齊的庫版本。

這是我解決它的方法

我真的很掙扎所有這些答案。 回顧過去,我意識到它們中的大多數都是正確的,只是它們遺漏了一些非常重要的細節。

1)。 首先,在您開始下載任何庫或 DLL 之前,您要從 php_info開始,找出這三個非常重要的參數。

運行 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 和 IM_MOD_RL_ .dll 以及一些其他 DLL。 就我而言, [zippeddownload]/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. 線程安全已啟用
  3. 架構 php 在x86上運行
  4. 所以我采用了5.6 Thread Safe (TS) x86

5)。 解壓並復制“php_imagick.dll”到 php ext文件夾。 以及所有其他 DLL 文件到 php 文件夾

6)。 使用編輯器打開php.ini 搜索“extension=”並將這一行添加extension=php_imagick.dll作為其中之一。

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我選擇了最新版本。

我讓它工作的唯一方法是使用舊版本的 imagick: php_imagick-3.2.0b1-5.4-nts-vc9-x86

做一個<?php phpinfo(); ?> <?php phpinfo(); ?>在任何頁面中。 這將顯示該服務上運行的所有服務。 如果它正在運行,那么它將顯示您在哪個目錄中。

如果您使用 WHM 面板,您可能需要在此處安裝 imageMagick

您是否嘗試使用以大寫“i”開頭的類的正確大小寫?

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

在 php 中,類和文件名不區分大小寫,但類加載器是。

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

在PHP 7上安裝Imagick 3.4.0

我能夠讓 WAMPSERVER 3.2.3 工作。 原來有幾個 php.ini 文件。 我必須更改 Apache 服務器目錄中的那個,才能讓 ImageMagicK 與 LocalHost 一起工作。

我在 apachexx.xx.xx\bin 目錄中的 php.ini 文件中添加了擴展名

擴展=imagick

我的路徑仍然指向 PHP 目錄並且對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM