PHPの警告「PHP Warning: Module “imagick” is already loaded in Unknown on line 0」
phpのバージョンを確認すると「PHP Warning: Module “imagick" is already loaded in Unknown on line 0」と渓谷メッセージが表示されていました
$ php -v PHP Warning: Module "imagick" is already loaded in Unknown on line 0 PHP 8.1.21 (cli) (built: Jul 4 2023 23:26:29) (NTS gcc x86_64) Copyright (c) The PHP Group Zend Engine v4.1.21, Copyright (c) Zend Technologies with Zend OPcache v8.1.21, Copyright (c), by Zend Technologies
このワーニングメッセージですが、「imagick」モジュールがすでにロードされているので警告が出ています
これは、php.ini等にファイルに「imagick」モジュールが2回設定されていることが原因である可能性があるので、2回ロードされていないか調べます
「php.ini」で「imagick.so」がロードしていないか調べます。
$ grep "imagick.so" /etc/php.ini
私の環境では、imagick.so はロードしていないので、「/etc/php.d/」以下で読み込まれていないか調べます
$ ls -l /etc/php.d/ | grep imagick -rw-r--r-- 1 root root 21 Jul 25 14:51 20-imagick.ini -rw-r--r-- 1 root root 530 Mar 10 17:32 40-imagick.ini
「20-imagick.ini」と「40-imagick.ini」のファイルが2つあるので、このファイルのどちらでも「imagick.so」が読み込まれている可能性が高いのでファイルの中身を確認します
$ grep extension /etc/php.d/20-imagick.ini extension=imagick.so $ grep extension /etc/php.d/40-imagick.ini ; Enable imagick extension module extension = imagick.so
設定ファイルが2個あって、どちらともロードされているの原因です。片方のファイルを削除したら解決しました
$ cat /etc/php.d/20-imagick.ini extension=imagick.so $ sudo rm -f /etc/php.d/20-imagick.ini
ディスカッション
コメント一覧
まだ、コメントがありません