IT女子のお気に入りフォルダ

管理人の備忘録と実践を兼ねた(出来るだけ)役に立つ情報を配信するブログです。

EC-CUBE3のインストールとサイトURLから「html」を消す方法

EC-CUBE3.0.10のインストール方法と、インストールした際にサイトURLに含まれてしまった「html」を消したのでその方法を忘れないようにメモ。

EC-CUBE3のインストール

EC-CUBEをダウンロードする

EC-CUBE公式サイトからファイルをダウンロードします。
現時点での最新バージョンは3.0.10なので、ダウンロードしたファイルはeccube-3.0.10.zipでした。

EC-CUBE公式サイト

ちなみに、ダウンロードするにはEC-CUBEメンバーの登録が必要です。

EC-CUBEのファイルを配置する

ダウンロードしたファイルを解凍します。
今回は、シェルスクリプトインストーラーではなく、Webインストーラーを利用しようと思います。
以下の赤枠ファイルをサーバのドキュメントルートに配置します。

.htaccessは環境に合わせて、そのまま配置するか、既存に追記するか判断してください。

eccube-3_0_10_フォルダ構成

データベースを作る

EC-CUBEはデータベースを必要とするので事前に準備しておきます。
インストール中に必要となるので以下をメモしておきます。

  • データベース名
  • MySQLユーザー名
  • MySQLパスワード
  • ホスト名

PostgreSQLの場合は、PostgreSQLユーザ名、PostgreSQLパスワードです。

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

STEP1 ようこそ

http://ドメイン/html/install.php」にアクセスします。
システム要件を満たしているかどうかのチェックが行われ、以下のような画面が表示されます。
もし、必須で満たす必要がる要件があれば、黄色部分の上に赤色で表示されるので、その場合はサーバの設定等を確認する必要があります。

EC-CUBEインストール_step1_ようこそ

STEP2 権限チェック

次は権限のチェックです。
問題がなければ次に進みます。

EC-CUBEインストール_step2_権限チェック

STEP3 サイトの設定

ショップ名、受注用メールアドレス、管理者アカウント、管理画面URLなどを登録します。

EC-CUBEインストール_step3_サイトの設定

STEP4 データベースの設定

事前に準備していたデータベースの情報を入力します。データベースの種類を間違えないようにしましょう。

EC-CUBEインストール_step4_データベースの設定

STEP5 データベースの初期化

正常に接続できればデータベースの初期化を行うため次に進みます。
すでに旧バージョンのEC-CUBEをインストールしていて、初期化したくない場合はチェックを入れておきます。

EC-CUBEインストール_step5_データベースの初期化

STEP6 インストール完了

インストールが完了しました。

EC-CUBEインストール_step6_インストール完了

サイトを確認する

インストール完了画面で、「管理画面を表示」ボタンを押すとログイン画面が表示されるので、STEP3で登録したログインIDとパスワードでログインしてみましょう。

EC-CUBEログイン画面

インストールの仕上げとして/html/install.phpを削除します。すると、黄色で表示されている警告が消えます。

管理画面上部にあるサイト名をクリックするとショップのフロントエンドを確認することができます。
また、この時点では、サイトURLは「http://ドメイン/html/」となっているのがわかります。

EC-CUBE管理画面

サイトURLから「html」を消す

http://ドメイン/html/」となっているサイトURLが「http://ドメイン/」となるように変更していきます。

htmlディレクトリから必要ファイルの移動と削除

htmlディレクトリにある以下の緑枠ファイル(index.php、index_dev.php、robots.txt)を1つ上の階層に移動します。
また、htmlディレクトリにある.htaccessは削除します。

eccube-3_0_10_htmlフォルダ構成

ファイルを修正

4つのファイルを修正していきます。

先ほど移動した「index.php」

require __DIR__.'/autoload.php';

ini_set('display_errors', 'Off');
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);

先ほど移動した「index_dev.php」

if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !in_array(@$_SERVER['REMOTE_ADDR'], $allow)
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}

require_once __DIR__.'/autoload.php';

Debug::enable();
// load config dev
$conf = $app['config'];
$app['config'] = $app->share(function () use ($conf) {
    $confarray = array();
    $config_dev_file = __DIR__.'/app/config/eccube/config_dev.yml';
    if (file_exists($config_dev_file)) {
        $config_dev = Yaml::parse(file_get_contents($config_dev_file));
        if (isset($config_dev)) {
            $confarray = array_replace_recursive($confarray, $config_dev);
        }
    }

    return array_replace_recursive($conf, $confarray);
});
// Silex Web Profiler
$app->register(new \Silex\Provider\WebProfilerServiceProvider(), array(
    'profiler.cache_dir' => __DIR__.'/app/cache/profiler',
    'profiler.mount_prefix' => '/_profiler',
));

app/config/eccube/path.yml

これはWebインストールにより作成されたファイルです。

root_urlpath: 

サーバのドキュメントルート直下にある.htaccess

<FilesMatch "^autoload|^cli-config|\.(ht|ini|lock|dist|git|sh)$">
     order allow,deny
     deny from all
</FilesMatch>

<Files ~ "index.php|index_dev.php">
     order deny,allow
     allow from all
</Files>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpg|css|ico|js)$ [NC]
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

これで、サイトURLから「html」が消え、「http://ドメイン/」でアクセスできるようになりました。