メンテナンス・トラブルシュート - 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日、手を入れて以降、表題のものは出力されなくなりましたので、クローズします。
|
|