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

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

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

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

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

さくらレンタルサーバーのSSH設定については、[こちらの記事](http://qiita.com/pugiemonn/items/1597939003ca83208e0d)を参考にしてください。

# 新しくEC-CUBE用のデータベースを作成する
EC-CUBEはインストール時にデータベースを初期化する判定があります。

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

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

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

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

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

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

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

```bash:EC-CUBEのアクセスURL
http://ドメイン名/ディレクトリ名/html
```
上記URLでアクセスすれば、EC-CUBEを表示できます。ただ、多くの場合は下記のようなURLでEC-CUBEを表示したいはずです。

```bash:EC-CUBEのアクセスURL
http://ドメイン名/
```
上記のように表示するには`/ディレクトリ名/html`の書き換えが必要です。

インストール例です。
<img width="508" alt="さくらレンタルサーバーへのドメイン設定例" src="https://qiita-image-store.s3.amazonaws.com/0/1624/c016e4b9-6b9e-2126-f810-a89a4985346b.png">

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

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

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

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


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

```bash:ルートへ移動
ssh さくらレンタルサーバー
cd ドメインのルートパス
```
ファイル一覧を確認します。

```bash:ファイル一覧
ls
drwx---r-x   3 pugiemonn  users   512 Nov 27 00:45 store
```
`store`ディレクトリだけが表示されています。中身にはEC-CUBEのソースが入っています。

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

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

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

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

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

```bash: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の初期画面が確認できます。

<img width="70%" alt="EC-CUBE初期画面" src="https://qiita-image-store.s3.amazonaws.com/0/1624/5bc6bb90-3470-98de-2296-e0e038c84484.png">

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

## 3ファイルを移動
htmlディレクトリの下にある、`.htaccess`、`index.php`、`robots.txt`を一つ上のディレクトリに移動します。

```bash:
mv html/.htaccess ./
mv html/index.php ./
mv html/robots.txt ./
```
ここは参考サイトのままであまりわかっていません:fearful:

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


```bash:.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を編集します。

```bash:
vim index.php
```

```php:requireのパスを変更
# これを
require __DIR__.'/../autoload.php';
# こちらに
require __DIR__.'/autoload.php';
```
ディレクトリを移動した分パスを一つ変更します。


```bash:/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