#はじめに
所属しているロボコンチームでECサイトが必要になったのですが、自動で伝票を作成できる機能などがあるMagentoをインストールすることにしました。
結構苦戦したので、備忘録的な意味も含めて、メモしておきます。
なお、一般的なものとあまり変わらない部分は、簡単に記載するだけになるので、追加でいろいろ調べながらやってみてください。
#インスタンスの作成
これは、簡単です。
AWSのアカウントを取得して、Ligsaillの管理画面からインスタンスを作成するだけです。
本来は、Magentoがセットになっているインスタンスもありますが、今回は何もセットになっていないインスタンスを作成します。
OSはAmazonLinux2で、メモリが4Gのプランです。
Lightsaillはインスタンスのアップグレードはできても、ダウングレードはできないので大きくしすぎないように気を付けましょう。
メモリは、最低でも2G無いとインストールできないと思うので、それ以上のプランを選ぶようにしましょう。
また、接続用のSSHキーペアを作成する場合は、なくさないようにしましょう。
#Apacheのインストール
Apacheのインストールは特段難しくありません。
sudo yum -y update
sudo yum install -y httpd
起動及び自動起動設定
systemctl start httpd
systemctl enable httpd
#SSLの設定
今回は、手動インストールしましたが、yumでも大丈夫だと思います。
sudo curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
sudo chmod 700 /usr/bin/certbot-auto
なお、そのまま使用するとエラーがでますので、こちらの記事を参考に実行ファイルを少し変更してください。
Amazon Linux2でLet's Encrypt使おうとしたらコケた話
それが終わったら、通常通り証明書を発行すればよいです。
#MySQLのインストール
これも特段変わりません。
こちらに記載する必要もないので、リンクのみ。
2.5.1 MySQLYumリポジトリを使用したLinuxへのMySQLのインストール
#PHPのインストールについて
これで少し詰まりました。
初期状態でAmazonLinux2にPHPを入れると、7.4xがインストールされるのですが、動作はしたものの7.3が推奨されており、拡張機能がうまくインストールできなかったので、PHP7.3xをインストールします。
まずは、現在インストールされているものをアンインストールします。
yum remove php-* -y
そして、php7.4を無効にし、7.3をインストールします。
sudo amazon-linux-extras disable php7.4
sudo amazon-linux-extras install php7.3=7.3.13
終わったら、php-fpmの再起動を忘れずに
systemctl reload php-fpm
#Magentoのインストール
これも通常通り行えばよいです。
今回は、 /var/www/html にインストールします。
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /var/www/html
/var/www/htmlに移動し、インストールコマンドを実行します。
必要なものは適宜置き換えてください。
bin/magento setup:install \
--base-url=http://localhost/magento2ee \
--db-host=localhost \
--db-name=magento \
--db-user=magento \
--db-password=magento \
--admin-firstname=admin \
--admin-lastname=admin \
--admin-email=admin@admin.com \
--admin-user=admin \
--admin-password=admin123 \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1
インストールが完了すると、管理画面のURLが発行されるので、そこにアクセスします。
#初期設定
スクショを取り忘れたので、言葉で説明します。
ログイン画面に移動したら、インストール時に設定したアカウント情報でログインします。
そうすると、メールに2段階認証の設定コードを送ったと書かれた画面になりますが、メールを設定していないので、送られてきません。
そこで、少しファイルを編集します。
vi vendor/magento/module-two-factor-auth/Model/EmailUserNotifier.php
でファイルを開き、
/**
* Send configuration related message to the admin user.
*
* @param User $user
* @param string $token
* @param string $emailTemplateId
* @param string $url
* @return void
*/
private function sendConfigRequired(
User $user,
string $token,
string $emailTemplateId,
string $url
): void {
try {
$transport = $this->transportBuilder
->setTemplateIdentifier($emailTemplateId)
->setTemplateOptions([
'area' => 'adminhtml',
'store' => 0
])
->setTemplateVars(
この記載個所の
try{
の前に、
var_dump($url);
と入力します。
そして、先ほどの画面に戻ると、メールに送られるはずだったURLが出力されるので、アクセスして2段階認証の設定をします。
設定が終わったら、ファイルは元に戻しておいてください。
#日本語化
日本語化も簡単です。
以下をインストールすれば完了です。
composer require veriteworks/m2-japaneselocale
管理画面のアカウント設定で日本語を選択すれば、日本語になります。
#メモリ不足について
もし、メモリーが足りないと出たら、Swapファイルを作成します。
1024と書かれているところを変更すれば、容量も変更できます。
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
freeコマンドを実行して、認識されていれば、成功です。
free
total used free shared buff/cache available
Mem: 4037584 2441604 397488 740 1198492 1366768
Swap: 2097148 0 2097148
#まとめ
ECCubeを使ってきた人としては、結構大変でしたが、やはり越境ECや大規模サイトの場合の運営のしやすさ、他のツールとの連携性はシェア率からしても高いです。
最初は、CDNをかまそうかと思ったのですが、調べてもメディアファイルだけCDNを通す、という記事しか発見できなかったのであきらめました。
もし、間違えなどあったら指摘してください。