すみませんが非常にレアな話題で、EC-CUBEを共用サーバに入れて使おうと思ってる人以外は関係ない話です。
先日、GMOクラウドというサーバ屋さんを見つけ、共用サーバの契約をしました。
契約したのはiCLUSTAというプランのレギュラー。
12ヵ月契約(割引)で月額1,480円で、ディスク容量90GB、メアド無制限で、スペック的にはいいんじゃないかと思いますし、EC-CUBEをインストールするにも楽そうなので契約したのですが、そのEC-CUBEをインストールするのに(私のスキル不足も災いして)結構手間取りました。
申し込みをして、請求書が届き、銀行振り込みをして、入金確認があって、「ゾーン情報作成完了のお知らせ」と「GMOクラウドiCLUSTAサーバー設定完了通知」が届くまで2週間ちょっと。
カード決済をしなかったので事務手続きで時間を取られましたが、ようやくEC-CUBEの設定ができるところまでこぎ着けました。
最初、GMOクラウドの共用サーバにあるEC-CUBEのインストールは利用しないで、一般的な方法(EC-CUBEサイトから最新版をダウンロード&解凍してFTPでUPしてインストール)をとってみました。
最新版を解凍すると、
「data」
「html」
というディレクトリがアップロードしなければならないディレクトリです。
ルートよりも上に「data」ホルダを丸ごとUPし、ルート直下に「html」の中身だけUPするのが通常パターンです。
(こんな感じ)
続いて\install\tempのパーミッションを777に変えて
\install\index.php をブラウザで開いてインストールを開始するというのが一般的かと思うのですが・・・サーバエラーとなってしまいました。
どうやら共用サーバのルートの外に「data」を置くのは無効のようなので、
・FTPで1度UPした「data」をディレクトリごとルート下に移動。
・ルート下の「define.php」にある「data」ディレクトリの相対パスを下記に変更。
define(‘HTML2DATA_DIR’, ‘data/’);
これで「www.example.jp/install/index.php」にアクセスすると、インストール画面が立ち上がったので進めたのですが、
「magic_quotes_gpc = On」という警告が出てしまいました。
う~ん。
ここまでやったのですが、どうやらルート直下にEC-CUBEを展開できない環境のようでした。
結局、FTPでEC-CUBEを入れて、インストールしようとするのをあきらめて、GMOクラウドの共用サーバのサービスにあるEC-CUBEのインストールサービスを探しました。
わかりづらかったのですが、管理画面(PlanManager)のサイトにて、ログインし、
ウェブコントロール>CGIインストーラー>マルチCGI>インストール
と進み、ショッピングカート EC-CUBE 2.11.5を選びました。
インストール画面の初めのほうで、インストールディレクトリの指定があり、ルートを選ぶと、「ルートはダメ、ディレクトリを作れ」といった主旨の警告が出ました。
やはりルート直下にECサイトを展開するのは出来ないようです。
それで「shop」なら、URLもそうなってしまってもいいかと思い
www.example.jp/shop/
として進めました。
しかし、このサービスでは「shop」の中に「data」も「html」も入れてしまうため、
www.example.jp
┗shop
┣data
┗html
となってしまいます。
また、URLはどうするか?という画面がインストール設定途中で出ます。
デフォルトではwww.example.jp/shop/html/になっていましたが、ここで苦戦しました。
インストールするディレクトリとは別にURL設定ができるじゃん、と安心して
www.example.jp/とか、
www.example.jp/shop/とかにしてインストールを完了しても、
管理画面もユーザー画面もリンクパス、画像パスが狂ったまま。
shop\data\config\config.php
shop\define.php
等のファイルにある相対パスの設定なども見たのですが、どうしても修正できません。
結局、EC-CUBEのURL設定は、いったんデフォルト(上記の画像キャプチャー通り、/shop/html/)として進めました。
そして、インストールを完了させたあと、FTPで「html」ホルダをダウンロードし、「html」の中身をすべて1階層上の「shop」に入れ直しました。
そうすると、「html」「data」の相対的な位置が並列だったのが、下記のように変わります。
www.example.jp
┗shop
┗data
そのため、「shop」にある「define.php」を開き、そのファイルから見た「data」ディレクトリの相対パスを変更する必要があります。
変更前:define(‘HTML2DATA_DIR’, ‘../data/’);
変更後:define(“HTML2DATA_DIR”, “data/”);
それと、インストールの途中にMySQLのデータベースの設定があるので、インストール前にデータベースの設定を完了させておく必要があります。
私の申し込んだ「GMOクラウドiCLUSTAサーバ(共用サーバ)は、データベースの利用は無料でありながら、オプション扱いになっていました。そのため、データベースの利用オプションを申し込んでないと管理画面(PlanManager)の「ユーティリティ」に「データベース設定」が表示されません。
それに気づくのに相当時間を浪費しました。
なお、オプション申し込みは管理画面(PlanManager)からではなく「アカウントマネージャー」サイトにログインして申請します。申請すれば約30分程度で 「無料データベース(MySQL)設定完了通知」が届くと思います。
ようやくEC-CUBEのインストールと相対パスの修正などが終わり、管理画面やユーザー画面が認識できましたが、共用サーバにEC-CUBEを置いたのは初めてで、勝手がちがい大いに苦労しました。
あとレンタルサーバのGMOクラウドは、ヘルプページもはっきり言って不親切です。
では。
引き続き頑張って、ECサイトを作ろうと思います。
(2013.04.05追伸)
少しずつ商品登録やら、特定商取引法に基づく表記や個人情報保護法方針といったページを登録している最中ですが、すごく気になることが1つあります。
遅い!
それはこのレンタルサーバのせいなのか?EC-CUBEのせいなのか?
EC-CUBEは他のVPSサーバで運用していますが、体感的にこれほど遅いとは感じていませんでした。
ということはVPSと共用サーバの違い?
ちなみにGTmetrixで測ると下記。(遅い)
Googleのサイトスピード計測の「Page Speed Grade」の値が左、Yahooのサイトスピード計測の「YSlow Grade」が右。%が高いほど優秀。
VPS上で実動しているEC-CUBEのサイトを測ると下記。
(なぜかYahooの計測が遅いけど、まだ上よりマシな状態。)
ついでにこのブログ(ロリポ共用サーバにWordpress)のスピードも測ってみたのが下記。
このブログでさえ、決して早くはないのですが、ロリポが頑張っているのか、以前測ったときより良くなって、なかなかの数字。EC-CUBEで作ったECサイトに比べれば早い方。
GMOクラウドの共用サーバ上にEC-CUBEで作っているサイトの、先行きがちょっと不安です。
(2013.04.10追記)
商品をカートに入れるボタンを押すと 「システムエラーが発生しました。 大変お手数ですが、サイト管理者までご連絡ください。」というエラー画面になってしまいました。
これはURLを「www」なしで運用する予定だったのですが、GMOクラウドのEC-CUBEのインストールサービスで「www」ありのインストール設定したことに起因していました。
修正としては、data/config/config.php の記述で、
define (‘HTTP_URL’, ‘http://www.example.jp/shop/’);
define (‘HTTPS_URL’, ‘https://www.example.jp/shop/’);
上記のURLからwwwを削除することで直ると思います。
(2013.05.21追記)
共用サーバに独自SSL(クイック)を入れようとしたのだけれど、このサーバって勝手に契約して入れられないのね。
つまりオプション契約でGMOクラウドを介さないと入れられない。つまり言いなりの金(3万円弱)を払う必要があります。
昨年某社のVPSには格安(1万円程度)のSSL入れた経験があるので、ここもそうしようと思ったのだけど、残念です。
もっと痛かったのは、この共用サーバに独自SSLはexample.jpもしくはwww.example.jpでは取得できません。
独自SSLをご利用の場合、https://ssl.[ドメイン名]/ でのご利用となります。
www.ではご利用いただけません。
そりゃ探せば、ssl.example.jpになるよと書いてあったけど、同じGMOインターネットのお名前.comの共用サーバだったらそのままhttpsつけて使えるので特にそんな制約があることなど思いもしなかったし、今さら年間サーバ費も払っちゃったし、EC-CUBEの設定も、ほぼ終わってるし・・・「やられた!」と思いました。
さらに追記ですが、EC-CUBEの設定で、決済代行会社の設定で、ショッピングサイトのIPアドレスが必要なのですが、独自ドメインで検索した正引きIPを登録してもダメでした。
バーチャルIPなのでしょうね。朝、サポートにメールしましたが8時間経っても来ません。(3週間経っても来ませんけど)
結局xxx.xx.xxx.0/24って感じでアバウトに登録しました。
最後にお問い合わせや注文時の自動メール送信を設定したのですが、メールが送信されません。
smtpがダメなのか、sendmailなのか、管理画面や契約情報を見てもわからず、電話で問い合わせしましたが、非常にドライな若い声の女性が出て、かなりムカつきました。契約前にはEC-CUBEに最適だとか言ってたくせに、インストールまでがサポート範囲だとか。
ちなみに過去、GMOグループ(GMOインターネットを筆頭にGMOグローバルサイン、GMOペイメントゲートウェイ、GMOメイクショップ、イプシロン)の電話サポートを受けた経験がありますが、他は別に不愉快な思いをしたことがないのですが、ここの応対(態度)は最悪でした。
で、結局自力で解決しました。
要は、EC-CUBEの管理画面で、システム設定>パラメーター設定 と進み、
MAIL_BACKEND のパラメータがデフォルトでは”smtp”となっているはずです。
ここの選択肢は”mail”,”smtp”,”sendmail”なのですが、GMOクラウドの共用サーバは、”mail”が正解です。
なお、そもそも、最初パラメーター設定にMAIL_BACKENDの項目はありませんでした。FTPでPHPをいじってたら出るようになりましたが、直接書き換えるとしたら「data/cache/mtb_constants.php」の
define(‘MAIL_BACKEND’, “mail“);
かと思います。
参考にされる方は自己責任でお願いいたします。
(2014.03.03追伸)
上記の記事に関連した投稿をしました。
↓
PLESK搭載のVPSで、サーバに弱い私でもSSLとEC-CUBEを設定できた。
こんにちは
丁度同じような状況(契約プランも同じだと思います)で困っていて
サイトを見つけたのですが
私よりも詳しいとお見受けしましたので勝手ながらお聞きしたいと思います。
今はサイト直下にインストールしたくて進めていましたが
「magic_quotes_gpc = On」という警告が出てしまいました。というところで
つまづいております。
手動でインストールできないので自動インストールで進めるとして
http://www.example.jp
┗shop
┗data
最終的にこちらの「shop」をかまさないでインストールしたい場合は
自動インストールを進めた後、直下に「data」フォルダと「html」の中身を
直下に移動することで動作は可能なのでしょうか
大苦戦中さん
コメントありがとう
私のサーバ知識、PHPの知識レベルは素人にちょっと長めの毛が生えた程度です。
(わからない例えですが)
ところで、大苦戦中さんと同じチャレンジを何度もしたのですが、
どうもルート直下でのCGIの稼働はこの共有サーバではできないようです。
結局htmlホルダは中身だけshopのDirに入れ、dataもホルダごとshopの中に
/shop/*.php
/shop/data/
になっちゃいました。
ルートに来たら/shop/にリダイレクトするようにして
/shop/data/に関してはdataをリネイムして隠しました。
(/shop/define.phpのソースでdataのDir名を書き換えられます)
始めて同じ状況の説明をしてるサイトさんを発見しました。正直嬉しいです。
全く同じ条件で手動インストールで頑張ってる最中です。正直知識が全くないので、ちんぷんかんプンです。
何度もサーバに問い合せても自動インストールのURLを貼り付けてくるだけ。。
手動インストールのマニュアル作成をづっと要望し続けています。
cgidateフォルダとindex.htm同層にeccubeのhtmlフォルダ(.htaccess削除)とdateフォルダをftpにてアップロード>ドメイン/html/install/にアクセスインストルール画面へ
チェック結果
>> ×:PHPの設定ディレクティブ「magic_quotes_gpc」が有効になっています。
↑何のことだかさっぱりです。
ここで中断、以上の問題をサーバ側とeccuebコミュニティサイトへ質問中です。
今までの経緯で何か問題点などありますでしょうか?
また質問で有用な回答がアレバ報告します。
しかしこのサーバはホント腹立ちます。
hunterさん、コメントありがとう
このサーバはルート直下にCGI(index.phpも)が置けないようです。
またルート外にdataディレクトリも置けないです。
さらに、SSLもサブドメインになってしまいます。(www.example.jpもexample.jpもダメ)。
私はそれに気づいたとき、すでに年間使用料を払ったあとだったのでサーバキャンセルは諦めました。
dame3212 さんご返事ありがとうございます。
一体このサーバは何を思って公式を名乗っているのかって感じです。
CGIからのインストール機能制限だけならまだしもドメイン以外に余計な名前も付くのかな?
それにCGIでもECCUBEのVerが常に古い状態。。やってられません。
すいません当方知識不足で、何かちゃんとした知識があれば手動でドメイン.comでEC-CUBの使用は可能なものなのでしょうか?
私も年間契約を済ませたばかりなので、少しでも料金を払いコミュニティの方にちゃんとインストールだけでもしてもうらおうかと考えているのですが、、どうでしょう?
hunterさん
やはり致命傷はSSLが基本のドメイン(www.example.jpとか、example.jpなど)でとれない点と
ルート直下にEC-CUBEをインストールできないという点だと思います。
業者さんに依頼してもこれはダメのはず。
結局私はhttps://ssl.example.jp/shop/ というURLにしてしまい
.htaccessでwww.example.jpとか、example.jpに来た人を上記のURLに301リダイレクトすることにしました。
なお、バージョンが低いのはとりあえず我慢しています。
来年になったら別のサーバにサイトを新バージョンで構築して、DNSとSSLを移そうとも思っています。
iclusta では httpルートディレクトリや、階層下のディレクトリでも、index.php のような php ファイルを正しく動作させるには、以下のような内容で、php.ini という名前のファイルを作って一緒に置いておく必要があります。件の magic_quotes_gpc 関連のエラーも php.ini で off にするのでエラーは出なくなります。
ちなみに iclusta でec-cubeを自動インストールしたもののディレクトリを観察すると、同じような内容の php.ini が見つかるとおもいますよ。
mbstring.language = Japanese
auto_detect_line_endings = on
output_handler = mb_output_handler
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = on
mbstring.detect_order = auto
mbstring.substitute_character = none
magic_quotes_gpc = off
cgi.force_redirect = 0
date.timezone = Asia/Tokyo
Verdeさん、アドバイスありがとうございます。
php.iniはソースも書いていただいたとおりのものがルート直下にありました。