如何在 Ubuntu 20.04 LTS 上安装 Magento 2

关于如何在 Ubuntu 20.04 服务器上设置和部署 Magento2 商店的综合指南。

Magento 是一个流行的电子商务平台,用 PHP 构建和编写,许多小型企业使用它来销售产品和创建在线形象。它允许您创建一个功能齐全的在线商店,具有库存管理、产品目录、运输、发票等功能。

如果您希望为您的企业构建一个时尚的企业级购物平台,Magento 应该是一个很好的起点。因此,在本指南中,我们将了解如何在 Ubuntu 20.04 服务器上使用 LAMP 堆栈设置 Magento 社区版 2.3 版。

先决条件

您将需要一个 Ubuntu 20.04 LTS 服务器并以 须藤 启用的用户。您还需要一个指向您的 Ubuntu 20.04 服务器 IP 的域名。我们将使用 例子.com 在需要域名的地方,将其替换为您的域。在我们开始之前,更新软件包列表,然后升级您的 Ubuntu 20.04 服务器上的软件包。

须藤 apt 更新 && 须藤 apt 升级

安装 Apache 网络服务器

Magento 需要 Web 服务器才能运行,在本指南中,我们选择使用在 LAMP(Linux、Apache、MySQL、PHP)堆栈上运行 Magento 应用程序。因此,我们将安装由 LAMP 堆栈组成的所有软件包。

Apache Web 服务器是 Internet 上最受欢迎的 Web 服务器之一,占 Web 服务器总市场份额的近 37.2%。您也可以选择在使用 Nginx Web 服务器而不是 apache 的 LEMP 堆栈上安装 Magento。但是在本指南中,我们将在 Apache 的帮助下部署我们的 Megento 服务器。

要安装 Apache Web 服务器,请运行以下命令:

sudo apt 安装 apache2

输入您的用户密码并按 如果提示。安装完成后,我们需要配置Ubuntu的简单防火墙(UFW)来允许端口上的流量 80 & 443.

UFW 带有预配置的配置文件,可以切换这些配置文件以允许应用程序访问 Ubuntu 20.04 服务器上的端口。因此,当您安装 Apache Web 服务器时,称为“Apache”、“Apache Full”和“Apache Secure”的 UFW 配置文件被添加到 UFW 应用程序列表中。允许 Apache Web 服务器在端口上提供服务 80 & 443 通过运行:

sudo ufw 允许 'Apache Full'

现在,我们需要做的就是启用 UFW,但在我们这样做之前,请确保您已允许该端口 22 (SSH)。如果您不更改 SSH UFW 规则,您可能会被锁定在 Ubuntu 20.04 服务器之外。

sudo ufw 允许'OpenSSH'

最后,通过运行以下命令启用 UFW 防火墙:

须藤 ufw 启用

如果您收到提示说该命令可能会中断 SSH 连接,因为我们已经添加了允许 SSH 通过它的规则。您现在可以通过浏览器访问 apache 网络服务器,在 URL 栏中输入 Ubuntu 20.04 服务器的 IP 地址,然后按 Enter。

apache2 ubuntu 默认页面

安装 MySQL 服务器

您还需要一个数据库服务器来运行 Magento,因为它是存储所有 Magento 商店内容的地方。我们将安装 MySQL 服务器并创建一个名为的用户 用户 和一个名为的数据库 马恩托 对于 Magento。

MySQL包被称为 mysql服务器 在 Ubuntu 存储库中,通过运行安装它:

sudo apt 安装 mysql 服务器

接下来,我们需要正确配置 MySQL 安全设置。幸运的是,MySQL 包附带了一个安全脚本,可以更轻松地配置 MySQL 服务器。因此,通过运行以下命令来执行此脚本:

须藤mysql_secure_installation

系统会提示您多个问题,这些是 MySQL 服务器的最佳设置:

  • 您想设置验证密码组件吗?[y/n]:输入
  • 密码验证策略分为三个级别。
    • 请输入 0 = 低,1 = 中,2 = 强:输入 2
  • 请在此处设置 root 的密码。
    • 新密码:输入 MySQL root 用户的密码。
    • 重新输入新密码:重复您选择的密码。
  • 删除匿名用户? [y/n]:输入
  • 禁止远程root登录? [y/n] : 输入
  • 删除测试数据库并访问它? [y/n] : 输入
  • 现在重新加载权限表? [y/n] : 输入

然后验证 MySQL 服务器是否已安装并正常工作,请以 root 用户身份登录 MySQL 服务器:

须藤mysql

输入您的 须藤 当系统提示您输入用户密码并按 Enter 键时。 MySQL root 用户使用 unix_socket 验证登录。这基本上意味着你需要成为一个 须藤 user 以 root 用户身份登录 MySQL 服务器。

为 Magento 创建一个新的数据库和用户

我们现在可以为 Magento 创建一个 MySQL 用户,如果您已按照本指南的每个步骤进行操作,则必须打开 MySQL 控制台。创建一个名为的数据库 马恩托 通过在 MySQL 控制台中输入以下查询:

创建数据库 magento;

创建一个名为的新 MySQL 用户 用户, 在控制台中运行此查询:

CREATE USER 'magentouser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

笔记: 更换 密码 在查询中使用您选择的强密码。

然后授予新的 用户 完全访问 马恩托 数据库:

GRANT ALL ON magento.* TO 'magentouser'@'%' WITH GRANT OPTION;

我们需要设置 log_bin_trust_function_creators 参数为 1,因为它在最新版本的 MySQL 中被禁用并且没有启用它 Magento 在安装时会抛出一些错误。为此,请运行以下查询:

设置全局 log_bin_trust_function_creators=1;

最后,使用以下查询重新加载我们更改的数据库权限和设置并退出控制台:

同花顺特权;出口;

安装 PHP 和所需的扩展

Magento 需要 PHP 和很少的 PHP 扩展才能运行。在撰写本文时,Magento 社区版版本 2.3 不适用于最新的 PHP 版本 7.4 因此我们需要安装PHP版本 7.3.

我们需要添加第三方 PHP PPA 以便我们可以安装 PHP 版本 7.3 因为 Ubuntu 存储库只有最新的 7.4 包。通过运行以下命令添加 PPA 并更新包列表:

sudo add-apt-repository ppa:ondrej/php && sudo apt update

然后通过运行以下命令安装 PHP 7.3 和 Magento 所需的所有 PHP 模块:

sudo apt install php7.3 php7.3-common php7.3-mysql php7.3-fpm php7.3-gmp php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc php7.3- gd php7.3-xml php7.3-cli php7.3-zip php7.3-bcmath php7.3-soap libapache2-mod-php7.3

PHP 7.3安装后,我们需要配置一些Magento推荐的基本设置才能正常运行。运行此命令以使用 nano 打开 FPM 扩展的配置文件

须藤纳米 /etc/php/7.3/fpm/php.ini

以下是为大多数 Magento 网站推荐的一些设置。

file_uploads = On allow_url_fopen = On short_open_tag = On memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360

按保存更改 Ctrl+O 然后按退出nano编辑器 Ctrl+X.我们现在拥有 PHP 和所有必要的扩展,因此我们可以继续获取 Magento。

安装作曲家

Composer 是一个 PHP 依赖管理器,可以让安装 PHP 框架和库变得更容易。我们需要 Composer 在我们的 Ubuntu 20.04 服务器上下载并安装 Magento。

Composer 需要一个名为 解压 要提取下载的库和框架,请运行以下命令进行安装:

sudo apt 安装解压

然后通过运行以下命令在系统级别上安装 composer:

curl -sS //getcomposer.org/installer |须藤 php -- --install-dir=/usr/local/bin --filename=composer

上面的命令应该在 Ubuntu 20.04 服务器上安装 Composer 依赖管理器。通过运行以下命令验证 Composer 是否已正确安装:

作曲家
 输出:  ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / /_ // /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.10.8 2020-06- 24 21:23:30 用法:命令 [选项] [参数] 

下载并安装 Magento

我们现在可以继续下载和安装 Magento,因为我们已经安装和配置了 Magento 所需的所有必要包。

创建 Magento 帐户

要在您的 Ubuntu 20.04 服务器上下载 Magento,您需要一个 Magento 2 访问密钥。要获得此访问密钥,您需要一个 Magento 帐户。如果您尚未注册且没有 Magento 帐户,请转到此页面并单击“注册”。

创建完 Magento 帐户后,您将能够创建一个新的访问密钥,以便您可以使用 composer 在您的机器上下载 Magento 2。您可以在此页面上查看所有 Magento 访问密钥。如果 Magento 2 选项卡下没有访问密钥,请单击“创建新访问密钥”按钮并为其命名,然后按“确定”。

这些密钥是您通过 Composer 从 Magento 存储库下载 Magento 2 的凭据。我们将在下载 Magento 时使用这些密钥,但在此之前我们将设置目录所有权和权限。

预安装所有权和权限配置

文件权限可以决定任何网站的安全性,因此需要正确设置Apache服务器文档根目录的所有权和权限。

的默认所有者 /var/www/ directory是root用户,但是我们需要访问和修改这个目录下的文件。此外,网络服务器还需要访问文档根目录以写回和修改 Magento 站点的内容。

所以为了解决这个问题,我们要将当前用户添加到 万维网数据 组,为此运行:

sudo usermod -a -G www-data $USER

-一个-G 选项很重要,因为它们添加 万维网数据 作为用户帐户的次要组,保留用户的主要组。将用户添加到 webserver 组后,更改所有者 /var/www/ 及其使用此命令的子目录:

须藤 chown -R $USER:www-data /var/www/

现在我们已经为 Magento 设置了预安装权限,我们可以继续在网络服务器文档根目录中下载它。

下载 Magento

现在,您应该拥有一个 Magento 帐户,并正确设置了访问密钥和预安装权限。所以我们将使用 Composer 将 Magento 下载到 Apache 文档根目录,然后安装它。

将当前目录更改为 /var/www/ 所以终端通过运行指向它:

cd /var/www/

运行下面的命令以使用 Composer 创建一个新项目,称为 马恩托.

composer create-project --repository=//repo.magento.com/magento/project-community-edition magento

使用上述命令后,系统将提示您输入用户名和密码。我们创建的访问密钥将在此处使用。复制公钥并将其粘贴为用户名,然后类似地复制您的私钥并将其作为密码粘贴到终端中。然后按 保存凭据以备将来使用。

 输出:  在“./magento”处创建“magento/project-community-edition”项目 来自 repo.magento.com 的警告:您尚未提供 Magento 身份验证密钥。有关说明,请访问 //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html 需要身份验证 (repo.magento.com): 用户名:e8b6120dce14c3d982a85525264897c4 密码:是否要存储凭据对于 /home/ath/.config/composer/auth.json 中的 repo.magento.com ? [恩] 

通过 Composer 下载 Magento 及其所有依赖项后,我们还需要为新的 magento 项目目录及其文件设置所有权和权限。通过以下方式将目录更改为 Magento 项目根目录:

cd /var/www/magento/

然后通过运行以下命令更改 Magento 项目目录及其子目录的组所有者:

find var生成的vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + && find var生成的vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + && chmod u+x bin/magento && sudo chown -R :www-data 。 

此命令将提供网络服务器组 (万维网数据) 写入供应商、pub/static、pub/media 和 app/etc 目录和其中文件的权限。此外,它将使 bin/magento 文件可执行,所以我们可以运行它并在我们的系统上安装 Magento。

为 Magento 配置 Apache

我们将通过 GUI 安装 Magento,因为在这种情况下它比 CLI 安装更直观。因此,在继续安装 Magento 之前,我们需要为 Apache 网络服务器创建一个虚拟主机。

使用以下命令使用 nano 打开 Apache 的默认虚拟主机文件:

须藤纳米 /etc/apache2/sites-available/000-default.conf

将文档根目录更改为 /var/www/magento 并在其下方添加以下代码片段。

 AllowOverride All ServerName example.com ServerAlias www.example.com

更换 例子.com 在 ServerName 和 ServerAlias 中使用您的域名。你的变化 000-default.conf 文件应该类似于下面显示的突出显示的文本。按保存更改 Ctrl+O 并使用退出编辑器 Ctrl+X 键。

 ServerAdmin webmaster@localhost DocumentRoot /var/www/magento AllowOverride All ServerName example.com ServerAlias www.example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log 组合 

接下来,我们需要启用一个名为 as 的 Apache mod mod_rewrite Magento 需要。它提供了一种灵活而强大的方式来操作 URL,因此通过运行以下命令启用 mod:

须藤 a2enmod 重写

重新启动 Apache 服务器,以便我们所做的任何更改都应用于服务器:

须藤 systemctl 重启 apache2

安装 Magento

我们终于可以继续安装 Magento,因为我们拥有 Magento 运行所需的一切。在首选浏览器的 URL 栏中输入 Ubuntu 20.04 服务器的 IP 地址。

单击“同意并设置 Magento”以继续安装 Magento。 Magento Web 安装程序的第一步是就绪检查,它将验证是否满足所有 Magento 要求。单击“开始准备检查”,完成该过程后,按“下一步”。

下一步是设置详细信息并为 Magento 添加数据库。我们已经为 Magento 创建了一个名为的 MySQL 用户 用户 和一个名为的数据库 马恩托 在上一节中。在此部分填写适当的详细信息,即数据库服务器用户名、密码和数据库名称,然后按“下一步”继续。

Magento 设置的第三步是网络配置。如果您有域名,请将“商店地址”输入中的 IP 地址替换为您的域名。不要忘记加一个正斜杠 (/) 在您的域名之后,否则管理员地址 URL 将无法访问。

如果您想为您的 Magento 站点使用安全连接,然后单击高级选项并勾选两个 HTTPS 选项。保持其余设置不变,然后按下一步。

笔记: 如果您勾选 HTTPS 选项,您将需要为其获取 SSL 证书。我们将在本教程的下一部分中了解如何获取 SSL 证书。

在“自定义您的商店”设置下, 您只需要根据需要更改时区、商店中使用的默认货币和商店的默认语言。如果需要,请查看这些设置进行配置,否则单击下一步继续。

在第五步中,您需要为 Magento 管理仪表板创建管理员帐户。为您的管理员输入一个新用户名,并输入您的域名提供商提供的电子邮件地址。为管理员帐户创建一个强密码,然后在完成后点击下一步。

最后一步也是最后一步,只需单击“安装”按钮即可确认设置并开始安装过程。安装完成后,Magento 安装程序将显示有关 Magento 站点的摘要和一些重要详细信息。

在安全的地方(例如离线纸质记录或安全数据库)记下这些详细信息。 Magento 管理员地址和加密密钥不应公开共享。加密密钥用于加密 Magento 数据库,以便用户数据安全,即使存在数据泄漏。

为您的 Magento 站点创建 SSL 证书

Magento站点已部署,安装完成即可访问。但是,如果您想通过 HTTPS 提供网络流量,则需要为您的域设置 SSL 证书。

Letsencrypt 是一个非营利性的证书颁发机构,它免费提供 TLS 证书。我们将使用一个名为的包 证书机器人 这有助于自动获取证书和配置 Apache 虚拟主机。在终端中运行此命令以安装 certbot:

须藤 apt 安装 certbot python3-certbot-apache

要从 Letsencrypt 获取证书并配置 Apache 虚拟主机,请运行以下命令:

须藤 certbot --apache

Certbot 将开始从 Letsencrypt 获取证书的过程,在出现提示时提供您的电子邮件地址,然后按回车键。接下来,键入 一个 同意 Letsencrypt 服务条款。系统会询问您是否要与 EFF 共享您的电子邮件地址,输入 或者 N 取决于您的选择。

接下来,您将获得要为其激活 HTTPS 的域名列表。输入与您的域名对应的适当数字,然后按 Enter。

选择域名后,系统会询问您是否要将 HTTP 流量重定向到 HTTPS,键入 2 并按回车键。 Certbot 现在会自动为域配置 Apache 虚拟主机 例子.com.

Certbot 包带有 cronjob,它会在服务器证书过期之前自动更新。通过运行测试自动续订是否正常工作:

须藤 certbot 更新 --dry-run

上面的输出意味着自动更新的 cronjob 工作正常。要确认 Certbot 工作正常,请打开您的浏览器并访问您的域 //example.com.

同样,您可以使用 //example.com/admin_SecretString,此 URL 位于 Magento 安装的末尾。

您现在已经在 Ubuntu 20.04 LTS 服务器上成功安装了 Magento,现在您可以开始根据您的需要自定义您的商店。要了解有关 Magento 的更多信息并了解商店开发,请前往 Magento 文档页面。