phpの「Fatal error: Call to undefined function mb_language() in …」を解決する方法

下記のようなエラーが表示された場合の対処方法。

Fatal error: Call to undefined function mb_language() in /var/www/html/hoge/fuga.php on line 15

php-mbstringのインストール

root権限になって

[root@localhost ~]# yum -y install php-mbstring

下記のようにインストールが完了。

読み込んだプラグイン:fastestmirror, langpacks
base                                                     | 3.6 kB     00:00
extras                                                   | 3.4 kB     00:00
updates                                                  | 3.4 kB     00:00
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php-mbstring.x86_64 0:5.4.16-42.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package              アーキテクチャー
                                     バージョン              リポジトリー  容量
================================================================================
インストール中:
 php-mbstring         x86_64         5.4.16-42.el7           base         505 k

トランザクションの要約
================================================================================
インストール  1 パッケージ

総ダウンロード容量: 505 k
インストール容量: 1.3 M
Downloading packages:
php-mbstring-5.4.16-42.el7.x86_64.rpm                      | 505 kB   00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : php-mbstring-5.4.16-42.el7.x86_64               1/1
  検証中                  : php-mbstring-5.4.16-42.el7.x86_64               1/1

インストール:
  php-mbstring.x86_64 0:5.4.16-42.el7

完了しました!

php.iniファイルの修正

php.iniファイルの場所を確認

[www@localhost cocorotown]$ locate php.ini
/etc/php.ini

php.iniファイルの内容を修正

「Dynamic Extensions」の欄に追記する。

ファイルを開いて

[root@localhost ~]# vi /etc/php.ini

「Dynamic Extensions」の部分を検索。
vimでファイルを開いた状態で下記コマンドを実行。

/Dynamic

該当部分にジャンプする。

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension
;
; For example, on Windows:
;
;   extension=msql.dll
;
; ... or under UNIX:
;
;   extension=msql.so
;
; ... or with a path:
;
;   extension=/path/to/extension/msql.so
;
; If you only provide the name of the extension, PHP will look for it in its
; default extension directory.

上記部分の下に追記。

extension=mbstring.so

※「i」で編集モードになり、入力、「Esc」で通常モードに戻り、「:wq!」で保存して閉じる。

httpdを再起動

[root@localhost ~]# systemctl restart httpd.service

phpinfo()で確認

下記部分が追加されている。

php TIPS の一覧