tech 2026.01.04

Laravel本番環境で「mb_split not found」エラーが出た時の解決法

約9分で読めます

ローカルでは動作するLaravelアプリケーションが本番サーバー(Plesk)で「mb_split not found」「DOMDocument not found」エラーが出る場合の具体的な解決手順を解説します。

こんな悩みはありませんか?

「ローカル環境では完璧に動いていたLaravelアプリケーションを本番サーバーにアップしたら、突然『mb_split not found』や『DOMDocument not found』というエラーが...」

こんな経験、ありませんか?実は先日、弊社でも同様のケースが発生しました。

ローカル環境では問題なく動作していたクライアント様のECサイト(商品情報をCSVで一括インポートする機能付き)を本番環境(Plesk)にデプロイした際、以下のエラーが発生したのです。

Call to undefined function mb_split()
Class 'DOMDocument' not found

結果的に、サイトが真っ白になり、商品登録機能が完全に停止してしまいました。

なぜローカルでは動くのに本番で動かないのか?

PHP拡張機能の違いが原因

この問題の根本原因は、ローカル環境と本番環境のPHP拡張機能の差にあります。

開発環境別PHP拡張機能インストール状況
出典: Fivenine Design調べ(過去50案件の統計)

ローカル開発環境(XAMPP、MAMP等)では

  • mbstring拡張機能がデフォルトで有効
  • xml拡張機能も標準でインストール済み
  • 開発者が意識せずに使える状態

本番環境(特にPlesk)では

  • サーバー管理者が個別に有効化する必要がある
  • セキュリティ上、不要な拡張機能は無効化されている
  • 複数のPHPバージョンが混在している場合が多い

具体的なエラーの意味

// mb_split関数を使った文字列分割(mbstring拡張機能が必要)
$items = mb_split(',', $csv_line);

// DOMDocumentクラス(xml拡張機能が必要) $dom = new DOMDocument();

これらの機能は、多言語対応や XML/HTML処理 で頻繁に使用されるため、Laravelアプリケーションでは必須と言えます。

Plesk環境での解決手順

ステップ1: 現在のPHP設定を確認

まず、phpinfo()で現在の設定を確認します。

<?php
// 一時的にphpinfo.phpファイルを作成
phpinfo();
?>

確認すべきポイント:

  • PHPバージョン
  • インストール済み拡張機能一覧
  • mbstringxmlの有無

ステップ2: Pleskコントロールパネルでの設定

  1. Pleskにログイン
  2. 「ウェブサイトとドメイン」 を選択
  3. 対象ドメインの 「PHP設定」 をクリック
  4. 「拡張機能」タブ を選択

ステップ3: 必要な拡張機能を有効化

以下の拡張機能を チェックボックスで有効化

☑ mbstring  # 多バイト文字列関数
☑ xml       # XML処理関数
☑ dom       # DOMDocument関連
☑ libxml    # XMLライブラリ(依存関係)

重要: 設定変更後は必ず 「適用」ボタンをクリック してください。

ステップ4: 複数PHPバージョン環境での注意点

Plesk環境では、よく 複数のPHPバージョンが共存 しています。

複数PHP環境でのエラー発生パターン
出典: サーバー環境調査(2024年)

よくある失敗例

  • PHP 7.4で拡張機能を有効にしたが、アプリケーションがPHP 8.1で動いている
  • ドメイン設定とCLI設定のPHPバージョンが異なる

正しい確認方法

# コマンドラインでPHPバージョンを確認
php -v

インストール済み拡張機能を確認

php -m | grep -E "(mbstring|xml|dom)"

ステップ5: .htaccessでの追加設定(必要に応じて)

場合によっては、.htaccessファイルでPHPバージョンを明示的に指定する必要があります。

# .htaccess
# PHPバージョンを明示的に指定(Pleskの場合)
AddHandler application/x-httpd-php81 .php

または

AddType application/x-httpd-php81 .php

実際の解決事例

弊社で担当したECサイトの事例では、上記の手順により 10分程度で問題を解決 できました。

解決前の状況

  • 商品一括登録機能が使えない
  • ユーザー登録時にエラー発生
  • サイトの一部機能が停止

解決後の変化

  • 全機能が正常動作
  • CSV一括インポートで1000件の商品を10秒で処理
  • クライアント様が安心してサイト運営を開始

クライアント様からは「技術的な問題を素早く解決してもらい、予定通りにサイトオープンできました」とお喜びの声をいただきました。

よくある追加エラーと対処法

curl拡張機能エラー

Call to undefined function curl_init()

解決策: curl拡張機能も同様に有効化

OpenSSL関連エラー

SSL certificate problem

解決策: openssl拡張機能の有効化 + SSL証明書の確認

メモリ制限エラー

Fatal error: Allowed memory size exhausted

解決策: PHP設定でmemory_limitを増加

; php.iniまたはPleskのPHP設定で
memory_limit = 256M

予防策:デプロイ前のチェックリスト

今後同様の問題を避けるため、デプロイ前に以下を確認することをおすすめします:

必須PHP拡張機能の確認

<?php
// deploy_check.php(デプロイ前チェック用)
$required_extensions = [
    'mbstring',
    'xml',
    'dom',
    'curl',
    'openssl',
    'pdo',
    'pdo_mysql'
];

foreach ($required_extensions as $ext) { if (!extension_loaded($ext)) { echo "⚠ 拡張機能 {$ext} が無効です\n"; } else { echo "✓ 拡張機能 {$ext} は有効です\n"; } } ?>

composer.jsonでの依存関係明示

{
    "require": {
        "php": "^8.1",
        "ext-mbstring": "*",
        "ext-xml": "*",
        "ext-dom": "*",
        "ext-curl": "*"
    }
}

これにより、インストール時に不足している拡張機能があれば警告が表示されます。

無料相談受付中

お気軽にご相談ください(初回無料)

詳しく見る

まとめ:次にやるべきこと

本番環境でのPHP拡張機能エラーは、適切な手順で対処すれば短時間で解決可能です。

今すぐやるべきこと

  1. 現在のサーバー環境を確認(PHPバージョン、拡張機能)
  2. Pleskで必要な拡張機能を有効化
  3. デプロイ前チェックスクリプトを作成
  4. composer.jsonに拡張機能の依存関係を明記

ただし、サーバー環境によっては 管理者権限が必要な場合や、特殊な設定が必要な場合 もあります。

「自分で設定するのは不安...」「時間がない...」 という方は、ぜひお気軽にご相談ください。弊社では、Laravel アプリケーションのデプロイから運用まで、トータルサポートいたします。

20年以上の実績で培った知識で、確実かつ迅速に問題を解決いたします。

この記事をシェア

この記事の内容でお困りですか?

無料でご相談いただけます

Webサイトの改善、システム開発、AI導入など、 お気軽にご相談ください。初回相談は無料です。

無料相談してみる
AIに無料相談