Magento2 インストール手順」の記事ではMagento2.3のインストール手順をご紹介していましたが、バージョン2.4になり、GUIによるインストール手順が廃止されました。
改めて本記事では、2023年2月時点で最新バージョンに当たるMagento2.4.5-p1のインストール手順をご説明します。
なお”-p1″の部分はセキュリティパッチを意味しており、2.4.5に対する1つ目のセキュリティパッチという意味になります。2.4.XのXの数値が上がるマイナーバージョンアップが出ますが、セキュリティリスクの緊急修正プログラムにはこのようにp1,p2といった形でセキュリティパッチが提供されます。
実際にこれらのセキュリティパッチを適用していなかったことでセキュリティが破られたというご相談をいただくこともございますので、必ず適用する必要があります。

インストール前の準備

動作環境

当記事執筆時点の最新版に当たるMagento2.4.5-p1の動作環境です。以下の参考URLに加え、当社の経験から得た内容についても補足しています。

参考URL: Magento System Requirements

OS
RedHat Enterprise Linux(RHEL)、CentOS、Ubuntu、Debian などの Linux ディストリビューション。 Microsoft Windows とmacOSはサポートされていません。
メモリ
2GB以上
DBも同一サーバ上で動かすのであれば4GB以上は必要だと思いますが、本番用途であれば8GBは必要になると思います。
Composer
Composer 2.2。Magento本体のコードやエクステンションのコードを入手するために必要です。
Webサーバ
Nginx 1.18またはApache Http Server 2.4
Apacheには”mod_rewrite”と”mod_version”が必要です。
Apacheを使用してサーバ負荷が高くなった場合、システムダウンや運営の費用の増加影響しかねませんので、特別な理由がなければ軽量に動作するNginxを使用してください。
データベース
MySQL 8.0,MariaDB 10.4, AWS Aurora (MySQL) 8.0
検索エンジン
Elasticsearch 7.17,OpenSearch 1.2,AWSElasticsearch 7.9,AWS OpenSearch 1.2
Magento2.4以降はElasticsearch等の検索エンジンが必須コンポーネントとなりました。
PHP
8.1
PHP 拡張機能(Magento Open Source)
  • ext-bcmath
  • ext-ctype
  • ext-curl
  • ext-dom
  • ext-fileinfo
  • ext-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pcre
  • ext-pdo_mysql
  • ext-simplexml
  • ext-soap
  • ext-sockets
  • ext-sodium
  • ext-tokenizer
  • ext-xmlwriter
  • ext-xsl
  • ext-zip
  • ext-lib-libxml
  • lib-openssl
PHP OPcache
動作速度に大きく影響するため、PHP OPcacheの導入が強く推奨されています。当社でも必ず導入していますし、また実際に遅くて仕方ないという場合はまず導入されているかを確認したい項目です。
PHPの設定
様々な問題をあらかじめ避けるようにmemory_limitは大きく設定することが記載されています。最低1GB必要です。大きいサイズのバッチ処理を行う場合はもっと必要になります。PHPのインストールや設定値の詳細については以下を参照してください。
参考URL: Magento PHP Settings
SSL
  • HTTPSを利用する場合は、有効なセキュリティ証明書が必要です。
  • 自己署名SSL証明書はサポートされていません。
  • Paypalと”repo.magento.com”の利用に当たり、TLS1.2以上のバージョンが必要です。
必要なOSのコマンド(コンポーネント)
  • bash
  • gzip
  • lsof
  • mysql
  • mysqldump
  • nice
  • php
  • sed
  • tar
メールサーバ
PostfixやSendgrid、MandrillなどのSMTP。GmailやOffice365の利用も可能となります。

Magentoで利用が可能なテクノロジー

以下は本番運用の際に導入しておきたいコンポーネントで、Magento2でも標準的にサポートしています。

  • Redis 6.2(推奨): Magento2で標準搭載されたFull Page Cache(FPC)とセッションの高速ストレージとしての利用が可能です。特にMagentoサーバを複数台用意する場合には、セッションの同期のために必要です。(DBにセッションを格納するよりも高速です。)
  • Varnish 7.0 : リバースプロキシとして動作します。
  • RabbitMQ 3.9 : 非同期のメッセージング処理に利用されます。
  • PHPUnit : 9.0.0
  • php_xdebug : 2.5.x以上 – 動作速度に影響するため、開発環境のみで使用します。

認証鍵の取得

  • 1. Magentoのソースコードを入手するには、Magentoのソースコードを入手するには、Adobe IDのアカウントが必要です。Magento Marketplaceを開き、ユーザー登録の上ログインして下さい。
  • 2. 右上にある▼マークをクリックし、「My Profile」を開きます。
  • 3. 「Access Keys」をクリックします。
    Magento Marketplace Access Keys

    Magento Marketplace Access Keys

  • 4. 「Create A New Access Key」のボタンを押すと、「Create new access keys」のウィンドウが立ち上がるので、、鍵に対しての任意の名前を入力し、OKボタンを押してください。
    Magento Marketplace Create New Access Key

    Magento Marketplace Create New Access Key

    Magento Marketplace New Access Keys Name

    Magento Marketplace New Access Keys Name

  • 5. 「Public Key」と「Private Key」が作成されますので、メモ帳などに控えておきます。こちらはコマンドラインなどからComposerにアクセスする場合に利用されます。

バーチャルホスト(Nginx)

Nginx用のconfigファイルがMagentoのパッケージに含まれていますので、こちらをincludeするようにNginxでバーチャルホストの設定を行うと、簡単にバーチャルホストの設定ができます。

Nginxのバーチャルホストの設定例>

upstream fastcgi_backend {
server unix:/var/run/php-fpm/php-fpm.sock;
}

server {
listen 80;
server_name http://<MagentoのFQDN>;
set $MAGE_ROOT /var/www/html/<Magentoのインストールディレクトリ>;
set $MAGE_MODE default;
include /var/www/html/<Magentoのインストールディレクトリ>/nginx.conf.sample; #サンプルのNginx用設定ファイル
}

インストール手順

Magentoのパッケージの取得

ここでは、Magentoのルートディレクトリを /var/www/html/magento として説明します。
  • 1. Magentoのサーバにログインし、Magentoのファイルシステムのオーナにスイッチして下さい。
  • 2. Webサーバのドキュメントルートに移動して下さい。この例では、
    cd /var/www/html

    となります。

  • 3. Adobe CommerceまたはMagento Open Sourceメタパッケージを使用してComposerプロジェクトを新規作成します。
    Magento Open Source(無償版)の場合
     composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <インストールディレクトリの名前をここに>
    Magento Commece(有償版の場合)
     composer create-project --repository-url=https://repo.magento.com/ magento/project-enterprise-edition <インストールディレクトリの名前をここに>
    Magentoのバージョン(2.4.5-p1)を指定する場合
     composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.5-p1 <インストールディレクトリの名前をここに>
    Magento2.4.5-p1を /var/www/html/magento とする場合
     composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.5-p1 magento

途中で認証鍵(authentication keys)を聞かれますので、Magento Marketplaceから取得したPuclic KeyとPrivate Keyを入力してください。

ファイルパーミッションの設定

  • 1. Magentoのドキュメントルートに対して、Webサーバの実行ユーザがアクセス可能な所有者を設定します。
コマンド実行例(Nginxの場合)
chmod -R nginx:nginx /var/www/html/magento
コマンド実行例(Apache Http Serverの場合)
chmod -R apache:apache /var/www/html/magento

または

chmod -R www-data:www-data /var/www/html/magento

など

  • 2. Magentoのドキュメントルートに対して、適切にパーミッションを設定します。
パーミッション設定例
cd /var/www/html/magento
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
chmod u+x bin/magento

インストールの実行

Magento2.3まではMagentoセットアップウィザードでのインストールが可能でしたが、Magento2.4以降はコマンドラインによるインストールのみ対応しています。
コマンドラインでのインストールコマンドは、次の形式を使用します。

bin/magento setup:install --option1=value1 --option2=value2 ...

このコマンドの実行により、ダウンロードからインストールまでの一連の動作が実行されます。
スペースや特殊文字を含むオプションは、一重引用符または二重引用符で囲む必要があります。インストールに使用する各オプションの詳細は以下のようになります。

  • 管理者資格情報

管理者ユーザーは、インストール中またはインストール後に作成できます。 インストール中にユーザーを作成する場合は、管理者資格情報の変数がすべて必要となります。

オプション名 説明 必須
–admin-firstname 管理者ユーザーの名 はい
–admin-lastname 管理者ユーザーの姓 はい
–admin-email 管理者ユーザーの電子メールアドレス はい
–admin-user 管理者ユーザー名 はい
–admin-password 管理者ユーザーのパスワード。 パスワードは7文字以上で、英字および数字を少なくとも1文字含める必要があります。 はい
  • サイトおよびデータベースの構成オプション
オプション名 説明 必須
–base-url 管理者およびストアフロントにアクセスするために使用するベースURL。http[s]://// や http[s]:/// の形式で指定します。 はい
–backend-frontname 管理画面にアクセスする場合のURIを指定します。 このオプションを省略した場合、admin_jkgdfq のように admin_ 以降がランダムで生成されます。このURIはインストールの最後に表示されます。後で確認する場合、以下のコマンドで確認可能です。
bin/magento info:adminuri
いいえ
–db-host データベースサーバの完全修飾ホスト名またはIPアドレス。このオプションを省略した場合、デフォルト値のlocalhostが使用されます。 はい
–db-name データベーステーブルをインストールするデータベースインスタンスの名前。このオプションを省略した場合、デフォルト値のmagento2が使用されます。 はい
–db-user データベースインスタンスの所有者のユーザ名。このオプションを省略した場合、デフォルト値のrootが使用されます。 はい
–db-password データベースインスタンスの所有者のパスワード。 はい
–db-prefix 既にデータベーステーブルが含まれるデータベースインスタンスにインストールする場合にのみ使用します。プレフィックスの長さは最大5文字です。 文字で始まる必要があり、文字、数字、アンダースコア文字のみ含めることができます。 いいえ
–db-ssl-key クライアントキーへのパス いいえ
–db-ssl-cert クライアント証明書のパス いいえ
–db-ssl-ca サーバー証明書のパス いいえ
–language 管理画面およびストアフロントで使用する言語コード。日本語の場合、ja_JPと指定します。このオプションを省略した場合、デフォルト値のen_USが使用されます。 いいえ
–currency ストアフロントで使用するデフォルトの通貨。日本円の場合、JPYと指定します。このオプションを省略した場合、デフォルト値のUSDが使用されます。 いいえ
–timezone 管理およびストアフロントで使用するデフォルトのタイムゾーン。日本時間の場合、Asia/Tokyoと指定します。このオプションを省略した場合、デフォルト値のAmerica/Los_Angelesが使用されます。 いいえ
–use-rewrites 1と指定した場合、生成されたリンクに対して、ストアフロントと管理画面でWebサーバの書き換えを使用することを意味します。0と指定した場合、Webサーバの書き換えを使用できなくします。 いいえ
–use-secure ストアフロントURLでSSLの使用を有効にする場合、1と指定します。 このオプションを選択する前に、WebサーバがSSLをサポートすることを確認してください。SSLの使用を無効にする場合、0と指定します。 いいえ
–base-url-secure 管理者およびストアフロントにアクセスするために使用するセキュアベースURL。このオプションを省略した場合、ベースURLで指定した値が使用されます。 いいえ
–use-secure-admin 管理画面へのアクセスでSSLを使用する場合、1と指定します。このオプションを選択する前に、WebサーバがSSLをサポートすることを確認してください。管理画面へのアクセスでSSLを使用しない場合、0と指定します。 いいえ
–admin-use-security-key 管理画面やフォームへのアクセスにランダムに生成されたキー値を使用する場合、1と指定します。 これらのキー値は、クロスサイトスクリプトフォージェリ攻撃を防ぐのに役立ち、デフォルト値は1となります。キーの使用を無効にする場合、0と指定します。 いいえ
–session-save セッションデータの保存方法を指定します。db、files、redisが使用可能です。
  • db:データベースにセッションデータを保存
  • files:ファイルシステムにセッションデータを保存
  • redis:Redisにセッションデータを保存
いいえ
–key データベース内の機密データを暗号化するキーがある場合、そのキーを指定します。 1つもない場合は、アプリケーションによって生成されます。 はい
–cleanup-database インストールする前にデータベーステーブルをドロップする場合、このオプションを値なしで指定します。 いいえ
–db-init-statements MySQL 設定の詳細パラメータ。MySQLデータベースへの接続時に、データベース初期化文を使用して実行します。このオプションを省略した場合、SET NAMES utf8; が使用されます。 いいえ
–sales-order-increment-prefix 注文のプレフィックスとして使用する文字列値を指定します。 いいえ
  • 検索エンジンの設定オプション
オプション名 説明 必須
–search-engine 検索エンジンとして使用するElasticsearchまたはOpenSearchのバージョン。elasticsearch7、elasticsearch6、elasticsearch5が指定可能です。このオプションを省略した場合、デフォルト値のelasticsearch7が使用されます。OpenSearchを使用する場合、elasticsearch7を指定します。elasticsearch5は廃止予定のため非推奨となります。 いいえ
–elasticsearch-host 検索エンジンが実行されているホスト名またはIPアドレス。このオプションを省略した場合、デフォルト値のlocalhostが使用されます。 いいえ
–elasticsearch-port 検索エンジンが実行されるホストへの接続ポート。 このオプションを省略した場合、デフォルト値の9200が使用されます。 いいえ
–elasticsearch-index-prefix 検索エンジンインデックスを識別するプレフィックス。このオプションを省略した場合、 デフォルト値のmagento2が使用されます。 いいえ
–elasticsearch-timeout システムがタイムアウトするまでの秒数。このオプションを省略した場合、デフォルト値の15が使用されます。 いいえ
–elasticsearch-enable-auth 検索エンジンサーバでの認証を有効にします。 このオプションを省略した場合、デフォルト値のfalseが使用されます。 いいえ
–elasticsearch-username 検索エンジンを認証するためのユーザーID いいえ
–elasticsearch-password 検索エンジンを認証するためのパスワード いいえ
  • RabbitMQ設定オプション
オプション名 説明 必須
–amqp-host RabbitMQがインストールされているホスト名を指定します。RabbitMQをインストールしていない場合、このオプションは使用しないでください。 いいえ
–amqp-port RabbitMQへの接続に使用するポート。デフォルト値は5672となります。 いいえ
–amqp-user RabbitMQへの接続に使用するユーザ名。デフォルトユーザのguestは使用しないでください。 いいえ
–amqp-password RabbitMQへの接続に使用するパスワード。デフォルトパスワードのguestは使用しないでください。 いいえ
–amqp-virtualhost RabbitMQへの接続に使用する仮想ホスト名。 デフォルト値は/です。 いいえ
–amqp-ssl RabbitMQに接続するかどうかを指定します。デフォルト値はfalseです。 いいえ
–consumers-wait-for-messages キューからのメッセージを待つ必要がある場合、1を指定します。待つ必要がない場合、0を指定します。 いいえ
  • ロック設定オプション
オプション名 説明 必須
–lock-provider ロックプロバイダを指定します。db、zookeeper、fileが指定可能で、デフォルト値はdbとなります。 いいえ
–lock-db-prefix dbロックプロバイダを使用する場合、ロックの競合を回避するために使用するdbプレフィックス。デフォルト値はNULLとなります。 いいえ
–lock-zookeeper-host zookeeper lock providerを使用する場合、Zookeeperクラスタに接続するためのホストとポート。–lock-providerオプションがzookeeperの場合、このオプションを指定する必要があります。 いいえ
–lock-zookeeper-path Zookeeper がロックを保存するためのパス。デフォルト値は、/magento/locksとなります。 いいえ
–lock-file-path ファイルロックが保存されるパス。 いいえ
  • コンシューマー設定オプション
オプション名 説明 必須
–consumers-wait-for-messages コンシューマーがキューからのメッセージを待つかどうかを決定します。0と指定した場合、コンシューマーはキュー内の利用可能なメッセージを処理し、TCP 接続を閉じて終了します。コンシューマーは、処理したメッセージの数がコンシューマの起動時に指定した –max_messages の値より少なくても、キューに入る追加のメッセージを待つことはありません。1と指定した場合、コンシューマーはメッセージ・キューからのメッセージを最大メッセージ数 (queue:consumers:start コマンドで –max_messages に指定した値) に達するまで処理し続け、TCP接続を閉じてコンシューマ・プロセスを終了します。max_messages に達する前にキューが空になった場合、コンシューマーはさらにメッセージが到着するのを待ちます。 いいえ

以下のような条件で、管理者ユーザーアカウントを使用した基本インストールの例は以下のようになります。

  • ベースURL : https://magento245.digital-free.net/
  • データベース・サーバ : Webサーバと同一ホスト(localhost)
  • データベース名 : magento
  • データベースユーザ名・パスワード : ユーザー名(magento) / パスワード(magento)
  • 管理者の姓名 : 姓(Admin) / 名(Magento)
  • 管理者ユーザ名・パスワード : ユーザー名(admin) / パスワード(admin#123)
  • 管理者メールアドレス : [email protected]
  • デフォルト言語 : 日本語(ja_JP)
  • デフォルト通貨 : 日本円(JPY)
  • デフォルトタイムゾーン : 日本時間(Asia/Tokyo)
  • サーバー書き換え : 使用する
  • 検索エンジン : Webサーバと同一ホスト(localhost)
  • 検索エンジンポート番号 : 9200

インストールコマンドは、1行で入力するか、以下の例のように、 \ 文字を各行の末尾に配置します。

bin/magento setup:install \
--base-url=https://magento245.digital-free.net/ \
--db-host=localhost \
--db-name=magento \
--db-user=magento \
--db-password=magento \
--admin-firstname=Magento \
--admin-lastname=Admin \
[email protected] \
--admin-user=admin \
--admin-password=admin#123 \
--language=ja_JP \
--currency=JPY \
--timezone=Asia/Tokyo \
--use-rewrites=1 \

インストールが完了すると次のようなメッセージが表示されます。–backend-frontnameオプションを指定しなかった場合、管理画面のURIはこのタイミングで確認できます。

[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1hlam6
Nothing to import.

この例では、https://magento245.digital-free.net/admin_1hlam6が、管理画面のアドレスになります。
本番運用においては、セキュリティ上管理画面のアドレスにBasic認証を適用する、アクセス可能なIPアドレスを制限する等を考慮してください。

Magento2管理画面 ログイン画面

Magento2管理画面 ログイン画面

Magento2(マジェント2)/Adobe Commerce / Adobe Commerce Cloudに関するご相談・お問い合わせ

    お問い合わせはお電話か、以下のフォームよりお願い致します。

    お電話でのお問合せ先
    東京渋谷オフィス: 03-6869-7417
    名古屋本社: 052-880-0011

    お問合せフォーム

    ご入力いただいたすべての情報は当社のプライバシーポリシーに従い、厳重にお取り扱い致します。

    ご送信いただいた内容はSSLの技術によって暗号化され、秘匿性が保たれています。