ホームページ制作 オフィスオバタ

xamppでEC-CUBE4.3インストール時のsodium拡張モジュールが有効になっていませんに対処。

久方ぶりにEC-CUBEの作業があり、ローカル環境(xampp)にEC-CUBE4.3をインストールしました。
ところが、見慣れないモジュールエラーが発生しました。

大半のモジュールエラーは、php.iniの拡張モジュールオプションを有効化すればいいのですが、今回はそれだけでは改善しませんでした。

少々手間取ったので、忘備録として記録いたします。

今回のxamppの環境

今回の検証には以下のxamppを使用しています。
php8.2が使えるバージョンです。

現象はこのような感じです

sodium拡張モジュールとは

エラーが出たときにとりあえずググるのですが、今回の「sodiumモジュールエラー」は、無視してもそれなりにインストールできますというような記事がでてきました。

確かにsodium拡張モジュールエラーを無視してもEC-CUBEのインストールはできました。
ただ、気になるのでsodium拡張モジュールとは何なのか調べてみました。

sodium拡張モジュールは一言でいうと、「暗号化モジュール」でした。
暗号化キーを生成したり、文字列のエンコード・デコードなどを行う機能がありました。

参考:Sodium

要はセキュリティに関するサブルーチンライブラリです。
EC-CUBE本体には使われていないようですが、EC-CUBEのプラグインに使われていることがあります。
そのため、sodium拡張モジュールが未実装だとプラグインが正常動作しないケースがあります。

なんとなくですが、決済関係のプラグインで使われていそうです。
確かにカード決済プラグインならば、セキュリティは必須な感じがします。

いつものごとくphp.iniのオプションを設定しました

phpのモジュールが未実装の場合は、php.iniのコメント化されているモジュールを有効化すればたいてい解決します。事実、xamppのphp.iniにはsodiumのモジュールが内蔵されていました。

xamppを再起動してやってみたところモジュールエラーは改善せず

楽勝と思いつつ、xamppを再起動してEC-CUBE4.3のインストールをやってみたところ、sodiumモジュールエラーは消えませんでした。

なぜ?

と思いましたが、実は落とし穴がありました。

sodiumモジュールはhttpd-xampp.conf にも追記か記述が必要

php.iniを直しただけでは改善しなかった原因をぐぐって調べたところ、次のことをしなければいけないことがわかりました。

phpのモジュール本体は、大抵のものは初めから読み込みされています。
なので、php.iniの拡張モジュールを有効にするだけで動作します。

ですがsodiumモジュールは、dllファイルをそもそも読み込んでいないので、自分で読み込みの記述を入れてやる必要があります。

sodiumモジュールの読み込みを記述する方法

モジュール読み込みは、httpd-xampp.confファイルに記述します。
xampp専用のconfファイルですが、http.confの拡張設定です。
要はxamppの都合上必要な設定を記述する設定ファイルです。

以下のようにlibsodium.dllの記述を追加すればOKです。

dllファイルのパスは、xamppのインストールされたドライブ、フォルダにより変わりますが、他のdllファイルとパスを合わせておけば大丈夫です。

libsodium.dllを読み込むようにしたらエラーが出なくなりました

httpd-xampp.confファイルにlibsodium.dllの読み込み記述をいれ、xamppを再起動したらec-cube4.3のsodium拡張モジュールエラーは出なくなりました。

sodiumエラーは無視してもインストールはできますが、後々不具合が出るかもしれないことを考えると、最初に対処しておくほうが無難です。

モバイルバージョンを終了