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

初めに

こんにちは。新入社員のA.H.です。
前回は、AWS EC2インスタンスEC-CUBEを構築しました。

xp-cloud.jp


今回は、前回に引き続きAWS EC2インスタンスに世界でシェア率の高いECサイト構築パッケージであるMagentoの構築を行っていきます。

 

目標


・Magentoの管理画面にログインでき、正常に動作する状態。
・Magentoのフロントページが確認でき、正常に動作する状態。
・Magentoにサンプルデータを入れ、管理画面・フロントページ共に正常に動作する状態。

※EC2インスタンス作成手順は割愛いたします。

目次

  1. 構築環境
  2. 下準備

    1. Magentoの会員登録
    2. インスタンスへのログイン

  3. 構築

    1. rootユーザーへの切り替え
    2. Apache2.4のインストール
    3. MySQL8.0のインストール
    4. PHP7.4のインストール
    5. phpMyAdminのインストール
    6. 環境設定
    7. ElasticSearchのインストール
    8. Composerのインストール
    9. Magento2のインストール
    10. サンプルデータのインストール
    11. 管理画面へのログイン

  4. Magento構築後の備忘録

    1. インスタンスを停止してパブリックIPv4が変わった
    2. 1つ以上のインデックスが無効、の表示が消えない

構築環境

インスタンス構成


インスタンスサイズが 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

今回の構築環境の各システムバージョン

使用ツール

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ユーザーに切り替えます。

sudo su -

合わせてインスタンス内を最新の状態にします。

sudo yum update -y

2.Apache2.4のインストール

2.1 Apacheをインストールする

sudo yum install httpd

2.2 Apache自動起動設定

systemctl enable httpd.service


3.MySQL8.0のインストール

3.1 MariaDB用パッケージを削除する

競合を起こす恐れがあるため、標準でインストールされているMariaDBを削除します。

sudo yum remove mariadb-libs

3.2 レポジトリをインストールする

sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

3.3 MySQLをインストールする

sudo yum install --enablerepo=mysql80-community mysql-community-server

3.4 MySQLを起動する

sudo -i
systemctl start mysqld.service

3.5 MySQL自動起動設定

systemctl enable mysqld.service

3.6 初期パスワードを確認する

MySQLへログインする必要がありますが、ログインには初期設定のパスワードが必要なため以下コマンドを入力し確認します。

cat /var/log/mysqld.log | grep 'temporary password'

以下内容のような文が返ってきます。

2020-09-17T07:14:01.628396Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: GG1Z?i9QWtxG
文末の root@localhost:  以降の文字がパスワードです。
※上記の場合は GG1Z?i9QWtxG がパスワードとなります。

3.7 MySQLにログインする

パスワードが入手できたのでMySQLにログインします。

mysql -u root -p


パスワードを求められるので先ほど入手したパスワードを入力してエンターキーを押してください。
※パスワードは入力しても画面には反映されません。

3.8 パスワードを変更する

ログイン後は初期パスワードを変更しないとMySQL内の操作ができないため、以下コマンドでパスワードを変更します。
set password="新しいパスワード";

※パスワードの内容が甘いと

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

とエラーが表示されます。
アルファベット大文字・小文字・数字・記号を組み合わせて設定してみてください。

今回DBは後で作成しますので exit + Enterキー でMySQLから抜けます。

3.9 バイナリログの生成を停止する

MySQL8から自動でバイナリログを生成するようになりました。
バイナリログの容量が膨大なものとなるため、今回は停止させて構築を行っていきます。

以下コマンドで設定ファイルを開きます。

vim /etc/my.cnf

ファイルの一番下に以下の1文を追加します。
編集は  i + Enterキー
編集終了は Escキー
保存して終了は :wq + Enterキー です。

disable-log-bin
編集が終わったらMySQLを再起動します。
systemctl restart mysqld.service
 

4.PHP7.4のインストール

4.0 Magentoのシステム要件を確認する

現在必要とされているPHPの必須ライブラリを把握します。
https://devdocs.magento.com/guides/v2.4/install-gde/system-requirements-tech.html

4.1 remiリポジトリを使用可能にする

sudo amazon-linux-extras install epel
sudo yum install epel-release
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

4.2 PHP7.4をインストールする

sudo yum install php74 php74-php

4.3 phpコマンドを使用可能にする

sudo ln -s /usr/bin/php74 /usr/bin/php

phpコマンドが使えるようになったか、の動作確認と合わせてインストール済のライブラリを確認します。

php -m

4.4 不足していたライブラリをインストールする


Magentoのシステム要件と比較し、不足しているライブラリをインストールします。

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

※環境によっては上記コマンドの内容のみでは必須ライブラリの条件を満たさない可能性があります。php -m で全て揃ったことを確認してから次に進んでください。

4.5 PHPの情報を確認する

phpファイルを以下コマンドで作成します。
vim /var/www/html/phpinfo.php

ファイル内容は以下。

<?php
  phpinfo();
?>
ファイル編集を終えたらApacheを再起動します。

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に戻り、インストールしていきます。

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

解凍前のファイルは不要のため削除します。

rm phpMyAdmin-5.0.3-all-languages.zip

以上でコマンドでのphpMyAdminの設定は終わりです。
DBの作成は後ほど行います。

 

6.環境設定

6.1 Apacheの設定を変更する①

編集前にバックアップをとっておきます。

cp /etc/httpd/conf/httpd.conf /home/ec2-user/

バックアップをとれたらファイルを編集していきます。

vim /etc/httpd/conf/httpd.conf

編集は i + Enterキー
編集終了は Escキー
行数表示は :set number + Enterキー
文字検索は /検索したい文字 + Enterキー
編集内容を保存して終了は :wq! + Enterキー です。

42行目付近を以下内容に変更します。

/ 変更前 /
Listen 80

/ 変更後 / Listen 80 Listen 8080

編集が終わったら、編集内容を保存して終了してください。

6.2 Apacheの設定を変更する②

次に、以下ファイルを編集します。

vim /etc/httpd/conf.d/magento2.conf

ファイルが新しく作成されるため、以下の内容を記載します。

<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>

編集が終わったら、編集内容を保存して終了してください。

6.3 Apacheの設定を変更③

最後に以下ファイルを編集します。

vim /etc/httpd/conf.d/phpMyAdmin.conf
こちらも新しくファイルが作成されるため、以下の内容を記載します。
<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>

編集が終わったら、編集内容を保存して終了してください。

6.5 Apacheを再起動する

3ファイルの編集が終わったら設定を反映させるため、Apacheを再起動します。

systemctl restart httpd.service

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を配置したファイルの位置が異なる。

④の確認は以下コマンドで確認できます。

cd /var/www
ls
上記コマンドで /var/www 内のディレクトリ、ファイルが表示されます。その中に「phpMyAdmin」がない場合は手順を誤っているので、もう一度5.の手順を行ってください。

画面が正常に表示された場合は
ユーザー名 root
パスワード 3.8で設定したもの
を入力し、ログインします。


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


データベース名 :magento2
プルダウン :utf8_general_mysql500_ci
作成を押してDBを作成します。

これでDBの作成は完了です。
ブラウザは閉じて構いません。

 

7.ElasticSearchのインストール

7.1 Javaをインストールする

ElasticSearchを使用するためにはJavaのインストールが必要となります。
以下コマンドでJavaをインストールします。

sudo yum install java-1.8.0-openjdk.x86_64

7.2 ElasticSearchをインストールする

ElasticSearchを配置するディレクトリを作成します。
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をインストールします。
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

7.3 設定ファイルを変更する


以下コマンドでファイルを編集していきます。

vim /etc/elasticsearch/jvm.options
22、23行目あたり
/ 変更前 /
-Xms1g
-Xmx1g

/ 変更後 / -Xms4g -Xmx4g

7.4 ElasticSearchの自動起動設定

sudo chkconfig --add elasticsearch

7.5 ElasticSearchを起動する

systemctl start elasticsearch.service

7.6 動作確認をする

curl -XGET http://localhost:9200/
以下のようなレスポンスが表示されたらElasticSearchの設定は完了です。
  "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"
}

 

8.Composerのインストール

5.1 Composerをインストールする

Composerをインストールする前に「cd」コマンドでルートディレクトリに移動します。


Composerのサイトにアクセスし
https://getcomposer.org/download/
Command-line installation の下にある4行のコマンドを実行します。

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');"

5.2 composerコマンドを使用可能にする

mkdir ~/bin
mv composer.phar ~/bin/composer

上記の実行が終わった後に

composer
と実行し、以下のようなアスキーアートが表示されれば設定は完了です。

      
    / /           
   / /   /  \/  ` \/  \/  \/ / _ \/ /
  / // // / / / / / / // / /_/ (  )  / /
  _/_// // // ./_//_//
                      /_/
Composer version 1.10.10 2020-08-03 11:35:19

 

9.Magento2のインストール

9.1 PHPの設定を変更する

4.5 でファイルの位置を確認した php.ini のファイルを編集します。

以下は /etc/opt/remi/php74/php.ini となっていた場合です。
異なっていた場合は vim 以下を適切なパスにしてファイルを編集してください。

vim /etc/opt/remi/php74/php.ini

259行目あたり

/ 変更前 /
zlib.output_compression = Off

/ 変更後 / zlib.output_compression = On

388行目あたり

/* 変更前 */
max_execution_time = 30

/* 変更後 */
max_execution_time = 18000

409行目あたり

/* 変更前 */
memory_limit = 128M

/* 変更後 */
memory_limit = 4G

3箇所の修正が終わったら、保存して終了してください。

9.2 Composerを用いてMagentoをダウンロードする

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

2行目のコードを実行した際に以下内容で認証キーを聞かれます。

Authentication required (repo.magento.com):
      Username:
      Password:
前準備で取得した
Public Key を Username に入力
Private Key を Password に入力
してください。

10分程度に待つことになるので、ここで小休憩を取りましょう。
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
と最後に表示があればダウンロードは完了です。

9.3 Magentoファイルの権限を変更する

Magentoファイルの権限をApacheに変更します。
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

9.4 Magentoをインストールする

インストール前に念のためApacheMySQLとElasticSearchを再起動しておきます。

systemctl restart httpd.service
systemctl restart mysqld.service
systemctl restart elasticsearch.service
Magentoファイルのディレクトリ内に移動します。

cd /var/www/magento2


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
管理画面へのログインに必要な情報となります。


以下コマンドでインストールを実行します。
何と記載し実行したのか、メモを取っておくことをお勧めします。
※「=」の後ろにスペースは入れないよう注意してください。

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
1分程度で構築が完了します。
処理の最後に以下の内容が表示されていたらMagentoのインストールは完了です。
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin
Nothing to import.

※構築がエラーとなった場合は以下原因が考えられます。

⓪この記事内で構築を行っているMagentoとバージョンと異なっている。
インスタンスのサイズが今回の記事冒頭と異なっている。
②9.1 の php.ini の設定の設定が不十分である。
PHPのライブラリが公式のシステム要件を満たしていない。
④環境が公式のシステム要件を満たしていない。(Apacheのバージョンが古い、PHPのバージョンが古い、ElasticSearchをインストールしていない、など)
⑤その他

初めて構築を行った際にMagentoのインストールで何度も足止めを食らいました…。原因は上に記載したものでありましたが、環境によっては異なる場合もありますのでエラー文を確認し、対処することをオススメします。

9.6 Apacheを再起動する

systemctl restart httpd.service

9.7 Webブラウザで確認する

Webブラウザで パブリック IPv4 DNS にアクセスし、以下の画面が表示されたら成功です。

表示が確認できなかった場合、Magentoファイルの権限をApacheに再設定してください。
sudo chown -R :apache /var/www/magento2

 

10.サンプルデータのインストール

10.1 現在のモードを確認する


現時点ではサンプルデータのない状態でのインストールのため、サンプルデータをダウンロードします。

ただし、Magentoのモードが「developer」でないとサンプルデータのインストールができないので現在のモードを確認します。

cd /var/www/magento2
bin/magento deploy:mode:show
以下のレスポンスが表示されます。
Current application mode: default. (Note: Environment variables may override this value.)


現在のモードは default であると確認できます。
モードを developer に変更します。

rm -rf /var/www/magento2/generated/metadata/ /var/www/magento2/generated/code/
bin/magento deploy:mode:set developer
1行目でモード移行のために不要なファイルを削除、2行目でdeveloperモードに移行します。
Enabled developer mode.
上記のレスポンスが表示されたら成功です。
念のため、現在のモードを確認します。
bin/magento deploy:mode:show
Current application mode: developer. (Note: Environment variables may override this value.)

developerモードであると確認出来たら次に進みます。

10.2 Magentoをアップグレードする

bin/magento setup:upgrade

最後に以下の文が表示されていたらアップデートは成功です。

Nothing to import.

10.3 サンプルデータをダウンロードする

以下コマンドでサンプルデータをダウンロードします。
bin/magento sampledata:deploy


開始時にComposerでMagentoをダウンロードした際と同じように認証キーを聞かれることがあります。
同じものを入力し、実行してください。

5分程度待ちますので小休憩を取りましょう。


以下の表示が最後にあればダウンロード成功です。

<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
※warning が3件ありますが、無視して構いません。

10.4 サンプルデータを適用する

サンプルデータを適用するためにMagentoをアップグレードします。

bin/magento setup:upgrade
完了まで少し時間がかかります。

アップグレードが完了したらApacheMySQL、ElasticSearchの再起動とMagentoファイルの管理権限をApacheに変更します。
systemctl restart httpd.service
systemctl restart mysqld.service
systemctl restart elasticsearch.service
sudo chown -R :apache /var/www/magento2

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段階認証を解除する

cd /var/www/magento2/
bin/magento module:disable Magento_TwoFactorAuth

以下の表示があれば設定は完了です。

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.

再度管理画面にアクセスし、UsernameとPasswordを入力してログインします。

上記画像と同じ画面になったらログイン成功です。

以上でMagentoの構築は終了となります。お疲れ様でした。

 

Magento構築後の備忘録

1.インスタンスを停止してパブリックIPv4が変わった

インスタンスを停止し、開始すると固定化していない限りパブリックIPv4は変わってしまいます。
そのため、今のパブリックIPv4で接続してもMagento側は前回表示していたパブリックIPv4の設定となっており、Magentoのページは表示されません。

TeraTermインスタンスに接続し、以下コマンドを行うとWebブラウザで確認できるようになります。
※rootアカウントであることを確認して実行してください。

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

base-urlのデータはDBで管理されているのでDBを直接編集しても問題ありません。
以下テーブル、カラムが編集するデータです。
valueを今の パブリック IPv4 DNS に変更してください。

テーブル core_config_data
path web/unsecure/base_url


変更が完了したら、コマンドでの変更と同じようにMagentoのキャッシュを削除し、ApacheMySQLを再起動します。
※補足
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ユーザーで実行してください。

cd /var/www/magento2
php bin/magento cron:install --force
既に設定済、上のコマンドでも解決できない場合は以下コマンドを実行してください。
cd /var/www/magento2
systemctl restart elasticsearch.service
php bin/magento indexer:reindex
php bin/magento cache:flush

 

最後に

今回はAWS EC2にMagentoを構築してみました。

次回はEC-CUBEとMagentoのインスタンス移行の方法について共有させていただけたらと思います。

最後までお付き合いいただきありがとうございました!

 

 

 

 

AWS相談会バナー