Eコマースソフトウェア Magento2を導入してみた

2020.09.09

こんにちは、コンサル部@大阪オフィスのTodaです。

Magento(マジェント)って知ってますか?
MagentoはAdobe KK社の提供する製品の1つでECサイトを構築するソフトウェアになります。

Magento(マジェント) 公式サイト

Magento(マジェント) 公式サイト

日本でオープンソースのECと聞くと株式会社ロックオンさんのEC-CUBEが出てくることが多く、聞く機会が少ないと思いますが、海外では2020年8月現在Eコマースソフトウェアで2位のシェアになります。

(参考資料) eCommerce Usage Distribution in the Top 10k Sites

海外のシステムになるため多言語、他通貨、他国の税管理ができる機能が標準で導入されていて、日本だけでなく海外でも販売をしたい場合に選択肢の1つになります。
Magentoのエディションは2つに分かれており無料で利用できるOpen Source版と 有料のMagento Commerce版に分かれています。
今回はMagento2(Open Source版)をEC2とRDSの環境に導入してみたいと思います。

Magentoの必要動作環境

Magento2を導入する場合下記のソフトウェアが必要になります。
インストールをする際に専用コマンドを利用して行います。
メモリを多く消費するため2GB以上の容量を確保ください。

  • Apache2.4 または Nginx1.8
  • MySQL5.7
  • PHP7.3 ※1
  • Composer (任意)
  • 物理メモリは最低2GB 推奨4GB
    足りない場合はswapを設定して対応する事も可能です。

※1 Magentoの動作には下記のPHP拡張機能が必要となります。

ext-bcmath
ext-ctype
ext-curl
ext-dom
ext-gd
ext-hash
ext-iconv
ext-intl
ext-mbstring
ext-openssl
ext-pdo_mysql
ext-simplexml
ext-soap
ext-xsl
ext-zip

用意した環境

今回はお試し導入のためシングルインスタンスで対応いたします。
ECサイトは購買のチャンスを逃さないために可用性の高い構成が推奨されます。

  • EC2インスタンス (t2.medium / ストレージ : 20GB)
  • RDSインスタンス (db.t2.micro / ストレージ : 20GB)

Magentoのアクセスキー取得

Magentoを利用する場合、事前に公式サイトのMarketPlaceにユーザ登録を行いAccess Keyの取得が必要です。 リンクを押していただきユーザ登録またはログインをしてください。

https://marketplace.magento.com

marketplaceログイン画面

ログイン後、下記リンクをクリックする事でAccess Keyを発行する画面に移動します。 Magento2の「Create A New Access Key」をクリックしてください。

https://marketplace.magento.com/customer/accessKeys/

取得したAccess Keyは後ほどインストール時に利用いたします。
それまで保管ください。では必要情報がそろいましたのでインストールに進みます。

marketplace Access Key発行画面

 

Magentoのインストール

EC2インスタンス内のソフトを最新に更新

新規インスタンス導入時はソフトを最新の状態にすることが推奨されています。最新ソフトが無いか確認と更新を行います。

sudo yum -y update

Apacheのインストール

Webサーバとして今回はApacheを導入します。

sudo yum install -y httpd

GDのインストール

GDは画像処理をするライブラリです。商品のサムネール作成や画像容量削減で利用します。

sudo yum install -y gd

PHPのインストール

amazon-linux-extras listで確認したところ7.3のバージョンは複数存在するようです。今回はPHP7.3.13を利用するようにします。

sudo amazon-linux-extras install php7.3=7.3.13

PHP拡張機能を追加でインストールします。

sudo yum install -y php-bcmath
sudo yum install -y php-mbstring
sudo yum install -y php-xml
sudo yum install -y php-intl
sudo yum install -y php-soap
sudo yum install -y php-gd
sudo yum install -y php-zip

導入後、1度 PHP-FPMを再起動しておきます。

sudo systemctl restart php-fpm

Composerのインストール

Composerの公式サイトを確認して導入を進めます。
ComposerはPHPのパッケージ管理システムで依存関係を考慮して必要なライブラリを取得してくれる便利なソフトウェアです。

インストールコマンド (2020年9月時点)

sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php -r "if (hash_file('sha384', 'composer-setup.php') === '8a6138e2a05a8c28539c9f0fb361159823655d7ad2deecb371b04a83966c61223adc522b0189079e3e9e277cd72b8897') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php
sudo php -r "unlink('composer-setup.php');"

Composerのコマンドをec2-userで利用できるように設定します。

sudo mv composer.phar /usr/local/bin/composer
php /usr/local/bin/composer

echo "export PATH=/home/ec2-user/.config/composer/vendor/bin:$PATH" >> ~/.bash_profile
source ~/.bash_profile

ディレクトリの権限を変更

sudo chown ec2-user /var/www/html

Composerを利用して取得

Composerを利用する事でMagentoと必要なプログラムを取得する事ができます。
最新バージョンは2.4ですが、検証環境で2段階認証を承認する事が難しいため認証不要のバージョン2.3.5を利用します。
実行はサーバスペックにより3分〜5分ほどかかります。

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.3.5 /var/www/html/magento

コマンド利用時にusernameとpasswordを求められます。
こちらは事前準備で取得したAccess KeyのPublic KeyとPrivate Keyを入力ください。

Username = Public Key
Password = Private Key

ファイルのアクセス許可を設定

取得したソフトウェアのファイル権限とユーザの設定を変更します。

cd /var/www/html/magento
sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
sudo chown -R :apache ./
sudo chmod u+x bin/magento

Magentの初期設定

初期設定はコマンドを使って行うことができます。
コマンドで設定できるパラメータは下記をご確認ください。

Install the Magento software - Installer help commands

最低限必要なコマンドを実行するようにいたします。

php bin/magento setup:install  --cleanup-database \
--base-url=http://【IPアドレス or ドメイン】 \
--db-host=【RDSのエンドポイント】 \
--db-name=【RDSのデータベース名】 \
--db-user=【RDSのユーザー名】 \
--db-password=【RDSのパスワード】 \
--admin-firstname=【管理者(名)】 \
--admin-lastname=【管理者(姓)】 \
--admin-email=【メールアドレス】 \
--admin-user=【管理画面ID】 \
--admin-password=【管理画面パスワード】 \
--language=ja_JP \
--currency=JPY \
--timezone=Asia/Tokyo \
--use-rewrites=1

上記コマンドが完了すると管理画面のURLが表示されます。内容は控えるようにお願いします。

実行後のコマンド表示

Apacheの公開ディレクトリ設定を修正

今回、/var/www/html/magentoにMagentを導入致しましたので公開ディレクトリの設定を変更いたします。

sudo vi /etc/httpd/conf/httpd.conf 

DocumentRoot "/var/www/html/magento”

<Directory "/var/www/html/magento”>
    AllowOverride All
</Directory>

Apacheの起動と自動起動設定

sudo systemctl start httpd
sudo systemctl enable httpd

公開、管理ページへのアクセス

アクセスをするとLUMAというサイトが表示されます。
上記が表示されることでMagentoが正常動作していることを確認できます。

・公開ページ - 商品未掲載 http://[IPアドレス または ドメイン]

公開ページ - 商品未掲載
・管理ページ - ログイン http://[IPアドレス または ドメイン]/admin_c5q2f4
・管理ページ - ダッシュボード

まとめ

今回はMagentoの初期導入を試してみました。
最新のMagentoでは検索機能をElasticSearchを使って行うことができるようです。
設定についても調べて別記事でご紹介したいと思います。