このガイドでは、仮想サーバーにMagentoアプリケーションをインストールします。同じ作業を毎回行わないように、VPSサーバーとしてDebian 12のWebスタックの構成を使用します。この構成は、PHPとmariadbを必要とするWebアプリケーションを迅速に展開するために特別に作成されています。公式ウェブサイトから最新バージョンをダウンロードし、ブラウザを通じてインストールします。必要なすべてのサービスは既にインストールされ、設定されています。また、あらかじめMagentoがインストールされたVPSサーバーを注文することもできます。管理用にログイン名とパスワードを変更するだけです。 |
1. サーバーを準備しましょう |
|
1.1 必要なPHPモジュールをインストールします
apt 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-xsl libsodium-dev libsodium23 libssl-dev libcurl4-openssl-dev
1.2 データベースとユーザーを作成しましょう
mariadb -u root
CREATE DATABASE magento;
CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';
GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'localhost' IDENTIFIED BY 'Yourpassword32!' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
1.3 Composerをインストールします
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --2.2
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer
1.4 ElasticSearchをダウンロードしてインストールします
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.3-amd64.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.3-amd64.deb.sha512
shasum -a 512 -c elasticsearch-8.11.3-amd64.deb.sha512
dpkg -i elasticsearch-8.11.3-amd64.deb
1.4.1 設定ファイルを追加します
nano /etc/elasticsearch/jvm.options.d/memory.options
-Xms512m
-Xmx784m
1.4.2 オプションを変更しましょう
nano /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: false
1.4.3 サービスを開始しましょう
nano /etc/elasticsearch/elasticsearch.yml
systemctl enable elasticsearch --now
systemctl start elasticsearch.service
1.5 Redisをインストールして設定します
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
apt update
apt install redis
1.5.1 Redisサービスにパスワードを設定しましょう
redis-cli
acl setuser default >Your_Redis_Password
> OK
AUTH Your_Redis_Password
> OK
1.6 Magentoのインストール準備をしましょう
1.6.1 キーを取得するためにサイトに登録します
https://account.magento.com/
https://commercemarketplace.adobe.com/customer/accessKeys/
次の内容でファイルを作成しましょう
nano ~/.config/composer/auth.json
{
"http-basic": {
"repo.magento.com": {
"username": "public_key",
"password": "private_key"
}
}
}
1.6.2 ディレクトリを作成しましょう
mkdir /var/www/domain.tld -p
1.6.3 それに進んでインストールを開始しましょう
cd /var/www/domain.tld
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition
完了すると、管理パネルのアドレスを含むメッセージが表示されます。それは後で必要になります。
[SUCCESS]: Magento 管理者 URI: /admin_1tbbc0
1.6.4 すべてのフォルダとファイルを domain.tld フォルダのルートに移動します
cd /var/www/domain.tld/project-community-edition
mv /var/www/domain.tld/project-community-edition/* /var/www/domain.tld/
mv /var/www/domain.tld/project-community-edition/.* /var/www/domain.tld/
1.6.5 nginx ファイル内のディレクティブを変更しましょう
sed -i 's/php-fpm:9000/fastcgi_backend/g' /var/www/magento/nginx.conf.sample
1.6.6 設定ファイルの行を置き換えましょう
nano /var/www/magento/app/etc/di.xml
デフォルト
^10\.[2-6]\.
置換
^10\.([2-9]|10|11)\.
1.6.7 Magento をインストールしましょう
cd /var/www/domain.tld
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=localhost --db-name=magento --db-user=magentouser --db-password=Your_password2 --admin-firstname=myuser --admin-lastname=Lastname --admin-email=myuser@example.com --admin-user=myuser --admin-password=admin_password0 --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=Your_Redis_Password --cache-backend=redis --cache-backend-redis-db=2 --cache-backend-redis-password=Your_Redis_Password --page-cache=redis --page-cache-redis-db=4 --page-cache-redis-password=Your_Redis_Password
インストールが完了するとメッセージが表示されます
.......
[SUCCESS]: Magento インストール完了。
[SUCCESS]: Magento 管理者 URI: /admin_1tbbc0
インポートするものはありません。
1.6.8 cron を設定しましょう
php bin/magento cron:install
1.6.9 権限を割り当てましょう
chown -R www-data:www-data /var/www/domain.tld
1.7 php8.2-fpm の設定を変更しましょう
sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/cli/php.ini
sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 25M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php/8.2/fpm/php.ini
systemctl restart php8.2-fpm
1.8 nginx のメイン設定ファイルを見てみましょう:
nano /etc/nginx/conf.d/default.conf
upstream fastcgi_backend {
server unix:/run/php/php8.2-fpm.sock;
}
server {
# すべての http リクエストを 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/domain.tld;
include /var/www/domain.tld/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 設定
ssl_certificate /etc/ssl/domain_fullchain.pem;
ssl_certificate_key /etc/ssl/domain_privkey.pem;
ssl_trusted_certificate /etc/ssl/domain_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 ステイプリング ---
# ssl_certificate から URL を取得して OCSP レコードをキャッシュ
ssl_stapling on;
ssl_stapling_verify on;
# ssl_dhparam /etc/ssl/certs/dhparam.pem;
}
サービスを再起動しましょう:
systemctl restart nginx
完了しました。今すぐ https://magento.example.com にアクセスしてアプリケーションをテストできます。
管理セクションへのリンクを確認するには、次のコマンドを使用します
php /var/www/magento/bin/magento info:adminuri
インストールが完了しました。以下に、アプリケーションコマンドを使用した一般的な問題の解決策を示します。
デフォルトでは、管理セクションに対してメールによる二要素認証が有効になっています。これを無効にするには、次のコマンドを使用してください:
php /var/www/domain.tld/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
php /var/www/domain.tld/bin/magento module:disable Magento_TwoFactorAuth
php /var/www/domain.tld/bin/magento setup:di:compile
php /var/www/domain.tld/bin/magento c:c
設定されているドメインを確認するには、次のコマンドを使用します
bin/magento config:show web/secure/base_url
ドメインを変更するには
php bin/magento setup:store-config:set --base-url="http://new-domain.tld/"
または https の場合
php bin/magento setup:store-config:set --base-url-secure="https://new-domain.tld/"
スタイルが正しく表示されない場合は、次のコマンドを使用してください:
cd /var/www/domain.tld
$ php bin/magento setup:static-content:deploy -f
$ php bin/magento indexer:reindex