[英]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 並檢查:
- 架構:x86 或 x64。 您的計算機可能是 x64,但您的 php 在 x86 上運行,所以不要假設
- 線程安全:是或否。 也非常重要。
- 您的 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 。 在這里,我們不得不做出另一個慎重的選擇
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
我能夠讓 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.