PHP Fatal error: Call to undefined function mb_strlen() in index.php:600
php-mbstring 拡張モジュールが新サーバーにインストールされていません。
PHP 8.3 の新規インストールでは mbstring が自動では入らないことがあります。mb_strlen() が呼ばれた瞬間に Fatal Error が発生し、そこで行のレンダリングが止まるため:
- 1列目〜摘要・商品 → 表示される(
mb_strlenの手前まで) - 合計金額・操作 → 表示されない(Fatal Error で停止)
- 2行目以降 → ループが止まるため表示されない
修正方法(新サーバーで実行)
bash
# mbstring をインストール
sudo apt-get install php8.3-mbstring
# Apache を再起動
sudo systemctl restart apache2
Nginx の場合は:
bash
sudo systemctl restart nginx
sudo systemctl restart php8.3-fpm
インストール後の確認
bash
# mbstring が有効になったか確認
php -m | grep mbstring
mbstring と表示されれば完了です。
発注書(hatchusho_index.php)も同じ理由で同じ症状が出ていますので、この1コマンドで両方とも解決する
念のため、同じ環境で他にも不足している可能性のある PHP 拡張をまとめてインストールしておくことをお勧めします。
bash
sudo apt-get install php8.3-mbstring php8.3-xml php8.3-curl php8.3-zip php8.3-gd php8.3-intl
sudo systemctl restart apache2