メンテナンス・トラブルシュート - PHP - mbstring.internal_encoding is deprecated

 クラウディア
1. 概要
2. 調査
3. 解決

1. 概要

 いつ頃から、出力されはじめたのか、「PHP」のログを探っていて、どうも 2021年3月30日の頃からです。  やたら

[02-Nov-2021 09:26:57 Asia/Tokyo] PHP Deprecated:  Unknown: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
[02-Nov-2021 09:26:58 Asia/Tokyo] PHP Deprecated:  Unknown: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
 というログが、やたら出力されておる。  2021年3月30日頃というと、そのマシンで、「PHP」を「7.4」から「8.0」へ変えたあたりです。

2. 調査

 調べてみると「php.ini」の「mbstring.internal_encoding」という設定をしていると、非推奨であるために、出力されているということで、その設定をやめなさいと書いてあるのですが・・・。  「php.ini」の

[mbstring]
 セクションには、有効な行が、一切ないのですよ・・・。  なんか、有効でないのに使おうとしている箇所があるのか?  コンテンツ関係の置いてあるフォルダの「.php」ファイルを検索して「mbstring.internal_encoding」の文字列を検索してみました・・・。

find /パス -name "*.php" | xargs grep mbstring.internal_encoding
 すると、実行行でなく、書いている記事に「mbstring.internal_encoding」の文字を発見・・・。  「.htaccess」に、下記の行を書くことで、ディレクトリごとにエンコードを設定できるのだよと、したり顔で書いている・・・(笑)。

php_value mbstring.internal_encoding UTF-8
php_flag mbstring.encoding_translation Off
 あわくって、もう一回検索ですよ。

find /パス -name .htaccess | xargs grep encoding
 そしたら、2つほどありましたよ、そういう記述の「.htaccess」が。

3. 解決

 対象のファイルを編集して、該当行をコメントアウトしました。  ちょっと様子を見ようと思います。  最終的には、コメントアウトでなく、完全に行削除ですな。  様子見で、完全に改修されたとみなした時点で、このページをクローズします。  ちゅうことで、2022年1月26日、手を入れて以降、表題のものは出力されなくなりましたので、クローズします。