帮助中心
  • 你的位置:
  • 首页
  • >
  • 帮助中心
  • >
  • 外贸建站
  • >
  • (超详细)如何在Ubuntu 22.04上用Nginx和Elasticsearch安装Magento
(超详细)如何在Ubuntu 22.04上用Nginx和Elasticsearch安装Magento



Magento是一个用PHP编写的开源电子商务平台。它在2018年被Adobe收购,被命名为Adobe eCommerce。它也作为一个商业和基于云的产品提供。你可以使用Magento创建高容量的专业购物网站。它同时提供--单店和多店模式。它配备了很多模块来扩展其功能。

前提条件

  • 一台运行Ubuntu 22.04的服务器,至少有2GB的内存。根据你的要求,你可能需要更多的内存。
  • 一个具有sudo权限的非root用户。
  • 一个完全合格的服务器域名(FQDN),magento.example.com。
  • 确保一切都已更新。
$ sudo apt update
$ sudo apt upgrade

一些你的系统需要的软件包。

$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y

这些软件包中的一些可能已经安装在你的系统上。

第1步 - 配置防火墙


第一步是配置防火墙。Ubuntu默认带有ufw(Uncomplicated Firewall)。

检查防火墙是否正在运行。

$ sudo ufw status

你应该得到以下输出:

Status: inactive

允许SSH端口,这样防火墙就不会在启用它时破坏当前的连接:

$ sudo ufw allow OpenSSH

也允许HTTP和HTTPS端口:

$ sudo ufw allow http
$ sudo ufw allow https

启用防火墙

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

再次检查防火墙的状态。

$ sudo ufw status

你应该看到一个类似的输出:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)


第2步 - 安装PHP和它的扩展


Ubuntu 22.04搭载的是PHP 8.1.2版本,有点过时了。我们将使用Ondrej的PHP资源库安装最新的PHP 8.2版本。

$ sudo add-apt-repository ppa:ondrej/php

接下来,安装Magento所需的PHP和它的扩展:

$ sudo apt install php8.2-fpm php8.2-mysql php8.2-bcmath php8.2-xml php8.2-zip php8.2-curl php8.2-mbstring php8.2-gd php8.2-tidy php8.2-intl php8.2-cli php8.2-soap php8.2-xsl libsodium-dev libsodium23 libssl-dev libcurl14-openssl-dev

验证安装:

$ php --version
PHP 8.2.5 (cli) (built: Apr 14 2023 04:27:02) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.5, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.5, 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');"

安装Composer,把二进制文件移到/usr/local/bin目录。

$ sudo mv composer.phar /usr/local/bin/composer

通过检查其版本来验证安装。

$ composer --version
Composer version 2.2.21 2023-02-15 13:07:40


第4步 - 安装MySQL


Ubuntu 22.04配备了最新版本的MySQL。你可以用一个命令来安装它。

$ sudo apt install mysql-server

检查MySQL的版本。

$ mysql --version
mysql  Ver 8.0.33-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))

这一步对于8.0.28及以上版本的MySQL是必要的。进入MySQL外壳。

$ sudo mysql

运行以下命令,为你的根用户设置密码。确保它有数字、大写、小写和特殊字符的混合。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';

退出外壳。

mysql> exit

运行MySQL安全安装脚本。

$ sudo mysql_secure_installation

首先,你将被要求提供你的根密码。输入它。接下来,你将被要求安装验证密码组件。它检查MySQL中使用的密码的强度。按Y来安装它。接下来,你将被要求设置密码验证策略的级别。选择2,因为它是最强的一个。

Securing the MySQL server deployment.

Enter password for user root:

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Using existing password for root.

Estimated strength of the password: 100

接下来,输入N以拒绝更改你的根密码。另外,输入Y可以删除匿名用户,不允许远程root登录,删除测试数据库,并重新加载权限表。

更改root密码 ? ((按y|Y为是,按任何其他键为否) : N

Change the password for root ? ((Press y|Y for Yes, any other key for No) : N

 ... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL 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? (Press y|Y for Yes, any other key for No) : 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? (Press y|Y for Yes, any other key for No) : Y
Success.

By default, MySQL 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? (Press y|Y for Yes, any other key for No) : 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? (Press y|Y for Yes, any other key for No) : Y
Success.

All done!


第5步 - 配置MySQL


登录到MySQL外壳。在提示时输入你的根密码。

$ sudo mysql -u root -p

为Magento创建一个数据库。

mysql> CREATE DATABASE magento;

创建一个SQL用户账户。

mysql> CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';

给予该用户在数据库上的所有权限。

mysql> GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';

冲洗用户的权限。

mysql> FLUSH PRIVILEGES;

退出外壳。

mysql> exit


第6步 - 安装Nginx


Ubuntu 22.04搭载了一个旧版本的Nginx。要安装最新的版本,你需要下载官方的Nginx资源库。

导入Nginx的签名密钥。

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

添加Nginx稳定版的存储库。

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

更新系统软件库。

$ sudo apt update

安装Nginx。

$ sudo apt install nginx

验证安装。

$ nginx -v
nginx version: nginx/1.24.0

启动Nginx服务器。

$ sudo systemctl start nginx


第7步 - 安装SSL


我们需要安装Certbot来生成SSL证书。你可以使用Ubuntu的资源库安装Certbot,或者使用Snapd工具抓取最新版本。我们将使用Snapd版本。

Ubuntu 22.04默认安装了Snapd。运行以下命令以确保你的Snapd版本是最新的。

$ sudo snap install core && sudo snap refresh core

安装Certbot。

$ sudo snap install --classic certbot

使用下面的命令,通过在/usr/bin目录下创建符号链接,确保Certbot命令可以被运行。

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

运行下面的命令来生成一个SSL证书。

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m name@example.com -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是计划运行的服务之一。

NEXT                        LEFT          LAST                        PASSED        UNIT                      ACTIVATES
.....
Sun 2023-02-26 06:32:00 UTC 9h left       Sat 2023-02-25 18:04:05 UTC 2h 59min ago  snap.certbot.renew.timer  snap.certbot.renew.service
Sun 2023-02-26 06:43:20 UTC 9h left       Sat 2023-02-25 10:49:23 UTC 10h ago       apt-daily-upgrade.timer   apt-daily-upgrade.service
Sun 2023-02-26 09:00:06 UTC 11h left      Sat 2023-02-25 20:58:06 UTC 5min ago      apt-daily.timer           apt-daily.service

对该进程进行模拟运行,以检查SSL更新是否工作正常。

$ sudo certbot renew --dry-run

如果你没有看到任何错误,你就一切就绪了。你的证书将自动更新。

第8步 - 安装Elasticsearch


Elasticsearch被Magento用来进行产品搜索。我们将使用其官方仓库安装Elasticsearch 7.x,因为它是与Magento兼容的版本。

导入Elasticsearch的GPG密钥。

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

添加Elasticsearch资源库。

$ echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

更新系统的资源库列表。

$ sudo apt update

安装Elasticsearch。

$ sudo apt install elasticsearch

Elasticsearch使用大量的内存。你需要根据你的服务器大小来限制它的使用。创建文件/etc/elasticsearch/jvm.options.d/memory.options文件并打开编辑。

$ sudo nano /etc/elasticsearch/jvm.options.d/memory.options

在其中粘贴以下代码。

-Xms1g
-Xmx1g

按Ctrl + X保存该文件,并在提示时输入Y。这就将Elasticsearch配置为使用1GB的RAM。你可以根据需要使用任何数值。

启动并启用该服务。

$ sudo systemctl enable elasticsearch --now

检查Elasticsearch是否在工作。

$ curl http://localhost:9200

你应该看到以下输出。

{
  "name" : "magento",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "6yks8tZ6T4GskIwWoXuSLA",
  "version" : {
    "number" : "7.17.10",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "fecd68e3150eda0c307ab9a9d7557f5d5fd71349",
    "build_date" : "2023-04-23T05:33:18.138275597Z",
    "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。Ubuntu搭载了Redis 6.0,所以我们将使用Redis仓库进行安装。

导入官方的Redis GPG密钥。

$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

将APT仓库添加到你的源列表中。

$ 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

更新系统版本库列表。

$ sudo apt update

发布以下命令来安装Redis服务器。

$ sudo apt install redis

确认Redis的版本。

$ redis-server -v
Redis server v=7.0.11 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=3af367a78d5e21e9

让我们通过使用以下命令来验证服务连接。

$ 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
127.0.0.1:6379> ping
PONG

通过键入exit退出服务。

步骤10 - 下载Magento


为Magento创建一个网络根目录。

$ sudo mkdir /var/www/magento -p

把Magento目录的权限给当前用户。

$ sudo chown $USER:$USER /var/www/magento/ -R

切换到/var/www目录。

$ cd /var/www

在我们进一步行动之前,你需要认证Magento存储库所需的密钥。访问网站https://account.magento.com/,你会得到以下页面,要求你使用你的Adobe ID登录。



点击用Adobe ID登录按钮,进入以下页面。



如果你有一个Adobe ID,请输入你的凭证继续,或者你可以在这里创建一个账户。一旦你创建了你的账户并登录,打开URL https://marketplace.magento.com/customer/accessKeys/。你也可以通过访问你的个人资料并点击访问钥匙链接来访问这个页面。



点击Create A New Access Key按钮来创建你的认证密钥。给你的钥匙起个名字,以便识别。



记下公钥和私钥,以便下一步的工作。

创建Magento项目。

$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento

你会被要求提供版本库的用户名和密码。用公钥作为你的用户名,用私钥作为你的密码。你会被问到是否要在Composer配置目录中存储凭证。输入y就可以了。

Creating a "magento/project-community-edition" project at "./magento"
    Authentication required (repo.magento.com):
      Username: 53211xxxxxxxxxxxxxxxxxxxxxxxxxxx
      Password:
Do you want to store credentials for repo.magento.com in /home/navjot/.config/composer/auth.json ? [Yn] y
Installing magento/project-community-edition (2.4.6)
  - Downloading magento/project-community-edition (2.4.6)
  - Installing magento/project-community-edition (2.4.6): Extracting archive
Created project in /var/www/magento
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 564 installs, 0 updates, 0 removals
  - Locking 2tvenom/cborencode (1.0.2)
  - Locking adobe-commerce/adobe-ims-metapackage (2.2.0)
...............................................

运行以下命令来设置文件权限并使Magento二进制文件可执行。同时,将Magento目录的所有者设置为Nginx用户,以便其能够访问网站。

$ cd /var/www/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 .
$ sudo chmod u+x bin/magento


第11步 - 安装Magento


确保你在Magento目录中。

$ cd /var/www/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=localhost \
--db-name=magento \
--db-user=magentouser \
--db-password=Your_password2 \
--admin-firstname=Navjot \
--admin-lastname=Singh \
--admin-email=navjot@example.com \
--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_19uadb
Nothing to import.

记下管理员URI,你以后会需要它来访问管理面板。

创建Magento cron作业。

$ php bin/magento cron:install

验证cron作业。

$ crontab -l

你应该看到以下输出。

#~ MAGENTO START d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c
* * * * * /usr/bin/php8.2 /var/www/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/magento/var/log/magento.cron.log
#~ MAGENTO END d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c


第12步 - 配置PHP-FPM


打开文件/etc/php/8.2/fpm/pool.d/www.conf。

$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf

我们需要将PHP进程的Unix用户/组设置为nginx。找到文件中的user=www-data和group=www-data两行,将其改为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 = www-data和listen.group = www-data这两行,将其改为nginx。

; 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. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
;                 mode is set to 0660
listen.owner = nginx
listen.group = nginx

按Ctrl + X保存文件,并在提示时输入Y。

将PHP-FPM和PHP-CLI的执行时间增加到180秒。

$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/cli/php.ini

将 PHP-FPM 的内存限制从 128MB 提高到 256MB。你可以根据你的服务器大小和要求来提高这个限制。

$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini

Magento默认将媒体库的文件大小限制设置为2MB。运行以下命令,将文件大小限制增加到25MB。

$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 25M/g' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php/8.2/fpm/php.ini

开启Zlib压缩功能。

$ sudo sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php/8.2/fpm/php.ini

重新启动 PHP-FPM 服务。

$ sudo systemctl restart php8.2-fpm

将PHP会话目录的组别改为Nginx。

$ sudo chgrp -R nginx /var/lib/php/sessions


第13步 - 配置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/php8.2-fpm.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/magento;
  include /var/www/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自带的Nginx配置模板在/var/www/magento/nginx.conf.sample,我们已经将其包含在我们的配置中。$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/magento
$ php bin/magento setup:static-content:deploy -f
$ php bin/magento indexer:reindex


第14步 - 禁用双因素认证


在访问管理面板之前,我们需要禁用默认启用的双因素认证。在安装过程中,Magento试图通过sendmail发送邮件来启用双因素认证,但由于我们没有配置,所以访问仪表盘的唯一方法就是先禁用该功能。

如果你的服务器上已经配置了sendmail来发送邮件,那么你可以跳过这一步。为了禁用双因素认证,我们需要使用以下命令禁用Magento的两个模块。

$ php /var/www/magento/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:disable Magento_TwoFactorAuth

运行下面的命令来创建这些类。

$ php /var/www/magento/bin/magento setup:di:compile

同时清理缓存。

$ php /var/www/magento/bin/magento c:c


第15步 - 访问管理门户


你将需要使用Magento安装脚本给你的URI来打开管理门户。如果你忘了记下它或者丢失了它,你可以使用下面的命令再次检索URI。

$ php /var/www/magento/bin/magento info:adminuri
Admin URI: /admin_19uadb

在你的浏览器中打开URL https://magento.example.com/admin_19uadb,你将得到以下画面。



输入你在安装过程中提供的管理员凭证,并点击登录按钮继续。你将会看到以下屏幕。



你会收到一个弹出窗口,要求允许Adobe收集使用数据。点击 "不允许 "按钮继续。

下一步是为电子邮件配置SMTP,以便我们可以重新启用双因素认证。访问商店>>配置菜单。



从左侧展开高级菜单,点击系统选项,打开电子邮件设置页面。



取消勾选在传输、主机和端口选项前面的使用系统值。点击传输的下拉菜单,从中选择SMTP。在我们的教程中,我们将使用Amazon SES作为邮件发送器。



输入你的SMTP主机,587作为端口,用户名和密码,将Auth设置为LOGIN,将SSL设置为TLS。完成后点击保存配置按钮。现在我们已经配置了电子邮件设置,下一步是配置商店的电子邮件ID,以便我们可以测试它们。

向上滚动并展开同一页上的General菜单,选择Store Email Addresses选项。



取消对默认发送者电子邮件字段的勾选,并输入你的商店的电子邮件ID。完成后点击 "保存配置 "按钮。同样地,打开 "联系人 "页面,做同样的修改,并点击 "保存配置 "按钮来完成它。



改变管理员选项会影响到缓存,你会收到一个警告。运行以下命令来手动清除缓存。

$ php /var/www/magento/bin/magento c:c

要测试电子邮件,请访问店面页面并打开 "联系我们 "页面。你可以直接使用URL https://magento.example.com/contact/ 来访问它。发送一个测试邮件并点击提交按钮。你应该收到一个类似的邮件。




第16步 - 启用和配置双因素认证


现在我们已经启用了SMTP邮件程序,现在是时候重新启用双因素认证了。运行下面的命令来启用双因素认证。

$ php /var/www/magento/bin/magento module:enable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:enable Magento_TwoFactorAuth

升级模块的设置。

$ php /var/www/magento/bin/magento setup:upgrade

运行下面的命令来创建类。

$ php /var/www/magento/bin/magento setup:di:compile

同时清理缓存。

$ php /var/www/magento/bin/magento c:c

如果你不能访问管理区,也可以运行以下命令。

强制部署静态内容。

$ php /var/www/magento/bin/magento setup:static-content:Deploy -f

设置文件权限。

$ cd /var/www/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 .

访问管理门户,你将得到以下屏幕。



我们将使用谷歌认证器方法。如果你有一个硬件密钥,你可以使用它。谷歌认证器方法适用于任何TOTP应用程序,包括Authy、1Password、Bitwarden、Microsoft Authenticator等。点击 "应用 "按钮继续。



在下一页,你会得到一个QR码,用你的2FA应用程序扫描。在你的应用程序中输入详细信息,并将生成的代码复制到Authenticator代码栏中。点击 "确认 "按钮,进入管理面板。

总结


我们在Ubuntu 22.04服务器上安装Magento电子商务网站的教程到此结束,该服务器带有Nginx服务器和Elasticsearch。

文章相关标签: Magento Nginx
购物车