CentOS7にPHP5.4がインストールされている状態で phpMyAdmin ver4 をインストールしてみると、「phpMyAdmin – Error The mbstring extension is missing. Please check your PHP configuration.」というメッセージが出力されました。
[環境]
CentOS Linux release 7.3.1611 (Core)
PHP 5.4.16
phpMyAdmin 4.0.10.1
エラーの内容
サーバーの公開用ディレクトリにphpMyAdminのファイルをアップロードしてアクセスしてみると以下のような画面になりました。
php.iniでmbstringを設定
このエラーメッセージはmbstring関連の設定がされていない、間違っているのが原因です。「mbstring 」は「php.ini」で編集します。
viで php.ini ファイルを開きます。
# vi /etc/php.ini
mbstring関連の下記の項目を変更します。php.iniファイルは多くの場合行の先頭に「;」が付いています。これはコメントアウトなので、必要な行は「;」を削除して、有効な状態にします。
mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstring.http_output = pass mbstring.encoding_translation = Off mbstring.detect_order = auto mbstring.substitute_character = none; mbstring.func_overload = 0 mbstring.strict_detection = Off mbstring.http_output_conv_mimetype=
※ mbstring.http_input と mbstring.http_output はHTTP通信時のインプット・アウトプットの文字コードの設定です。passは自動変換しないという意味です。
※ mbstring.substitute_character は変換に失敗したときに代用として出力する文字です。noneは何も出力しないという意味です。
※ mbstring.func_overload は自動オーバーロードの設定です。0はオーバーロードしないという意味です。
※ mbstring.strict_detection は文字コードの自動判別を詳細に行うかの設定です。
※ mbstring.http_output_conv_mimetype= はコメントアウトのままでもよいですし、コメントアウトを外して=の後は何も設定しない状態でも構いません。
「php.ini」を初めて触る場合は以下の項目も設定しておきましょう。
default_charset = "UTF-8" date.timezone = "Asia/Tokyo"
再起動
php.ini編集後はサーバーを再起動させて設定を有効にします。
# reboot