はじめに
コロナウィルスの影響により、イベント開催が難しくなっているのでECを活用したいという話を聞く機会が増えた。
営業支援をともに行っているAくんは非エンジニアだが、自己学習のためAWSを触ってみたりしているので、
彼が自分でEC-CUBEを設定できるよう最速で簡単にセットアップするための手順を用意してみた。
TL;DR
- 2020-08-24 記事作成
- Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-0cc75a8978fbbc969 使用
- EC-CUBE 4.0.4 使用
yum update -y
amazon-linux-extras install -y lamp-mariadb10.2-php7.2
yum install -y mariadb-server
yum install -y httpd php php-xml php-mbstring php-zip php-intl
cd /usr/local/src/
wget http://downloads.ec-cube.net/src/eccube-4.0.4.zip
unzip eccube-4.0.4.zip
mv eccube-4.0.4 /var/www/html/ec
chown -R apache:apache /var/www/html/
echo -e '<Directory "/var/www/html/ec">\n AllowOverride All\n</Directory>' > /etc/httpd/conf.d/ec.conf
systemctl start mariadb
mysql -u root -e "CREATE DATABASE ecdb DEFAULT CHARACTER SET utf8;CREATE USER 'ecuser'@'localhost' IDENTIFIED BY 'ecpass';GRANT ALL PRIVILEGES ON ecdb.* TO 'ecuser'@'localhost';FLUSH PRIVILEGES;"
systemctl start httpd
上の補足説明
yumのupdate
yum update -y
LAMP環境の用意
amazon-linux-extras install -y lamp-mariadb10.2-php7.2
yum install -y mariadb-server
yum install -y httpd php php-xml php-mbstring php-zip php-intl
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html
ここに詳しく書いていますが、amazon-linux-extrasコマンドでパッケージを最新化し
yumコマンドで必要パッケージをインストールするという流れです。
php-xmlなどは入れておかないとEC-CUBEのインストールステップの中で怒られます。
EC-CUBEファイル群の設置
cd /usr/local/src/
wget http://downloads.ec-cube.net/src/eccube-4.0.4.zip
unzip eccube-4.0.4.zip
mv eccube-4.0.4 /var/www/html/ec
chown -R apache:apache /var/www/html/
wgetでzipをダウンロードし、解答したら
/var/www/html/ec
に設置、apacheユーザ権限を付与してやる。
Apacheの設定
echo -e '<Directory "/var/www/html/ec">\n AllowOverride All\n</Directory>' > /etc/httpd/conf.d/ec.conf
専用confを設定せずそのままインストールを進めると、リダイレクトでエラーになります。
これはEC-CUBEが.htaccessを利用してrewrite処理をしようとするけど
/var/www/html 以下はAllowOverride Noneなのでその配下の.htaccessが効かないためです。
/var/www/html/ec 以下はAllowOverride Allという設定を入れておきます。
MariaDBの設定
systemctl start mariadb
mysql -u root -e "CREATE DATABASE ecdb DEFAULT CHARACTER SET utf8;CREATE USER 'ecuser'@'localhost' IDENTIFIED BY 'ecpass';GRANT ALL PRIVILEGES ON ecdb.* TO 'ecuser'@'localhost';FLUSH PRIVILEGES;"
mariadbを起動して、データベースの作成とユーザの設定を実行します。
SQLの内容を1行ずつ切り分けるとこんな感じ。
// データベースを作成する。データベース名は「ecdb」としておく。
CREATE DATABASE ecdb DEFAULT CHARACTER SET utf8;
// ユーザの作成。ユーザ名「ecuser」、パスワード「ecpass」としておく。
CREATE USER 'ecuser'@'localhost' IDENTIFIED BY 'ecpass';
// 権限変更。全て許可する。
GRANT ALL PRIVILEGES ON ecdb.* TO 'ecuser'@'localhost';
// 権限テーブルを変更したのでそれを知らせる
FLUSH PRIVILEGES;
データベース名やユーザ名、パスワード等は適宜変更してください。
Apacheの起動
systemctl start httpd
最後にApacheを起動。
以上でサーバ側のセットアップは完了。
WEB側のセットアップ
サーバ側のセットアップが終わったら、今度はWEB側のセットアップを行う。
セットアップ STEP1
/ec にアクセスすると、install/step1 にリダイレクトされます。
.htaccessが無効な場合はここで403になるし、必要なモジュールが入ってないとここで怒られます。
セットアップ STEP2
アクセス権限を確認されます。
セットアップ STEP3
必要に応じてサイトの設定を行います。
管理画面のディレクトリ名は推測されづらいものを入れた方が良いし、
完全ssl化や管理画面へのIP制限は行っていた方が安全です。
セットアップ STEP4
DBの設定です。
サーバ側設定で利用したものを入力します。
また、必須事項になっていませんがホスト名は必須(localhostだからスキップでいいだろ、としていたらエラーになりました。)のようです。
セットアップ STEP5
初期化を行います。
セットアップ STEP6
問題なければインストール完了の画面が表示されます。
「管理画面を表示」を押下します。
管理画面へのログイン
STEP3で設定したログイン情報を使ってログインします。
成功すれば管理画面内にアクセスできます。
以上!