PHPの警告「Module "***" is already loaded in Unknown on line 0」と対処方法

2024/11/05に公開

警告

PHP Warning:  Module "mbstring" is already loaded in Unknown on line 0

原因

mbstringが複数回読み込まれている

対処方法

1.コマンド「php --ini」実行

php --ini

下記のように表示される。

PHP Warning:  Module "mbstring" is already loaded in Unknown on line 0
Configuration File (php.ini) Path: /etc/php/8.3/cli
Loaded Configuration File:         /etc/php/8.3/cli/php.ini
Scan for additional .ini files in: /etc/php/8.3/cli/conf.d
Additional .ini files parsed:      /etc/php/8.3/cli/conf.d/10-mysqlnd.ini,
/etc/php/8.3/cli/conf.d/10-opcache.ini,
/etc/php/8.3/cli/conf.d/10-pdo.ini,
/etc/php/8.3/cli/conf.d/15-xml.ini,
/etc/php/8.3/cli/conf.d/20-calendar.ini,
/etc/php/8.3/cli/conf.d/20-ctype.ini,
/etc/php/8.3/cli/conf.d/20-curl.ini,
/etc/php/8.3/cli/conf.d/20-dom.ini,
/etc/php/8.3/cli/conf.d/20-exif.ini,
/etc/php/8.3/cli/conf.d/20-ffi.ini,
/etc/php/8.3/cli/conf.d/20-fileinfo.ini,
/etc/php/8.3/cli/conf.d/20-ftp.ini,
/etc/php/8.3/cli/conf.d/20-gd.ini,
/etc/php/8.3/cli/conf.d/20-gettext.ini,
/etc/php/8.3/cli/conf.d/20-iconv.ini,
/etc/php/8.3/cli/conf.d/20-mbstring.ini,
/etc/php/8.3/cli/conf.d/20-mysqli.ini,
/etc/php/8.3/cli/conf.d/20-pdo_mysql.ini,
/etc/php/8.3/cli/conf.d/20-phar.ini,
/etc/php/8.3/cli/conf.d/20-posix.ini,
/etc/php/8.3/cli/conf.d/20-readline.ini,
/etc/php/8.3/cli/conf.d/20-shmop.ini,
/etc/php/8.3/cli/conf.d/20-simplexml.ini,
/etc/php/8.3/cli/conf.d/20-sockets.ini,
/etc/php/8.3/cli/conf.d/20-sysvmsg.ini,
/etc/php/8.3/cli/conf.d/20-sysvsem.ini,
/etc/php/8.3/cli/conf.d/20-sysvshm.ini,
/etc/php/8.3/cli/conf.d/20-tokenizer.ini,
/etc/php/8.3/cli/conf.d/20-xmlreader.ini,
/etc/php/8.3/cli/conf.d/20-xmlwriter.ini,
/etc/php/8.3/cli/conf.d/20-xsl.ini,
/etc/php/8.3/cli/conf.d/20-zip.ini

2.「php.ini」ファイルと、当該モジュールのファイル(今回は「20-mbstring.ini」)の中身を確認する

php.ini
;extension=imap
extension=mbstring
;extension=exif
;extension=mysqli
20-mbstring.ini
; configuration for php mbstring module
; priority=20
extension=mbstring.so
~

"extension=mbstring"が各ファイルで有効になっていた。これが原因。

3."extension=mbstring"を片方のファイルでコメントアウトする

通常は拡張設定ファイル内で有効化するようなので、「php.ini」の方をコメントアウトしました。

php.ini
;extension=imap
;extension=mbstring
;extension=exif
;extension=mysqli

Discussion