6
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

さくらレンタルサーバーに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の初期画面が確認できます。

EC-CUBE初期画面

htmlを削除する

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

3ファイルを移動

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

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

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

パスを書き換える

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

.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をインストールしたのですが、あまり触ったことがないため色々迷いました:sweat:
間違いなどありましたらご指摘お願いします😖
 

参考

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
6
Help us understand the problem. What are the problem?