Nao000のぶろぐ

蝶を追っている少年になりたい

mb_strlen が使えなかったので `sudo apt install php-mbstring` した

OS

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

php

パッケージインストールしたものです。

$ php -v
PHP 8.1.2-1ubuntu2.19 (cli) (built: Sep 30 2024 16:25:25) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.19, Copyright (c), by Zend Technologies

mb_strlen が使えなかった

mbstring は拡張モジュールです。つまり、デフォルトでは 有効にならないということです。

https://www.php.net/manual/ja/mbstring.installation.php

だそうです。

インストールした

パッケージインストールしました。

sudo apt install php-mbstring

/etc/php/8.1/cli/php.ini の mbstring のコメントはつけたままで使えてしまった

私の環境の php は /etc/php/8.1/cli/php.ini を読み込んでいるので、中にある ;extension=mbstring のコメントを外せば mb_strlen が機能すると思いましたが、実際には外さずとも使えました。

php -i | grep ini で確認したら、mbstring は /etc/php/8.1/cli/conf.d/20-mbstring.ini で読み込まれていました。これは今まで存在しない mbstring.so を読み込もうとしていたのですかね・・・