さくらレンタルサーバーに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になります。
http://ドメイン名/html
このため、さくらレンタルサーバーでクイックインストールからEC-CUBEを入れると、初期アクセスURLは以下のようにディレクトリが挟まれます。
http://ドメイン名/ディレクトリ名/html
上記URLでアクセスすれば、EC-CUBEを表示できます。ただ、多くの場合は下記のようなURLでEC-CUBEを表示したいはずです。
http://ドメイン名/
上記のように表示するには/ディレクトリ名/html
の書き換えが必要です。
ココまでクイックインストールが完了しているとします。
EC-Cubeの設定を行わずに、URLの書き換えを行います。
URLの書き換え作業例
さくらレンタルサーバーのコントローラーパネルからEC-CUBEをクイックインストールして、store
ディレクトリが作成された場合を想定します。以下のようなURLでEC-CUBEがアクセスされているケースです。
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を書き換えます。
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ディレクトリの下にある、.htaccess
、index.php
、robots.txt
を一つ上のディレクトリに移動します。
mv html/.htaccess ./
mv html/index.php ./
mv html/robots.txt ./
ここは参考サイトのままであまりわかっていません
パスを書き換える
パスに書き込まれているパスを書き換えます。
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 __DIR__.'/../autoload.php';
# こちらに
require __DIR__.'/autoload.php';
ディレクトリを移動した分パスを一つ変更します。
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