2系でポート番号付で管理画面を動かすApacheの処理分散させるために、ロードバランサーを介してラウンドロビンを掛けた複数台で同じEC-CUBEを動かす必要が出てきました。Apacheを動作させるフロントエンドをコピーした複数台でPHP処理を分担、MySQLはローカル接続されているバックエンドの専用サーバーで運用という形です。EC-CUBEはそもそもPHPセッションをDB保存しているので、DBをバックエンドのサーバーで共通化しておけば複数台でのPHPセッションの共有化を配慮する必要はなく、複数台運用への切り替えは簡単です。管理画面からアップロードした画像等はApacheを動かしているサーバーに物理的に保存されるため、ラウンドロビンが掛かった状態ではどのサーバーにファイル保存されるか分からなくバラバラになってしまうため、どれか1台固定のサーバーを正としてそこへ保存し、rsync等で各サーバーへコピーしなくてはなりません。サブドメインではっきり分けれれば良いのですが、ドメイン追加をできない場合は1443などの独自のポート番号でポートフォワードで振り分けて管理画面を動かすサーバーを固定したいところ。普通にポート番号付きでアクセスしてしまうと、管理画面でログインした直後にリダイレクトエラーが出ます。異なるURLへジャンプすることを防ぐセキュリティ対策の影響です。:1443付きで定義したらどうかとなりますが、そうすると今後はポート番号無しでアクセスしているカート画面などでリダイレクトエラーが出ます。訪問者画面も管理画面も同じEC-CUBEだと設定も共通なので。そこで、ポート番号付きでアクセスしたときだけこのURLを書き換えてしまうと良いです。技術メモPHP5.6でEUC-JPやShift_JISのサイトを動かす今さら何でPHP5.6なのかと悲しくなりますが、サーバー変更するときにPEARを使っていたりmysql_connect等のPHP7で廃止された関数を大量に使用しているサイトだったので、修正予算が無い関係でどうしてもPHP5系を選ばないといけませんでした。MySQLデータもPHPソースもHTMLも、全てEUC-JPで書かれているというサイトです。あがきで最新である5.6を選択するわけですが、PHP5.6はデフォルトの言語がUTF-8になっているため、UTF-8で構築する分には何も考えなくて良いのですが、EUC-JPやShift_JISで書かれたサイトを設置すると文字化けにハマります。今回、試行錯誤で時間が掛かったので、その解決策をメモしておきます。通常はPHPソースもHTMLもUTF-8で掛かれている前提でphp.iniは、こう設定されていると思います。UTF-8今回、他のバーチャルドメインも乗せているレンタルサーバーでphp.iniは変更できない状況だったので、php.iniはUTF-8の設定のままでプログラム側で対処します。共通設定処理など、サイト全体の最初に処理されるPHPソースに以下の文を書き足します。charset=EUC-JP');mb_~関数では無いのが重要。文字コードを誤認したりしました。一緒に設定した方が良さそう。いうヘッダーが吐かれてしまうので、header関数でEUC-JPに上書きします。上書き設定してしまいます。MySQLデータベースは5系以降は内部コードがUTF-8で処理されますので、EUC-JPでdumpしてきたデータはエディタ等でUTF-8にコード変換して、UTF-8でデータベースに流し込み通信段階でクライアント側の文字コードに変換させるのが吉。流し込めばUTF-8で格納されるので、あとは通信段階でクライアント側の文字コードに変換させるのが吉。書いちゃうのが楽もう試行錯誤しないで済みますように。