「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
- 4. 「Create A New Access Key」のボタンを押すと、「Create new access keys」のウィンドウが立ち上がるので、、鍵に対しての任意の名前を入力し、OKボタンを押してください。
Magento Marketplace Create New Access Key
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のパッケージの取得
- 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が使用可能です。
|
いいえ |
–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管理画面 ログイン画面