如何在Ubuntu 20.04上使用LEMP Stack安装Magento 2.4

在本指南中,我们将向您展示如何在Ubuntu 20.04 VPS上使用LEMP堆栈安装Magento 2.4。

由于其定制和灵活性,Magento是可用的最受欢迎的开源电子商务平台之一。 它使用Zend Framework创建,并使用MySQL作为其数据库管理系统。 Magento为在线商人提供了一个非常灵活的购物车,并且具有丰富的功能集,对于希望建立在线站点而无麻烦的企业而言,它是一个绝佳的选择。

在Ubuntu 20.04上使用LEMP堆栈安装Magento 2.4 只需不到10分钟即可完成。 让我们开始学习本教程。

先决条件

  • 已启用root访问权限或具有sudo特权的用户的Ubuntu 20.04 VPS
  • 4GB RAM或更高
  • Nginx的
  • MariaDB 10.4
  • Elasticsearch 7.6.x,因为Magento 2.4已通过此版本测试
  • 已启用bcmath,ctype,curl,dom,gd,hash,iconv,intl,libxml,mbstring,openssl,pdo_mysql,simplexml,soap,xsl和zip扩展的PHP 7.4。 另外,出于性能原因,最好安装并启用opcache扩展。
  • 用于访问Magento 2网站的有效域名。 另外,使用HTTPS访问网站需要有效的SSL证书。

如果您没有设置LEMP堆栈(Nginx,MariaDB,PHP),那么没问题-我们还将在本教程中介绍如何安装它们。

入门

首先,我们将需要使用SSH登录到服务器。 您可以通过输入以下命令来做到这一点:

ssh [email protected]_Address -p Port_number

如有必要,请使用具有sudo特权的用户替换“ root”。 此外,将“ IP_Address”和“ Port_Number”替换为服务器各自的IP地址和SSH端口号。

登录后,应将所有Ubuntu OS软件包更新为最新的可用版本。

apt-get update 
apt-get upgrade

一旦所有OS软件包都是最新的,如果需要应用任何新的配置更改,请重新启动服务器。

安装LEMP和Elasticsearch

LEMP是一个首字母缩写词,它描述了具有Nginx,MySQL(或MariaDB)和PHP的Linux操作系统。 它是应用程序和服务器的常规堆栈,可以为许多软件包提供基础。 让我们在Ubuntu 20.04 VPS上安装LEMP。

安装Nginx

如果服务器上已经安装了Apache Web服务器,请停止Apache服务并在服务器启动时将其禁用:

systemctl stop apache2
systemctl disable apache2

使用以下命令安装Nginx:

apt-get install nginx

现在,这就是我们需要使用Nginx进行的所有操作。

安装MySQL

接下来,我们将安装MySQL数据库服务器,该服务器将用于存储Magento网站的数据,例如产品,类别,客户和订单。在本教程中,我们将安装和使用MariaDB。 要安装MariaDB数据库服务器,请输入以下命令:

apt-get install software-properties-common

我们需要添加一个密钥以添加我们的MariaDB存储库。

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

现在我们有了密钥,让我们安装存储库:

add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.4/ubuntu bionic main'

更新您的APT存储库,以便阅读软件包列表。

apt update

最后,我们可以安装MariaDB。

apt install mariadb-server

安装MariaDB后,启用MariaDB服务以在服务器启动时启动:

systemctl enable mariadb.service

检查MariaDB服务的状态:

systemctl status mariadb.service

它应该正在运行。 这就是我们现在需要使用MariaDB进行的所有操作。

安装Elasticsearch

切换到可以临时下载文件的目录。

cd /opt

让我们下载Elasticsearch软件包文件。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-amd64.deb

通过运行以下命令来安装它:

dpkg -i elasticsearch-7.6.1-amd64.deb

启动Elasticsearch服务:

systemctl start elasticsearch

检查状态:

systemctl status elasticsearch

检查版本和其他有关Elasticsearch的信息:

curl -XGET 'http://localhost:9200'

如果到目前为止一切正常,我们现在可以安装PHP。

安装PHP 7.4

为PHP 7.4添加PPA:

add-apt-repository ppa:ondrej/php

接下来,更新操作系统软件包列表,并使用以下命令安装PHP 7.4:

apt-get update
apt-get install php7.4

使用以下命令安装所有必需的PHP扩展:

apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip php7.4-bcmath

在服务器上安装PHP扩展后,请安装Magento 2安装所需的其他一些OS软件包:

apt-get install git curl software-properties-common

接下来,打开主PHP配置文件 /etc/php/7.4/fpm/php.ini

nano /etc/php/7.4/fpm/php.ini

更改以下设置:

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
cgi.fix_pathinfo = 0
zlib.output_compression = On
upload_max_filesize = 128M
max_execution_time = 600
max_input_time = 900
date.timezone = America/Chicago

保存并关闭PHP配置文件。

为Magento 2创建数据库

使用以下命令保护您的MariaDB安装安全 mysql_secure_installation 脚本。 该脚本将删除匿名用户,禁止远程root登录,并删除测试数据库。

mysql_secure_installation

我们建议您回答如下所示的所有问题:

Enter current password for root (enter for none): Press [Enter] since no password is set by default
Set root password? [Y/n]: N (You can set a password if you like)
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

接下来,我们将为Magento 2网站创建MySQL用户和数据库。 使用以下命令登录到您的MySQL服务器,并在出现提示时输入您的MySQL超级用户密码:

mysql -u root -p

要为我们的Magento 2实例创建一个新数据库,请运行以下命令:

mysql> set global log_bin_trust_function_creators=1;
mysql> CREATE USER 'magento'@'localhost' IDENTIFIED WITH mysql_native_password BY 'strongPassword';
mysql> create database magentodb;
mysql> GRANT ALL PRIVILEGES ON magentodb.* TO 'magento'@'localhost';
mysql> flush privileges;
mysql> quit

确保您给 magento MariaDB用户是一个真实而强大的密码。

安装Magento 2

现在,我们可以继续安装Magento 2。 在撰写本文时,Magento的最新稳定版本是2.4版。

首先,转到GitHub存储库,并使用以下命令下载最新版本的Magento:

mkdir -p /var/www/magento2/
cd /var/www/magento2/
git clone https://github.com/magento/magento2.git /var/www/magento2/

接下来,我们将需要安装Composer来安装所有必需的Magento组件。 您可以通过运行以下命令来安装Composer:

curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer

运行以下这些命令来配置作曲家。

cd /var/www/magento2
composer install
bin/magento setup:install --base-url=http://yourdomain.com/ --db-host=localhost --db-name=magentodb --db-user=magento --db-password=strongPassword --admin-firstname=FirstName --admin-lastname=LastName [email protected] --admin-user=magentoadmin --admin-password=strong-password --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1

不要忘记 取代 域名数据库密码管理员用户名密码管理员电子邮件地址 安装完成后,您将收到以下输出:

[Progress: 699 / 701]Post installation file permissions check...For security, remove write permissions from these directories: '/var/www/magento2/app/etc'[Progress: 700 / 701]Write installation date...[Progress: 701 / 701][SUCCESS]: Magento installation complete.[SUCCESS]: Magento Admin URI: /admin_1k4pc0Nothing to import.

记住“ Magento管理员URI”。 稍后您将需要此信息,因为这是您用于登录Magento后端的URL。

更改所有权 magento2 目录到 www-data 使用以下命令:

chown -R www-data:www-data /var/www/magento2/

创建一个Nginx配置文件

使用文本编辑器创建一个Nginx配置文件:

nano /etc/nginx/sites-available/magento2

然后添加以下内容作为文件的内容:

upstream fastcgi_backend {
server unix:/run/php/php7.4-fpm.sock;
}
server {
server_name yourdomain.com;
listen 80;
set $MAGE_ROOT /var/www/magento2;
set $MAGE_MODE developer; # or production
access_log /var/log/nginx/magento2-access.log;
error_log /var/log/nginx/magento2-error.log;
include /var/www/magento2/nginx.conf.sample;
}

确保您设置 yourdomain.com 到您的注册域名。

删除默认的Nginx配置文件(如果未使用):

rm -f /etc/nginx/sites-enabled/default

启用新创建的Nginx配置文件,然后测试Nginx配置并确保没有错误:

ln -s /etc/nginx/sites-available/magento2 /etc/nginx/sites-enabled/magento2
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

而已! 您的Web服务器现已成功配置。

安装SSL证书

我们将安装来自Let’s Encrypt的免费SSL证书。 通过运行以下命令来安装所需的软件包:

apt-get install certbot python3-certbot-nginx

然后为您的域名安装新的SSL证书,确保 yourdomain.com 设置为您的注册域名:

certbot --nginx -d yourdomain.com -d www.yourdomain.com

请选择“ 2”,然后选择将HTTP流量重定向到HTTPS:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

使用以下Magento 2 CLI命令更新Magento base-urlbase-url-secure 值:

cd /var/www/magento2/
php bin/magento setup:store-config:set --base-url="https://yourdomain.com/"
php bin/magento setup:store-config:set --base-url-secure="https://yourdomain.com/"

编辑Nginx配置文件并启用HTTP / 2:

nano /etc/nginx/sites-enabled/magento2

更换:

listen 443 ssl;

带有:

listen 443 ssl http2;

重新启动Nginx服务,以使更改生效:

systemctl restart cron.service

安装Cron Job

Magento需要cron作业配置才能实现许多重要的系统功能。 让我们创建以下cron作业:

crontab -u www-data -e

将此添加到文件中:

* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log

保存并关闭文件。

重新启动cron服务:

systemctl restart cron.service

那就是一切! Magento 2已成功安装在您的服务器上。

magento2前端

您可以在以下位置访问Magento前端 http://yourdomain.com :登录到Magento 2后端 http://yourdomain.com/ Magento管理员URI,然后根据需要配置Magento。 您可以安装扩展,添加产品,类别等。

magento2后端

在当今的数字世界中,具有在线形象正变得越来越重要。 当您使用我们的Managed Magento托管时,您不需要成为Linux系统管理方面的专家–我们将为您设置并维护一切,所有这些都包含在我们的VPS中。 我们甚至可以优化您的服务器以及执行您可能有的任何请求。 您仍然可以完全控制您的服务器,但是您再也不需要经历任何麻烦。

我们希望本教程可以帮助您在Ubuntu 20.04 VPS上安装Magento 2。 如果确实如此,请考虑使用我们的共享快捷方式在社交媒体上分享此信息,或者在下面留下您有任何疑问或建议的评论。 谢谢。

Sidebar