さくらレンタルサーバーにEC-CUBEをクイックインストールしました


さくらレンタルサーバーにEC-CUBEをクイックインストールからインストールしました。インストールされたのはEC-CUBE3系です。

前提条件

この記事は以下の2点を前提にしています。

  • さくらレンタルサーバースタンダードプラン以上に契約済み
  • さくらレンタルサーバーにSSH経由のアクセス設定済み

さくらレンタルサーバーとSSH設定が前提にしていますが、ファイルマネージャーやFTPを利用して設定したい方でもできると思います。

さくらレンタルサーバーのSSH設定については、こちらの記事を参考にしてください。

新しくEC-CUBE用のデータベースを作成する

EC-CUBEはインストール時にデータベースを初期化する判定があります。

さくらレンタルサーバーで他のデータベースを使用している場合、MySQLの新しいデータベースを作成するほうが良いと考えます。既存の使用しているデータベースを初期化されてはたまりませんから。

ドメインを設定してからEC-CUBEをクイックインストール

新しいドメインでEC-CUBEを運用したい場合は、先にドメインを設定してからクイックインストールをしたほうがやりやすいと思いました。

さくらレンタルサーバーのクイックインストールでは、インストール時のドメインを指定します。そして、ドメイン設定後にインストールしたほうが設定の書き換えが少なくなります。

EC-CUBEのアクセスURLを変更する

さくらレンタルサーバーのクイックインストールでは、EC-CUBEに限らずWordPressなどを入れた場合、新しくディレクトリが自動で作成されます。

また、EC-CUBEはインストールした瞬間に、以下のようなURLが初期アクセスURLになります。

EC-CUBEのアクセスURL
http://ドメイン名/html

このため、さくらレンタルサーバーでクイックインストールからEC-CUBEを入れると、初期アクセスURLは以下のようにディレクトリが挟まれます。

EC-CUBEのアクセスURL
http://ドメイン名/ディレクトリ名/html

上記URLでアクセスすれば、EC-CUBEを表示できます。ただ、多くの場合は下記のようなURLでEC-CUBEを表示したいはずです。

EC-CUBEのアクセスURL
http://ドメイン名/

上記のように表示するには/ディレクトリ名/htmlの書き換えが必要です。

インストール例です。

ココまでクイックインストールが完了しているとします。
EC-Cubeの設定を行わずに、URLの書き換えを行います。

URLの書き換え作業例

さくらレンタルサーバーのコントローラーパネルからEC-CUBEをクイックインストールして、storeディレクトリが作成された場合を想定します。以下のようなURLでEC-CUBEがアクセスされているケースです。

EC-CUBEのアクセスURL
http://ドメイン名/store/html

EC-CUBEのよくある構成に合わせたほうがわかりやすいのかと思い、storeディレクトリは削除することにしました。

こちらは、まずstoreディレクトリの上のドメインのルートディレクトリに移動します。

ルートへ移動
ssh さくらレンタルサーバー
cd ドメインのルートパス

ファイル一覧を確認します。

ファイル一覧
ls
drwx---r-x   3 pugiemonn  users   512 Nov 27 00:45 store

storeディレクトリだけが表示されています。中身にはEC-CUBEのソースが入っています。

ドメインルートをstoreディレクトリに変更

EC-Cubeの通常インストールのルートと揃えるために、さくらレンタルサーバーのドメインルートディレクトリを合わせます。

# 変更前
http://ドメイン名/

# 変更後
http://ドメイン名/store

storeディレクトリが含まれるようにドメインの設定を変更しました。

.htaccessを書き換える

ドメインのルートを書き換えたので、ブラウザからhttp://ドメイン名/htmlにアクセスすると本来でしたらEC-CUBEのインストールが始まるはずでが、エラーがでます。

このエラーを解消するために、SSHもしくはファイルマネージャでhtmlディレクトリにある.htaccessを書き換えます。

html/.htaccessを編集
vim html/.htaccess

SetEnvIf REDIRECT_HTTPS (.+) HTTPS=$1

order deny,allow
allow from all
<IfModule mod_rewrite.c>
    RewriteEngine On
    # RewriteBaseから/storeを削除
    RewriteBase /html 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpg|css|ico|js)$ [NC]
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

RewriteBase /store/htmlから、RewriteBase /htmlに書き換えます。

EC-CUBEをインストールする

EC-CUBEはさくらレンタルサーバーのクイックインストールをした後に、EC-CUBE自体を有効にするためのインストールが必要です。
ブラウザからhttp://ドメイン名/htmlにアクセスするとEC-CUBEのインストールが始まります。

EC-CUBEを確認する。

インストールが完了した後、ブラウザからhttp://ドメイン名/htmlにアクセスするとEC-CUBEの初期画面が確認できます。

htmlを削除する

ここからEC-CUBEのhttp://ドメイン名/htmlからhtmlを削除します。

3ファイルを移動

htmlディレクトリの下にある、.htaccessindex.phprobots.txtを一つ上のディレクトリに移動します。

mv html/.htaccess ./
mv html/index.php ./
mv html/robots.txt ./

ここは参考サイトのままであまりわかっていません

パスを書き換える

パスに書き込まれているパスを書き換えます。

.htaccessを編集
vim .htaccess

SetEnvIf REDIRECT_HTTPS (.+) HTTPS=$1

order deny,allow
allow from all
<IfModule mod_rewrite.c>
    RewriteEngine On
    # RewriteBaseから/htmlを削除
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpg|css|ico|js)$ [NC]
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

さきほどstoreを削除したところから、htmlを削除しました。

次に移動したindex.phpを編集します。

vim index.php
requireのパスを変更
# これを
require __DIR__.'/../autoload.php';
# こちらに
require __DIR__.'/autoload.php';

ディレクトリを移動した分パスを一つ変更します。

/storeを削除
vim app/config/eccube/path.yml

# htmlディレクトリを削除
root_urlpath: /

path.ymlに書き込まれているroot_urlpathからhtmlディレクトリの表記を削除しました。

確認

この手順の後、http://ドメイン名/にアクセスするとhtml無しでEC-CUBEの画面を表示できました。

今回EC-CUBEをインストールしたのですが、あまり触ったことがないため色々迷いました
間違いなどありましたらご指摘お願いします😖
 

参考

https://magnets.jp/web_design/4625/
http://amidaike.hatenablog.com/entry/2015/07/18/151143
http://amidaike.hatenablog.com/entry/2015/12/08/201256