Windows版PHPでphp_mbstring.dllが見つからない場合のエラーの原因と解決方法の1つ

php.netからダウンロードしたWindows版のPHP7最新版を使って久しぶりにプログラミング。
Windows 10のコマンドプロンプトでPHPを実行したら、以下のようなエラーが発生してしまった。

【エラーの内容】
C:\Users\Owner\Desktop\nobu\php-7.1.10-Win32-VC14-x86>php ./test/test.php > ./test/testfile.txt
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_mbstring.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Fatal error: Uncaught Error: Call to undefined function mb_regex_encoding() in C:\Users\Owner\Desktop\nobu\php-7.1.10-Win32-VC14-x86\test\test.php:6
Stack trace:
#0 {main}
thrown in C:\Users\Owner\Desktop\nobu\php-7.1.10-Win32-VC14-x86\test\test.php on line 6

【解決方法】
php.iniでphp_mbstring.dllが格納されているフォルダ「extension_dir」を指定することで解決した。
(PHPをコマンドプロンプトではなく、ApacheやIISから呼び出している場合は、php.iniの修正後、ApacheやIISの再起動も必要なはずなので注意。)

(php.iniの初期設定)
; extension_dir = "./"

(php.iniの修正例)
extension_dir = "C:\Users\Owner\Desktop\nobu\php-7.1.10-Win32-VC14-x86\ext"

※指定したフォルダ内にphp_mbstring.dllが存在しない場合は、php_mbstring.dllを指定したフォルダ内に設置する必要がある。
(この例の場合、extフォルダ内にphp_mbstring.dllが存在しない場合は、extフォルダ内にphp_mbstring.dllを設置する。)

私が書いた過去の記事を確認していると、7年前にも似たような記事を書いているなぁ。
時が経つのは早いし、忘れるのも早い。

《関連リンク》
PHPエラー「Call to undefined function mb_language()」の原因と解決方法
PHPエラー「Fatal error: Call to undefined function mb_convert_encoding()」の原因と解決方法(Windows用PHP)

前へ

えひめ国体のタオルハンカチを体に乗せられて横たわる猫-ゆきお

次へ

PHPのexplode関数で文字化けして困っているならmb_split関数を使ってみよう