Magento · 12 min read · Oct 19, 2025
Rocky Linux 9にElasticsearchを使用してMagento eCommerce Suiteをインストールする方法

Magentoは、PHPで書かれたオープンソースのeコマースプラットフォームです。2018年にAdobeに買収されました。また、商業用およびクラウドベースの製品としても提供されています。Magentoを使用して、高容量のプロフェッショナルなショッピングウェブサイトを作成できます。単一店舗モードと複数店舗モードの両方を提供しています。機能を拡張するための多くのモジュールが付属しています。
このチュートリアルでは、Magentoのオープンソースコミュニティエディションをインストールします。プロフェッショナルなオンラインストアを設定するために必要なすべての機能を提供します。また、製品カタログを検索するためのElasticsearch、セッションおよびファイルキャッシュ用のRedisをインストールし、Nginxサーバーを使用して提供します。
前提条件
- 最低2GBのRAMを搭載したRocky Linux 9を実行しているサーバー。要件に応じて、より多くのRAMが必要になる場合があります。
- sudo権限を持つ非rootユーザー。
- サーバー用の完全修飾ドメイン名(FQDN)、
magento.example.com - すべてが更新されていることを確認してください。
$ sudo dnf update - システムに必要なパッケージがいくつかあります。
$ sudo dnf install wget curl nano unzip yum-utils policycoreutils-python-utils -yこれらのパッケージのいくつかは、すでにシステムにインストールされている場合があります。
ステップ1 - ファイアウォールの設定
最初のステップは、ファイアウォールを設定することです。Rocky LinuxはFirewalldファイアウォールを使用します。ファイアウォールの状態を確認します。
$ sudo firewall-cmd --state
running
ファイアウォールは異なるゾーンで機能し、パブリックゾーンがデフォルトで使用されます。ファイアウォールでアクティブなすべてのサービスとポートをリストします。
$ sudo firewall-cmd --permanent --list-services
次の出力が表示されるはずです。
cockpit dhcpv6-client ssh
HTTPおよびHTTPSポートを許可します。
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
ファイアウォールの状態を再確認します。
$ sudo firewall-cmd --permanent --list-services
同様の出力が表示されるはずです。
cockpit dhcpv6-client http https ssh
変更を有効にするためにファイアウォールを再読み込みします。
$ sudo firewall-cmd --reload
ステップ2 - PHPとその拡張機能のインストール
Rocky Linux 9にはデフォルトでPHP 8.1が搭載されています。常に最新のPHPバージョンを使用するか、複数のPHPバージョンをインストールする場合は、REMIリポジトリを使用する必要があります。
最初のステップは、Epelリポジトリを取得することです。
$ sudo dnf install epel-release -y
次に、Remiリポジトリをインストールします。
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
利用可能なPHPストリームを確認します。
$ dnf module list php -y
Name Stream Profiles Summary
php 8.1 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name Stream Profiles Summary
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
php remi-8.3 common [d], devel, minimal PHP scripting language
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
デフォルトのバージョンは8.1です。このチュートリアル執筆時点では、MagentoはPHP 8.2と互換性があります。したがって、RemiのPHP 8.2リポジトリを有効にします。
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.2
次のコマンドを実行して、Magentoに必要な拡張機能をインストールできます。
$ sudo dnf install php-fpm php-cli php-mysql php-mbstring php-xml php-gd php-bcmath php-zip php-curl php-tidy php-intl php-soap php-opcache php-xsl php-sodium
インストールを確認します。
$ php --version
PHP 8.2.15 (cli) (built: Jan 16 2024 12:19:32) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.15, Copyright (c) Zend Technologies
with Zend OPcache v8.2.15, Copyright (c), by Zend Technologies
ステップ3 - Composerのインストール
ComposerはPHPの依存関係管理ツールであり、Magentoのインストールに必要です。
次のコマンドを実行してComposerバイナリをダウンロードします。MagentoはComposer 2.2 LTSを必要とするため、コマンドを適宜修正しました。
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php --2.2
$ php -r "unlink('composer-setup.php');"
バイナリを/usr/local/binディレクトリに移動してComposerをインストールします。
$ sudo mv composer.phar /usr/local/bin/composer
そのバージョンを確認してインストールを確認します。
$ composer --version
Composer version 2.2.22 2023-09-29 10:53:45
ステップ4 - MariaDBのインストール
Rocky Linux 9には古いバージョンのMariaDBが搭載されています。したがって、インストールにはMariaDBのリポジトリを使用します。このチュートリアル執筆時点では、MagentoはMariaDB 10.6をサポートしており、これをインストールします。
MariaDBのGPGキーをインポートします。
$ sudo rpm --import https://supplychain.mariadb.com/MariaDB-Server-GPG-KEY
/etc/yum.repos.d/mariadb.repoファイルを作成して開きます。
$ sudo nano /etc/yum.repos.d/mariadb.repo
次のコードを貼り付けます。
[mariadb]
name = MariaDB
baseurl = https://rpm.mariadb.org/10.6/rhel/$releasever/$basearch
gpgkey= https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
$ sudo dnf install MariaDB-server
MySQLのバージョンを確認します。
$ mysql --version
mysql Ver 15.1 Distrib 10.6.16-MariaDB, for Linux (x86_64) using EditLine wrapper
MariaDBサービスを有効にして開始します。
$ sudo systemctl enable mariadb --now
MariaDBのセキュアインストールスクリプトを実行します。
$ sudo mariadb-secure-installation
rootパスワードを求められます。まだ設定していないため、Enterを押します。
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
次に、Unixソケット認証メソッドに切り替えるかどうかを尋ねられます。unix_socketプラグインを使用すると、オペレーティングシステムの資格情報を使用してMariaDBサーバーに接続できます。すでに保護されたrootアカウントがあるため、nを入力して続行します。
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
次に、rootパスワードを変更するかどうかを尋ねられます。Yを入力して進み、rootパスワードを強力で安全なものに変更します。
... skipping.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
次に、MariaDBのセキュリティを向上させるためのいくつかの質問が表示されます。匿名ユーザーを削除し、リモートrootログインを禁止し、テストデータベースを削除し、特権テーブルを再読み込みするためにYを入力します。
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
sudo mysqlまたはsudo mariadbと入力してMariaDBシェルに入ることができます。
ステップ5 - MariaDBの設定
MariaDBシェルにログインします。
$ sudo mariadb
Magento用のデータベースを作成します。
MariaDB > CREATE DATABASE magento;
SQLユーザーアカウントを作成します。
MariaDB > CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';
ユーザーにデータベースへのすべての権限を付与します。
MariaDB > GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';
ユーザーの特権をフラッシュします。
MariaDB > FLUSH PRIVILEGES;
シェルを終了します。
MariaDB > exit
ステップ6 - Nginxのインストール
Rocky Linux 9には古いバージョンのNginxが搭載されています。最新バージョンをインストールするには、公式のNginxリポジトリを使用する必要があります。
/etc/yum.repos.d/nginx.repoファイルを作成して開きます。
$ sudo nano /etc/yum.repos.d/nginx.repo
次のコードを貼り付けます。
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
Nginxメインラインをインストールするために、パッケージを有効にします。
$ sudo dnf config-manager --enable nginx-mainline
Nginxをインストールします。
$ sudo dnf install nginx -y
インストールを確認します。
$ nginx -v
nginx version: nginx/1.25.3
Nginxサーバーサービスを有効にして開始します。
$ sudo systemctl enable nginx --now
サービスの状態を確認します。
? nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)
Drop-In: /etc/systemd/system/nginx.service.d
??php-fpm.conf
Active: active (running) since Fri 2024-01-26 06:46:17 UTC; 1s ago
Docs: http://nginx.org/en/docs/
Process: 19765 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 19767 (nginx)
Tasks: 3 (limit: 12225)
Memory: 3.1M
CPU: 16ms
CGroup: /system.slice/nginx.service
??19767 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??19768 "nginx: worker process"
??19769 "nginx: worker process"
ステップ7 - SSLのインストール
SSL証明書を生成するためにCertbotをインストールする必要があります。そのためにSnapdパッケージインストーラーを使用します。Rocky Linuxにはそれが搭載されていないため、Snapdインストーラーをインストールします。EPEL(Enterprise Linux用の追加パッケージ)リポジトリが必要です。しかし、ステップ3で既にインストールしたため、直接進むことができます。
Snapdパッケージをインストールします。
$ sudo dnf install -y snapd
Snapサービスを有効にして開始します。
$ sudo systemctl enable snapd --now
Snapコアパッケージをインストールし、Snapdのバージョンが最新であることを確認します。
$ sudo snap install core && sudo snap refresh core
Snapdが機能するために必要なリンクを作成します。
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Certbotをインストールします。
$ sudo snap install --classic certbot
Certbotコマンドが実行できるように、/usr/binディレクトリにシンボリックリンクを作成します。
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Certbotが正常に機能しているか確認します。
$ certbot --version
certbot 2.8.0
次のコマンドを実行してSSL証明書を生成します。
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d magento.example.com
上記のコマンドは、サーバーの/etc/letsencrypt/live/magento.example.comディレクトリに証明書をダウンロードします。
Diffie-Hellmanグループ証明書を生成します。
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Certbotの更新スケジューラーサービスを確認します。
$ sudo systemctl list-timers
snap.certbot.renew.serviceがスケジュールされたサービスの1つとして表示されます。
NEXT LEFT LAST PASSED UNIT ACTIVATES
-------------------------------------------------------------------------------------------------------------------------------
Fri 2024-01-26 08:05:24 UTC 1h 1min left Fri 2024-01-26 06:35:00 UTC 29min ago dnf-makecache.timer dnf-makecache.service
Fri 2024-01-26 14:20:42 UTC 7h left Thu 2024-01-25 14:20:42 UTC 16h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Fri 2024-01-26 22:37:00 UTC 15h left - - snap.certbot.renew.timer snap.certbot.renew.service
SSL更新が正常に機能しているか確認するために、プロセスのドライランを実行します。
$ sudo certbot renew --dry-run
エラーが表示されなければ、すべて設定完了です。証明書は自動的に更新されます。
ステップ8 - Elasticsearchのインストール
Elasticsearchは、Magentoが製品検索に使用します。Magento 2.4.6と互換性のあるバージョンであるため、公式リポジトリを使用してElasticsearch 7.xをインストールします。要件ページにはElasticsearch 8.5も記載されていますが、Magentoでは正常に動作しません。
ElasticsearchのGPGキーをインポートします。
$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
/etc/yum.repos.d/ディレクトリにelasticsearch.repoというファイルを作成し、編集のために開きます。
$ sudo nano /etc/yum.repos.d/elasticsearch.repo
次のコードを貼り付けます。
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
Elasticsearchをインストールします。
$ sudo dnf install --enablerepo=elasticsearch elasticsearch
Elasticsearchは多くのメモリを使用します。サーバーのサイズに応じて使用量を制限する必要があります。/etc/elasticsearch/jvm.options.d/memory.optionsファイルを作成し、編集のために開きます。
$ sudo nano /etc/elasticsearch/jvm.options.d/memory.options
次のコードを貼り付けます。値はサーバーのサイズに応じて変更します。最初の値は初期メモリを指し、2番目の値は最大利用可能メモリを指します。1GB以上の場合は-Xms1g形式を使用します。
-Xms512m
-Xmx784m
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。これにより、Elasticsearchは1GBのRAMを使用するように設定されます。要件やサーバーの仕様に応じて変更してください。
サービスを開始して有効にします。
$ sudo systemctl enable elasticsearch --now
Elasticsearchが動作しているか確認します。
$ curl http://localhost:9200
次の出力が表示されるはずです。
{
"name" : "magento.example.com",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "saBfw0F_Tam6ayGjXr6pEA",
"version" : {
"number" : "7.17.17",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "aba4da413a368e296dfc64fb20897334d0340aa1",
"build_date" : "2024-01-18T10:05:03.821431920Z",
"build_snapshot" : false,
"lucene_version" : "8.11.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
ステップ9 - Redisサーバーのインストール
MagentoはセッションおよびキャッシュストレージにRedisを使用します。これは完全にオプションであり、データベースをセッションストレージとして使用できます。しかし、Redisはより良い仕事をします。最新バージョンのMagentoはRedis 7.0で動作します。Rocky LinuxにはRedis 6.0が搭載されているため、Remiリポジトリを使用してインストールします。
ステップ2でPHPをインストールしたときにRemiリポジトリをすでにインストールしました。利用可能なRedisモジュールをリストします。
$ dnf module list redis
Name Stream Profiles Summary
redis 7 common [d] Redis persistent key-value database
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name Stream Profiles Summary
redis remi-5.0 common [d] Redis persistent key-value database
redis remi-6.0 common [d] Redis persistent key-value database
redis remi-6.2 common [d] Redis persistent key-value database
redis remi-7.0 common [d] Redis persistent key-value database
redis remi-7.2 common [d] Redis persistent key-value database
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Redis 7.0を有効にします。
$ sudo dnf module enable -y redis:remi-7.0
次のコマンドを実行してRedisサーバーをインストールします。
$ sudo dnf install redis
Redisのバージョンを確認します。
$ redis-server -v
Redis server v=7.0.15 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=77c9855172eb54e9
Redisサービスを有効にして開始します。
$ sudo systemctl enable redis --now
次のコマンドを使用してサービス接続を確認します。
$ redis-cli
Redisシェルに切り替わります。
最初のステップは、Redisのデフォルトユーザーのパスワードを設定することです。Your_Redis_Passwordを強力なパスワードに置き換えます。パスワードの前に>文字を付けることを確認してください。
127.0.0.1:6379> acl setuser default >Your_Redis_Password
Redis認証をテストします。
127.0.0.1:6379> AUTH Your_Redis_Password
OK
サービスにPingを送ります。
127.0.0.1:6379> ping
PONG
exitと入力してサービスを終了します。
ステップ10 - Magentoのダウンロード
Magento用のウェブルートディレクトリを作成します。
$ sudo mkdir /var/www/html/magento -p
Magentoディレクトリに現在のユーザーの権限を与えます。
$ sudo chown $USER:$USER /var/www/html/magento/ -R
次に進む前に、Magentoリポジトリに必要な認証キーを取得する必要があります。ウェブサイトhttps://commercemarketplace.adobe.com/にアクセスし、右上のサインインリンクをクリックすると、Adobe IDを使用してログインするように求められます。

Adobe IDでサインインボタンをクリックして、次のページに移動します。

Adobe IDをお持ちの場合は、資格情報を入力して続行します。または、ここでアカウントを作成できます。アカウントを作成してログインしたら、URLhttps://commercemarketplace.adobe.com/customer/accessKeys/を開きます。このページには、プロフィール(https://commercemarketplace.adobe.com/customer/account/)にアクセスし、アクセスキーリンクをクリックすることでもアクセスできます。

新しいアクセスキーを作成ボタンをクリックして、認証キーを作成します。識別のためにキーに名前を付けます。

次のステップのために、公開キーと秘密キーの両方をメモしておいてください。
~/.config/composer/auth.jsonファイルを作成し、編集のために開きます。
$ nano ~/.config/composer/auth.json
次のコードを貼り付けます。公開キーをユーザー名に、秘密キーをパスワードに使用します。
{
"http-basic": {
"repo.magento.com": {
"username": "",
"password": ""
}
}
}
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
/var/www/html/magentoディレクトリに移動します。
$ cd /var/www/html/magento
Magentoプロジェクトを作成します。コマンドの末尾にあるperiodに注意してください。これは、コマンドが実行されている現在のディレクトリを指します。
$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition .
次のような出力が表示されるはずです。
Creating a "magento/project-community-edition" project at "./"
Installing magento/project-community-edition (2.4.6-p3)
- Downloading magento/project-community-edition (2.4.6-p3)
- Installing magento/project-community-edition (2.4.6-p3): Extracting archive
Created project in /var/www/html/magento/.
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 566 installs, 0 updates, 0 removals
- Locking 2tvenom/cborencode (1.0.2)
- Locking adobe-commerce/adobe-ims-metapackage (2.2.0)
- Locking allure-framework/allure-codeception (v2.3.0)
- Locking allure-framework/allure-php-commons (v2.3.1)
- Locking allure-framework/allure-phpunit (v2.1.0)
...............................................
次のコマンドを実行してファイルの権限を設定し、Magentoバイナリを実行可能にします。また、Magentoディレクトリの所有者をNginxユーザーに設定して、ウェブサイトにアクセスできるようにします。
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .
$ sudo chmod u+x bin/magento
ステップ11 - Magentoのインストール
Magentoディレクトリにいることを確認してください。
$ cd /var/www/html/magento
次のコマンドを実行してMagentoをインストールします。
$ bin/magento setup:install \
--base-url=http://magento.example.com \
--use-secure=1 \
--base-url-secure=https://magento.example.com \
--use-secure-admin=1 \
--db-host=127.0.0.1 \
--db-name=magento \
--db-user=magentouser \
--db-password=Your_password2 \
--admin-firstname=Navjot \
--admin-lastname=Singh \
[email protected] \
--admin-user=navjot \
--admin-password=admin_password \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--elasticsearch-host=http://127.0.0.1 \
--elasticsearch-port=9200 \
--session-save=redis \
--session-save-redis-db=0 \
--session-save-redis-password=redis_password \
--cache-backend=redis \
--cache-backend-redis-db=2 \
--cache-backend-redis-password=redis_password \
--page-cache=redis \
--page-cache-redis-db=4 \
--page-cache-redis-password=redis_password
プロセスが完了すると、次のような出力が表示されます。
.......
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_l5pv1h
Nothing to import.
管理パネルにアクセスするために必要な管理URIをメモしておいてください。
Magentoのcronジョブを作成します。
$ php bin/magento cron:install
cronジョブを確認します。
$ crontab -l
次のような出力が表示されるはずです。
#~ MAGENTO START f37deed947b2ea951ad6f939b8ab752bc79587e3d77f40d06f20f0657c98e94d
* * * * * /usr/bin/php /var/www/html/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento/var/log/magento.cron.log
#~ MAGENTO END f37deed947b2ea951ad6f939b8ab752bc79587e3d77f40d06f20f0657c98e94d
ステップ12 - PHP-FPMの設定
/etc/php-fpm.d/www.confファイルを開きます。
$ sudo nano /etc/php-fpm.d/www.conf
PHPプロセスのUnixユーザー/グループをnginxに設定する必要があります。ファイル内のuser = apacheおよびgroup = apache行を見つけて、nginxに変更します。
...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...
ファイル内のlisten.owner = nobody、listen.group = nobody、listen.mode = 0660行を見つけて、コメントを外した後、次のように変更します。
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server.
; Default Values: user and group are set as the running user
; mode is set to 0660
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
実行時間を180秒に増やします。
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php.ini
PHP-FPMのメモリ制限を128MBから512MBに増やします。サーバーのサイズや要件に応じて制限を上げることができます。
$ sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/' /etc/php.ini
Magentoはデフォルトでメディアライブラリのファイルサイズ制限を2MBに設定しています。次のコマンドを実行してファイルサイズ制限を25MBに増やします。
$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 25M/g' /etc/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php.ini
Zlib圧縮をオンにします。
$ sudo sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php.ini
realpath_cache設定を次のように増やします。
$ sudo sed -i 's/;realpath_cache_size = 4096k/realpath_cache_size = 10M/g' /etc/php.ini
$ sudo sed -i 's/;realpath_cache_ttl = 120/realpath_cache_ttl = 7200/g' /etc/php.ini
/etc/php.d/10-opcache.iniファイルを開いて編集します。
$ sudo nano /etc/php.d/10-opcache.ini
;opcache.save_comments=1行を見つけて、次のようにコメントを外します。
opcache.save_comments=1
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
PHP-FPMサービスを再起動します。
$ sudo systemctl restart php-fpm
PHPセッションディレクトリのグループをNginxに変更します。
$ sudo chgrp -R nginx /var/lib/php/session
ステップ13 - SELinuxの設定
次のコマンドを実行してMagentoディレクトリのセキュリティコンテキストを変更します。
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/app/etc(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/var(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/pub/media(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/pub/static(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/generated(/.*)?'
$ sudo restorecon -Rv '/var/www/html/magento/'
外部ホストへの接続を許可するポリシーを適用します。
$ sudo setsebool -P httpd_can_network_connect 1
NginxがPostgreSQLへのアクセスを許可するポリシーを適用します。
$ sudo setsebool -P httpd_can_network_connect_db 1
ステップ14 - Nginxの設定
/etc/nginx/nginx.confファイルを開いて編集します。
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;の前に次の行を追加します。
server_names_hash_bucket_size 64;
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
/etc/nginx/conf.d/magento.confファイルを作成して開きます。
$ sudo nano /etc/nginx/conf.d/magento.conf
次のコードを貼り付けます。
upstream fastcgi_backend {
server unix:/run/php-fpm/www.sock;
}
server {
# Redirect any http requests to https
listen 80;
listen [::]:80;
server_name magento.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name magento.example.com;
set $MAGE_ROOT /var/www/html/magento;
include /var/www/html/magento/nginx.conf.sample;
client_max_body_size 25m;
access_log /var/log/nginx/magento.access.log;
error_log /var/log/nginx/magento.error.log;
# TLS configuration
ssl_certificate /etc/letsencrypt/live/magento.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/magento.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/magento.example.com/chain.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
}
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
Magentoには、/var/www/magento/nginx.conf.sampleにNginx設定テンプレートが付属しており、私たちの設定に含めました。$MAGE_ROOT変数は、私たちがファイルに設定したMagentoウェブルートディレクトリを指し、サンプル設定ファイルで使用されます。
Nginx設定ファイルの構文を確認します。
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Nginxサービスを再起動します。
$ sudo systemctl restart nginx
URL https://magento.example.comを介してMagentoウェブサイトを開きます。次のページが表示されるはずです。

CSSとJSが読み込まれない場合は、次のコマンドを実行します。
$ cd /var/www/html/magento
$ sudo php bin/magento setup:static-content:deploy -f
$ sudo php bin/magento indexer:reindex
ステップ15 - 二要素認証の無効化
管理パネルにアクセスする前に、デフォルトで有効になっている二要素認証を無効にする必要があります。Magentoは、インストール中に二要素認証を有効にするためにsendmailを介してメールを送信しようとしますが、それを設定しなかったため、最初にこの機能を無効にする必要があります。
サーバーにsendmailが設定されている場合は、このステップをスキップできます。二要素認証を無効にするために、次のコマンドを使用してMagentoの2つのモジュールを無効にします。
$ sudo php /var/www/html/magento/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
$ sudo php /var/www/html/magento/bin/magento module:disable Magento_TwoFactorAuth
クラスを作成するために次のコマンドを実行します。
$ sudo php /var/www/html/magento/bin/magento setup:di:compile
キャッシュもクリアします。
$ sudo php /var/www/html/magento/bin/magento c:c
ステップ16 - 管理ポータルへのアクセス
Magentoインストールスクリプトが提供したURIを使用して管理ポータルを開く必要があります。もし、メモを取り忘れた場合や失った場合は、次のコマンドを使用してURIを再取得できます。
$ php /var/www/magento/bin/magento info:adminuri
Admin URI: /admin_l5pv1h
ブラウザでURL https://magento.example.com/admin_l5pv1hを開くと、次の画面が表示されます。

インストール中に提供した管理者資格情報を入力し、サインインボタンをクリックして続行します。次の画面が表示されます。

Adobeが使用データを収集するための許可を求めるポップアップが表示されます。許可しないボタンをクリックして続行します。
次のステップは、二要素認証を再有効にするためにメールのSMTPを設定することです。Stores >> Configurationメニューにアクセスします。

左側からAdvanced Menuを展開し、Systemsオプションをクリックしてメール設定ページを開きます。

Transport、Host、Portオプションの前にあるシステム値を使用のチェックを外します。トランスポートのドロップダウンメニューをクリックしてSMTPを選択します。このチュートリアルでは、Amazon SESをメール送信者として使用しています。

SMTPホスト、587をポート、ユーザー名、パスワードを入力し、AuthをLOGINに設定し、SSLをTLSに設定します。完了したら、Save Configボタンをクリックします。メール設定を構成したので、次のステップはストアのメールIDを構成してテストすることです。
同じページで、上にスクロールして一般メニューを展開し、Store Email Addressesオプションを選択します。

デフォルトの送信者メールフィールドのチェックを外し、ストアのメールIDを入力します。完了したら、Save Configボタンをクリックします。同様に、Contacts画面を開き、同じ変更を行い、Save Configボタンをクリックして完了します。

管理者オプションの変更はキャッシュに影響を与える可能性があり、警告が表示されます。次のコマンドを実行してキャッシュを手動でクリアします。
$ sudo php /var/www/html/magento/bin/magento c:c
メールをテストするには、ストアフロントページにアクセスし、Contact Usページを開きます。直接URL https://magento.example.com/contact/を使用してアクセスできます。テストメッセージを送信し、送信ボタンをクリックします。次のようなメールを受信するはずです。

ステップ17 - 二要素認証の有効化と設定
SMTPメール送信者を有効にしたので、二要素認証を再度有効にする時が来ました。次のコマンドを実行して二要素認証を有効にします。
$ sudo php /var/www/html/magento/bin/magento module:enable Magento_AdminAdobeImsTwoFactorAuth
$ sudo php /var/www/html/magento/bin/magento module:enable Magento_TwoFactorAuth
モジュールのセットアップをアップグレードします。
$ sudo php /var/www/html/magento/bin/magento setup:upgrade
次のコマンドを実行してクラスを作成します。
$ sudo php /var/www/html/magento/bin/magento setup:di:compile
キャッシュもクリアします。
$ sudo php /var/www/html/magento/bin/magento c:c
管理エリアにアクセスできない場合は、次のコマンドも実行します。
静的コンテンツを強制的にデプロイします。
$ sudo php /var/www/html/magento/bin/magento setup:static-content:Deploy -f
ファイルの権限を設定します。
$ cd /var/www/html/magento
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .
管理ポータルにアクセスすると、次の画面が表示されます。

Google Authenticatorメソッドを使用します。ハードウェアキーをお持ちの場合は、それを使用できます。Google Authenticatorメソッドは、Authy、1Password、Bitwarden、Microsoft Authenticatorなど、任意のTOTPアプリで動作します。適用ボタンをクリックして続行します。

次のページでは、2FAアプリでスキャンするQRコードが表示されます。アプリに詳細を入力し、生成されたコードをAuthenticator codeフィールドにコピーします。確認ボタンをクリックして管理ダッシュボードに進みます。
結論
これで、Rocky Linux 9サーバーにNginxサーバーとElasticsearchを使用してMagento eCommerceサイトをインストールする方法に関するチュートリアルは終了です。質問がある場合は、下のコメントに投稿してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。