2024-11-23 16:23:15
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
を読み込もうとしていたのですかね・・・