[英]PHP Warning: Module 'imagick' already loaded in Unknown on line 0
我有一個簡單的測試文件,其中唯一的 php 代碼是:
if (isset($_REQUEST['back']) && ($back != '')) { $back = $_REQUEST['back']; }
$filename = 'images/'.$back.'.jpg';
$file = (file_exists($filename)) ? $back : 'back1';
現在每次運行該文件時,都會添加此行PHP Warning: Module 'imagick' already loaded in Unknown on line 0
in my error log。 有什么建議嗎?
打開您的 php.ini 文件並對此發表評論
;extension=imagick.so
這解決了我的問題
extension=imagick.so
在我的 php.ini 中不存在,所以我通過在 Home >> Software >> Module Installers - "PHP Pecl" Installer 下使用 WHM 重新安裝imagick (3.4.4)
解決了這個問題。
沒有更多的錯誤(到目前為止)。
僅作記錄,因為它可能會幫助使用共享主機 (cPanel) 的其他人。
我在共享主機 php7.2 上遇到錯誤:模塊 'imagick' 已經加載到第 0 行的未知中
一開始托管服務提供商說這是我的錯誤配置(運行 Yii2.16)。 但在我向他們展示之后,所有互聯網都將這個問題與服務器配置相關聯——他們開始聽我的。 在我證明了php7.1沒有錯誤之后,他們開始搜索錯誤。
他們確認,他們將(錯誤之前)7.2 更新到新版本(7.2.14),修復了一些其他錯誤,但 Imagick 錯誤開始出現。 現在他們也找到了解決辦法。 正如他們告訴我的那樣 - 錯誤出現在 PERL 模塊或 PEAR package 的配置中,但他們沒有告訴我真正的問題。
解決方案,如果您在共享主機上 - 與您的提供商交談並試用 PHP 版本(如果您可以更改它們)。
確保您只激活了一次 imagick。
如果 windows:
活動extension=php_imagick.dll
和評論/刪除喜歡;extension=imagick
按照本教程
安裝 PHP 的 imagick 擴展后。 當我執行php-fpm -v
時,我遇到了同樣的問題,如下:
[root@localhost]# php-fpm -v
[10-Oct-2018 16:00:33] NOTICE: PHP message: PHP Warning: Module 'imagick' already loaded in Unknown on line 0
因為我在安裝 PHP 的 imagick 擴展時手動創建了echo extension=imagick.so >> php.ini
和echo extension=imagick.ini
imagick.ini。 我現在將刪除imagick.ini
,重新啟動php。 解決了!
這些庫也可以使用 /etc/php.d 中的 ini 文件加載。 確保它不在此處和 php.ini 中的文件中。
通過關於這個問題的乏味時刻,我找到了一個解決方案,如果您嘗試使用 PECL 卸載和安裝 ImageMagick 並且在 imagick.so 文件中也有一些問題,則該解決方案可能能夠修復系統。 . 因為在帶有 CPanel 的服務器上愚蠢地“安裝源代碼”才能真正獲得 WebP 支持。
但是您不需要在下面復制我的方法,也許您只需要做所有事情:
實際上是在EasyApache 4中重新安裝這個模塊:
mod_lsapi
重新安裝該模塊后,您將能夠通過系統中的該模塊重置 php.ini 文件。 然后很容易等待另一個完整的 error_log 從現在開始可能不會發生。
選項 2:
我嘗試使用 yum 甚至卸載 PECL 刪除所有 rpm,並使用 ImageMagick 作為源文件,一開始就安裝了整個系統錯誤。 ImageMagick 源代碼很難找到將 imagick.so 文件放入擴展文件夾的正確位置。 因為它在另一個帶有 CPanel 的目錄中:
/opt/cpanel/ea-php74/root/usr/lib64/php/modules
您可能希望使用“.Important that only if you have been made from source in your Cpanel system.”來卸載 all.rpm。 僅當您嘗試過源安裝時。
yum remove ImageM*
並從源代碼安裝。 如果你不能這樣做,請從源代碼中制作 ImageMagick 並啟用共享。 此外,在進行源代碼安裝后,您必須從 PECL 中刪除模塊 ImageMagick。 在卸載並使用 ImageMagick 的源版本之前,請確保 imagick.so 仍然在此目錄中,而該模塊仍使用 PECL 安裝:
cp /opt/cpanel/ea-php74/root/usr/lib64/php/modules/imagick.so /root/tmp
cp /root/tmp/imagick.so /opt/cpanel/ea-php74/root/usr/lib64/php/modules
要查找您自己的模塊文件夾,請使用:
php -i | grep extension_dir
請記住,我使用的是 php74 版本和 CPanel,因為這個問題只存在於這些 CPanel 用戶或在不同位置使用 php74 的用戶。 並使用正確的PHP版本代替php74。
要使共享啟用正確安裝 ImageMagick 源代碼:
./configure --enable-shared
make
make install
我不知道為什么,但我在 /etc/php.d/ 中有兩個 imagick.ini 文件
# ls -l /etc/php.d/*imag*
-rw-r--r--. 1 root root 21 15. Aug 11:46 /etc/php.d/20-imagick.ini
-rw-r--r--. 1 root root 530 12. Jan 2022 /etc/php.d/40-imagick.ini
我注釋掉了一個
extension=imagick.so
這些文件之一中的行,錯誤消失了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.