Eコマースソフトウェア Magento2を導入してみた
こんにちは、コンサル部@大阪オフィスのTodaです。
Magento(マジェント)って知ってますか?
MagentoはAdobe KK社の提供する製品の1つでECサイトを構築するソフトウェアになります。
日本でオープンソースの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
ログイン後、下記リンクをクリックする事でAccess Keyを発行する画面に移動します。 Magento2の「Create A New Access Key」をクリックしてください。
https://marketplace.magento.com/customer/accessKeys/
取得した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アドレス または ドメイン]
まとめ
今回はMagentoの初期導入を試してみました。
最新のMagentoでは検索機能をElasticSearchを使って行うことができるようです。
設定についても調べて別記事でご紹介したいと思います。