AWS EC2にECサイトを構築する ~Magento編~

初めに
こんにちは。新入社員のA.H.です。
前回は、AWS EC2インスタンスにEC-CUBEを構築しました。
AWS EC2にECサイトを構築する ~EC-CUBE編~
今回は、前回に引き続きAWS EC2インスタンスに世界でシェア率の高いECサイト構築パッケージであるMagentoの構築を行っていきます。
目標
・Magentoの管理画面にログインでき、正常に動作する状態。
・Magentoのフロントページが確認でき、正常に動作する状態。
・Magentoにサンプルデータを入れ、管理画面・フロントページ共に正常に動作する状態。
※EC2インスタンス作成手順は割愛いたします。
目次
- 構築環境
- 下準備
- Magentoの会員登録
- インスタンスへのログイン
- 構築
- rootユーザーへの切り替え
- Apache2.4のインストール
- MySQL8.0のインストール
- PHP7.4のインストール
- phpMyAdminのインストール
- 環境設定
- ElasticSearchのインストール
- Composerのインストール
- Magento2のインストール
- サンプルデータのインストール
- 管理画面へのログイン
- Magento構築後の備忘録
- インスタンスを停止してパブリックIPv4が変わった
- 1つ以上のインデックスが無効、の表示が消えない
構築環境
インスタンス構成
- AWS EC2 Linux2 64 ビット (x86)
- インスタンスサイズ t2.xlarge
※インスタンスサイズが t2.largeでも構築はできますが、サンプルデータを入れての構築の場合は t2.xlarge 以上を推奨します。
- セキュリティグループ
タイプ | プロトコル | ポート範囲 |
SSH | TCP | 22 |
HTTP | TCP | 80 |
カスタムTCP | TCP | 8080 |
カスタムTCP | TCP | 9200 |
システムバージョン
Magentoのシステム要件
https://devdocs.magento.com/guides/v2.4/install-gde/system-requirements.html
今回の構築環境の各システムバージョン
- Magento 2.4
- Apache 2.4
- MySQL 8.0
- PHP 7.4
- phpMyAdmin 5.0.2
- Java 1.8.0
- ElasticSearch 7.9.2
使用ツール
TeraTerm
下準備
1.Magentoの会員登録
1.1 アクセスキーを取得する
Magentoのマーケットプレイスにアクセスし、会員登録を行います。
https://marketplace.magento.com/
会員登録が完了したらマイページに移動します。
(トップ画面に戻った場合は右上の名前をクリックし、Myprofileをクリックするとマイページに移動します)

My Products の Access Keys をクリックします。

Create A New Access Key をクリックして認証鍵を作成してください。名前はなんでも構いません。
同画面下部に作成した認証鍵が表示されます。 Access Keys に表示されている Public Key と Private Key は後ほど必要になるためメモを取っておきましょう。
2.インスタンスへのログイン
TeraTermを用いてインスタンスへログインします。
TeraTermを起動すると以下のような画面が出てくるため、赤枠で囲われている ホスト に作成したインスタンスの パブリック IPv4 アドレス を入力してOKを押します。
以下のような画面が出る事もありますが、続行を押してしまって構いません。
以下の画面が表示されたら
①ユーザー名に ec2-user と入力
②認証法式はの赤枠内の RSA/DSA/ECDSA/ED25519鍵を使う を選択
最後に③の赤枠内を選択しインスタンスを作成した際に設定した pemファイルの秘密鍵 を指定します。
OKを押し、以下の画像と同じような画面が出てきましたらインスタンスへの接続は成功です。
次はインスタンス内の環境を整えてEC-CUBEをインストール準備をしていきます。
構築
1.rootユーザーへの切り替え
1.1 rootユーザーに切り替える
rootユーザーに切り替えます。
</p>
sudo su -
<p>
合わせてインスタンス内を最新の状態にします。
</p>
sudo yum update -y
<p>
2.Apache2.4のインストール
2.1 Apacheをインストールする
</p>
sudo yum install httpd
<p>
2.2 Apacheの自動起動設定
</p>
systemctl enable httpd.service
<p>
3.MySQL8.0のインストール
3.1 MariaDB用パッケージを削除する
競合を起こす恐れがあるため、標準でインストールされているMariaDBを削除します。
</p>
sudo yum remove mariadb-libs
<p>
3.2 レポジトリをインストールする
</p>
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
<p>
3.3 MySQLをインストールする
</p>
sudo yum install --enablerepo=mysql80-community mysql-community-server
<p>
3.4 MySQLを起動する
</p>
sudo -i
systemctl start mysqld.service
<p>
3.5 MySQLの自動起動設定
</p>
systemctl enable mysqld.service
<p>
3.6 初期パスワードを確認する
MySQLへログインする必要がありますが、ログインには初期設定のパスワードが必要なため以下コマンドを入力し確認します。
</p>
cat /var/log/mysqld.log | grep 'temporary password'
<p>
以下内容のような文が返ってきます。
</p>
2020-09-17T07:14:01.628396Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: GG1Z?i9QWtxG
<p>
文末の root@localhost: 以降の文字がパスワードです。
※上記の場合は GG1Z?i9QWtxG がパスワードとなります。
3.7 MySQLにログインする
パスワードが入手できたのでMySQLにログインします。
</p>
mysql -u root -p
<p>
パスワードを求められるので先ほど入手したパスワードを入力してエンターキーを押してください。
※パスワードは入力しても画面には反映されません。
3.8 パスワードを変更する
ログイン後は初期パスワードを変更しないとMySQL内の操作ができないため、以下コマンドでパスワードを変更します。
</p>
set password="新しいパスワード";
<p>
※パスワードの内容が甘いと
</p>
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
<p>
とエラーが表示されます。
アルファベット大文字・小文字・数字・記号を組み合わせて設定してみてください。
今回DBは後で作成しますので exit + Enterキー でMySQLから抜けます。
3.9 バイナリログの生成を停止する
MySQL8から自動でバイナリログを生成するようになりました。
バイナリログの容量が膨大なものとなるため、今回は停止させて構築を行っていきます。
以下コマンドで設定ファイルを開きます。
</p>
vim /etc/my.cnf
<p>
ファイルの一番下に以下の1文を追加します。
編集は i + Enterキー
編集終了は Escキー
保存して終了は :wq + Enterキー です。
</p>
disable-log-bin
<p>
編集が終わったらMySQLを再起動します。
</p>
systemctl restart mysqld.service
<p>
4.PHP7.4のインストール
4.0 Magentoのシステム要件を確認する
現在必要とされているPHPの必須ライブラリを把握します。
https://devdocs.magento.com/guides/v2.4/install-gde/system-requirements-tech.html
4.1 remiリポジトリを使用可能にする
</p>
sudo amazon-linux-extras install epel
sudo yum install epel-release
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
<p>
4.2 PHP7.4をインストールする
</p>
sudo yum install php74 php74-php
<p>
4.3 phpコマンドを使用可能にする
</p>
sudo ln -s /usr/bin/php74 /usr/bin/php
<p>
phpコマンドが使えるようになったか、の動作確認と合わせてインストール済のライブラリを確認します。
</p>
php -m
<p>
4.4 不足していたライブラリをインストールする
Magentoのシステム要件と比較し、不足しているライブラリをインストールします。
</p>
sudo yum -y install php74-php-pdo php74-php-mysqlnd php74-php-opcache php74-php-xml php74-php-gd php74-php-devel php74-php-mysql php74-php-intl php74-php-mbstring php74-php-bcmath php74-php-json php74-php-iconv php74-php-soap php74-php-pecl-zip
<p>
※環境によっては上記コマンドの内容のみでは必須ライブラリの条件を満たさない可能性があります。php -m で全て揃ったことを確認してから次に進んでください。
4.5 PHPの情報を確認する
phpファイルを以下コマンドで作成します。
</p>
vim /var/www/html/phpinfo.php
<p>
ファイル内容は以下。
</p>
<?php
phpinfo();
?>
<p>
ファイル編集を終えたらApacheを再起動します。
</p>
systemctl restart httpd.service
<p>
Webブラウザで http://パブリック IPv4 DNS/phpinfo.php にアクセスしてください。
以下の画像と同じ画面が表示されれば成功です。

表示を確認出来た際はphp.iniファイルの位置も確認し、メモを取ってください。
以下画像では /etc/opt/remi/php74/php.ini と記載されています。

確認が終わったらブラウザを閉じても問題ありません。
5.phpMyAdminのインストール
5.1 phpAdminのダウンロード
phpMyAdminを配布している以下のサイトにアクセスし、最新バージョンの「 Quick download」のリンクのアドレスをコピーします。
https://www.phpmyadmin.net/files/
※今回は
https://files.phpmyadmin.net/phpMyAdmin/5.0.3/phpMyAdmin-5.0.3-all-languages.zip
をコピーした前提で進めていきます。
コピーが完了したらTeraTermに戻り、インストールしていきます。
</p>
cd /var/www
sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.0.3/phpMyAdmin-5.0.3-all-languages.zip
sudo unzip phpMyAdmin-5.0.3-all-languages.zip
sudo mv phpMyAdmin-5.0.3-all-languages phpMyAdmin
<p>
解凍前のファイルは不要のため削除します。
</p>
rm phpMyAdmin-5.0.3-all-languages.zip
<p>
以上でコマンドでのphpMyAdminの設定は終わりです。
DBの作成は後ほど行います。
6.環境設定
6.1 Apacheの設定を変更する①
編集前にバックアップをとっておきます。
</p>
cp /etc/httpd/conf/httpd.conf /home/ec2-user/
<p>
バックアップをとれたらファイルを編集していきます。
</p>
vim /etc/httpd/conf/httpd.conf
<p>
編集は i + Enterキー
編集終了は Escキー
行数表示は :set number + Enterキー
文字検索は /検索したい文字 + Enterキー
編集内容を保存して終了は :wq! + Enterキー です。
42行目付近を以下内容に変更します。
</p>
/* 変更前 */
Listen 80
/* 変更後 */
Listen 80
Listen 8080
<p>
編集が終わったら、編集内容を保存して終了してください。
6.2 Apacheの設定を変更する②
次に、以下ファイルを編集します。
</p>
vim /etc/httpd/conf.d/magento2.conf
<p>
ファイルが新しく作成されるため、以下の内容を記載します。
</p>
<VirtualHost _default_:80>
DocumentRoot /var/www/magento2
<Directory /var/www/magento2>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog logs/magento2-error.log
LogLevel error
CustomLog logs/magento2-access.log combined
</VirtualHost>
<p>
編集が終わったら、編集内容を保存して終了してください。
6.3 Apacheの設定を変更③
最後に以下ファイルを編集します。
</p>
vim /etc/httpd/conf.d/phpMyAdmin.conf
<p>
こちらも新しくファイルが作成されるため、以下の内容を記載します。
</p>
<VirtualHost _default_:8080>
DocumentRoot /var/www/phpMyAdmin
<Directory /var/www/phpMyAdmin>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog logs/phpMyAdmin-error.log
LogLevel error
CustomLog logs/phpMyAdmin-access.log combined
</VirtualHost>
<p>
編集が終わったら、編集内容を保存して終了してください。
6.5 Apacheを再起動する
3ファイルの編集が終わったら設定を反映させるため、Apacheを再起動します。
</p>
systemctl restart httpd.service
<p>
6.6 DBを作成する
5.phpMyAdminのインストール でインストールしたphpMyAdminにアクセスします。
Webブラウザで http:// パブリック IPv4 DNS :8080/ にアクセスしてください。
例)http://ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com:8080/
以下の画面が表示されれば成功です。

接続できなかった場合は以下の理由が考えられます。
①インスタンスのセキュリティグループで8080の設定をしていない。
②6.1 Apacheの設定を変更する で行った設定に不備がある。
③6.2 Apacheを再起動する を飛ばしている。
④phpMyAdminを配置したファイルの位置が異なる。
④の確認は以下コマンドで確認できます。
</p>
cd /var/www
ls
<p>
上記コマンドで /var/www 内のディレクトリ、ファイルが表示されます。その中に「phpMyAdmin」がない場合は手順を誤っているので、もう一度5.の手順を行ってください。
画面が正常に表示された場合は
ユーザー名 root
パスワード 3.8で設定したもの
を入力し、ログインします。

ログインに成功したらDBを新しく作っていきます。
左のメニューにある新規作成をクリックします。

データベース名 :magento2
プルダウン :utf8_general_mysql500_ci
作成を押してDBを作成します。
これでDBの作成は完了です。
ブラウザは閉じて構いません。
7.ElasticSearchのインストール
7.1 Javaをインストールする
ElasticSearchを使用するためにはJavaのインストールが必要となります。
以下コマンドでJavaをインストールします。
</p>
sudo yum install java-1.8.0-openjdk.x86_64
<p>
7.2 ElasticSearchをインストールする
ElasticSearchを配置するディレクトリを作成します。
</p>
mkdir -p /src/elasticsearch
<p>
https://www.elastic.co/jp/downloads/elasticsearch
にアクセスして Downloads: の RPM X86_64 のリンクのアドレスをコピーします。
※今回は
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-x86_64.rpm
をコピーした前提で進めていきます。
TeraTermに戻り、インスタンス内にElasticSearchをインストールします。
</p>
cd /src/elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-x86_64.rpm
sha1sum elasticsearch-7.9.2-x86_64.rpm
sudo rpm --install elasticsearch-7.9.2-x86_64.rpm
<p>
7.3 設定ファイルを変更する
以下コマンドでファイルを編集していきます。
</p>
vim /etc/elasticsearch/jvm.options
<p>
22、23行目あたり
</p>
/* 変更前 */
-Xms1g
-Xmx1g
/* 変更後 */
-Xms4g
-Xmx4g
<p>
7.4 ElasticSearchの自動起動設定
</p>
sudo chkconfig --add elasticsearch
<p>
7.5 ElasticSearchを起動する
</p>
systemctl start elasticsearch.service
<p>
7.6 動作確認をする
</p>
curl -XGET http://localhost:9200/
<p>
以下のようなレスポンスが表示されたらElasticSearchの設定は完了です。
</p>
{
"name" : "ip-xx-xx-xx-xx.ap-northeast-1.compute.internal",
"cluster_name" : "xxxxxx",
"cluster_uuid" : "xxxxxx",
"version" : {
"number" : "7.9.2",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "xxxx",
"build_date" : "2020-09-23T00:45:33.626720Z",
"build_snapshot" : false,
"lucene_version" : "8.6.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
<p>
8.Composerのインストール
5.1 Composerをインストールする
Composerをインストールする前に「cd」コマンドでルートディレクトリに移動します。
Composerのサイトにアクセスし
https://getcomposer.org/download/
Command-line installation の下にある4行のコマンドを実行します。
</p>
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '795f976fe0ebd8b75f26a6dd68f78fd3453ce79f32ecb33e7fd087d39bfeb978342fb73ac986cd4f54edd0dc902601dc') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
<p>
5.2 composerコマンドを使用可能にする
</p>
mkdir ~/bin
mv composer.phar ~/bin/composer
<p>
上記の実行が終わった後に
</p>
composer
<p>
と実行し、以下のようなアスキーアートが表示されれば設定は完了です。
</p>
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.10.10 2020-08-03 11:35:19
<p>
9.Magento2のインストール
9.1 PHPの設定を変更する
4.5 でファイルの位置を確認した php.ini のファイルを編集します。
以下は /etc/opt/remi/php74/php.ini となっていた場合です。
異なっていた場合は vim 以下を適切なパスにしてファイルを編集してください。
</p>
vim /etc/opt/remi/php74/php.ini
<p>
259行目あたり
</p>
/* 変更前 */
zlib.output_compression = Off
/* 変更後 */
zlib.output_compression = On
<p>
388行目あたり
</p>
/* 変更前 */
max_execution_time = 30
/* 変更後 */
max_execution_time = 18000
<p>
409行目あたり
</p>
/* 変更前 */
memory_limit = 128M
/* 変更後 */
memory_limit = 4G
<p>
3箇所の修正が終わったら、保存して終了してください。
9.2 Composerを用いてMagentoをダウンロードする
</p>
cd /var/www
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento2
<p>
2行目のコードを実行した際に以下内容で認証キーを聞かれます。
</p>
Authentication required (repo.magento.com):
Username:
Password:
<p>
前準備で取得した
Public Key を Username に入力
Private Key を Password に入力
してください。
10分程度に待つことになるので、ここで小休憩を取りましょう。
</p>
Package container-interop/container-interop is abandoned, you should avoid using it. Use psr/container instead.
Package sebastian/finder-facade is abandoned, you should avoid using it. No replacement was suggested.
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
Writing lock file
Generating autoload files
81 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
PHP CodeSniffer Config installed_paths set to ../../magento/magento-coding-standard,../../phpcompatibility/php-compatibility
<p>
と最後に表示があればダウンロードは完了です。
9.3 Magentoファイルの権限を変更する
Magentoファイルの権限をApacheに変更します。
</p>
cd /var/www/magento2
sudo chown -R :apache /var/www/magento2
sudo find . -type d -exec chmod 770 {} \; && sudo find . -type f -exec chmod 660 {} \; && sudo chmod u+x bin/magento
<p>
9.4 Magentoをインストールする
インストール前に念のためApacheとMySQLとElasticSearchを再起動しておきます。
</p>
systemctl restart httpd.service
systemctl restart mysqld.service
systemctl restart elasticsearch.service
<p>
Magentoファイルのディレクトリ内に移動します。
</p>
cd /var/www/magento2
<p>
Magentoのインストールを行います。
コマンドの内容は以下を参考にしてください。
–db-host | 今回は localhost |
–db-name | 6.6 で作成したDB名 |
–db-user | 今回は root |
–db-password | 3.6 で再設定したrootユーザーのパスワード |
–base-url | 今回は パブリック IPv4 DNS ※必ず http://xxxxx/ 形式で記載してください。 |
–backend-frontname | 管理画面のURLに使用します。 admin とした場合、 http://ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com/admin/ が管理画面のURLとなります。 |
–admin-firstname –admin-lastname |
特に決まりはありません |
–admin-email | メールサーバーの設定はしていないため適当な文字列で構いません |
–admin-user –admin-password |
管理画面へのログインに必要な情報となります。 |
以下コマンドでインストールを実行します。
何と記載し実行したのか、メモを取っておくことをお勧めします。
※「=」の後ろにスペースは入れないよう注意してください。
</p>
bin/magento setup:install \
--db-host=localhost \
--db-name=magento2 \
--db-user=root \
--db-password=password \
--base-url=http://ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com/ \
--backend-frontname=admin \
--admin-firstname=kurosu \
--admin-lastname=pawao \
--admin-email=crosspower@example.com \
--admin-user=admin \
--admin-password=Password1
<p>
1分程度で構築が完了します。
処理の最後に以下の内容が表示されていたらMagentoのインストールは完了です。
</p>
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin
Nothing to import.
<p>
※構築がエラーとなった場合は以下原因が考えられます。
⓪この記事内で構築を行っているMagentoとバージョンと異なっている。
①インスタンスのサイズが今回の記事冒頭と異なっている。
②9.1 の php.ini の設定の設定が不十分である。
③PHPのライブラリが公式のシステム要件を満たしていない。
④環境が公式のシステム要件を満たしていない。(Apacheのバージョンが古い、PHPのバージョンが古い、ElasticSearchをインストールしていない、など)
⑤その他
初めて構築を行った際にMagentoのインストールで何度も足止めを食らいました…。原因は上に記載したものでありましたが、環境によっては異なる場合もありますのでエラー文を確認し、対処することをオススメします。
9.6 Apacheを再起動する
</p>
systemctl restart httpd.service
<p>
9.7 Webブラウザで確認する
Webブラウザで パブリック IPv4 DNS にアクセスし、以下の画面が表示されたら成功です。

表示が確認できなかった場合、Magentoファイルの権限をApacheに再設定してください。
</p>
sudo chown -R :apache /var/www/magento2
<p>
10.サンプルデータのインストール
10.1 現在のモードを確認する
現時点ではサンプルデータのない状態でのインストールのため、サンプルデータをダウンロードします。
ただし、Magentoのモードが「developer」でないとサンプルデータのインストールができないので現在のモードを確認します。
</p>
cd /var/www/magento2
bin/magento deploy:mode:show
<p>
以下のレスポンスが表示されます。
</p>
Current application mode: default. (Note: Environment variables may override this value.)
<p>
現在のモードは default であると確認できます。
モードを developer に変更します。
</p>
rm -rf /var/www/magento2/generated/metadata/* /var/www/magento2/generated/code/*
bin/magento deploy:mode:set developer
<p>
1行目でモード移行のために不要なファイルを削除、2行目でdeveloperモードに移行します。
</p>
Enabled developer mode.
<p>
上記のレスポンスが表示されたら成功です。
念のため、現在のモードを確認します。
</p>
bin/magento deploy:mode:show
Current application mode: developer. (Note: Environment variables may override this value.)
<p>
developerモードであると確認出来たら次に進みます。
10.2 Magentoをアップグレードする
</p>
bin/magento setup:upgrade
<p>
最後に以下の文が表示されていたらアップデートは成功です。
</p>
Nothing to import.
<p>
10.3 サンプルデータをダウンロードする
以下コマンドでサンプルデータをダウンロードします。
</p>
bin/magento sampledata:deploy
<p>
開始時にComposerでMagentoをダウンロードした際と同じように認証キーを聞かれることがあります。
同じものを入力し、実行してください。
5分程度待ちますので小休憩を取りましょう。
以下の表示が最後にあればダウンロード成功です。
</p>
<warning>Package container-interop/container-interop is abandoned, you should avoid using it. Use psr/container instead.</warning>
<warning>Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.</warning>
<warning>Package sebastian/finder-facade is abandoned, you should avoid using it. No replacement was suggested.</warning>
Writing lock file
Generating autoload files
81 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
PHP CodeSniffer Config installed_paths set to ../../phpcompatibility/php-compatibility,../../magento/magento-coding-standard
<p>
※warning が3件ありますが、無視して構いません。
10.4 サンプルデータを適用する
サンプルデータを適用するためにMagentoをアップグレードします。
</p>
bin/magento setup:upgrade
<p>
完了まで少し時間がかかります。
アップグレードが完了したらApache、MySQL、ElasticSearchの再起動とMagentoファイルの管理権限をApacheに変更します。
</p>
systemctl restart httpd.service
systemctl restart mysqld.service
systemctl restart elasticsearch.service
sudo chown -R :apache /var/www/magento2
<p>
10.5 サンプルデータが適用されたか確認する
Webブラウザで パブリック IPv4 DNS にアクセスしてください。

先ほどと表示が変わり、上記の表示となっていたらサンプルデータのダウンロードは成功です。
11.管理画面へのログイン
11.1 管理画面
Webブラウザで パブリック IPv4 DNS の最後に 9.4 で設定した –backend-frontname を入力したものにアクセスします。
例)–backend-frontname を admin で設定した場合
http://ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com/admin
以下の画面が表示されたら成功です。

ここで 9.4 で設定した Username と Password を入力すればログインができるのですが、デフォルトだと2段階認証が有効になっているため、設定したメールアドレスに手順を送付したから確認してね、との表示が出ます。
今回はメールサーバーを設定していないため、2段階認証を解除する方法でログインできるようにします。
11.2 2段階認証を解除する
</p>
cd /var/www/magento2/
bin/magento module:disable Magento_TwoFactorAuth
<p>
以下の表示があれば設定は完了です。
</p>
The following modules have been disabled:
- Magento_TwoFactorAuth
Cache cleared successfully.
Generated classes cleared successfully. Please run the 'setup:di:compile' command to generate classes.
Info: Some modules might require static view files to be cleared. To do this, run 'module:disable' with the --clear-static-content option to clear them.
<p>
再度管理画面にアクセスし、UsernameとPasswordを入力してログインします。

上記画像と同じ画面になったらログイン成功です。
以上でMagentoの構築は終了となります。お疲れ様でした。
Magento構築後の備忘録
1.インスタンスを停止してパブリックIPv4が変わった
インスタンスを停止し、開始すると固定化していない限りパブリックIPv4は変わってしまいます。
そのため、今のパブリックIPv4で接続してもMagento側は前回表示していたパブリックIPv4の設定となっており、Magentoのページは表示されません。
TeraTermでインスタンスに接続し、以下コマンドを行うとWebブラウザで確認できるようになります。
※rootアカウントであることを確認して実行してください。
</p>
cd /var/www/magento2
php bin/magento setup:store-config:set --base-url=http://パブリック IPv4 DNS/
php bin/magento cache:flush
systemctl restart mysqld.service
systemctl restart httpd.service
<p>
base-urlのデータはDBで管理されているのでDBを直接編集しても問題ありません。
以下テーブル、カラムが編集するデータです。
valueを今の パブリック IPv4 DNS に変更してください。
テーブル | core_config_data |
path | web/unsecure/base_url |
変更が完了したら、コマンドでの変更と同じようにMagentoのキャッシュを削除し、ApacheとMySQLを再起動します。
※補足
Elastic IPを割り当てるとインスタンスを停止し再起動してもパブリックIPv4の値は変わりません。詳しくは「Elastic IP」で検索してみてください。
2.1つ以上のインデックスが無効、の表示が消えない
店舗やストアビューを作成した際に、画面上部に
One or more indexers are invalid. Make sure your Magento cron job is running.
と表示されることがあります。
時間経過で表示が消えますが、しばらく様子を見ても消えない場合は以下を試してみてください。
1度もcronについて設定していなかった場合はTeraTermでインスタンスに接続し、以下のコマンドを実行してください。
※rootユーザーで実行してください。
</p>
cd /var/www/magento2
php bin/magento cron:install --force
<p>
既に設定済、上のコマンドでも解決できない場合は以下コマンドを実行してください。
</p>
cd /var/www/magento2
systemctl restart elasticsearch.service
php bin/magento indexer:reindex
php bin/magento cache:flush
<p>
最後に
今回はAWS EC2にMagentoを構築してみました。
次回はEC-CUBEとMagentoのインスタンス移行の方法について共有させていただけたらと思います。
最後までお付き合いいただきありがとうございました!


