Magento 安装在 Ubuntu 22.04 上
1. 先决条件
1. 要执行本教程中给出的步骤,用户必须运行 Ubuntu 22.04 服务器。
2. 访问 root 或 sudo 用户以安装软件包,例如 Web 服务器。
3. 互联网连接
2. 访问命令终端
使用 SSH 访问远程运行的 Ubuntu 服务器,或者具有本地安装的服务器系统的人可以直接访问终端来运行命令。进入终端后,请按照本教程中给出的后续步骤进行操作。
对于 SSH,连接到远程服务器的标准命令语法为:
ssh username@server_IP_Address
将 username 替换为 root 或您要访问的任何其他用户,而server_IP_Address是 Ubntu 22.04 服务器的地址。默认情况下,上述命令将使用端口 22,如果您使用的是任何其他端口,请使用 -p 选项提及它。
ssh username@server_IP_Address -p Port_number
将Port_number替换为您正在使用的自定义。
3. 更新 Ubuntu 22.04 系统软件包
首先,从 system update 命令开始,以确保 Ubuntu 22.04 上可用的所有软件包都是最新的。这也将刷新和重建 Ubuntu 的 APT 包管理器索引缓存。
sudo apt update && sudo apt upgrade
4. 安装 NGINX Web 服务器
虽然我们可以使用流行的 Apache Web 服务器,但由于 Nginx 是轻量级的并且速度更快,所以这里我们使用它。Nginx 可以使用系统的包管理器轻松安装,以下是要遵循的命令:
sudo apt install nginx-full
启动并启用其服务:
sudo systemctl enable --now nginx
若要检查服务是否正在运行且没有任何错误,请使用以下命令:
systemctl status nginx --no-pager -l
5.安装PHP for Magento
Ubuntu 22.04 上可安装的默认 PHP 版本是 php8.1,这是编写本教程时最新、最稳定的版本。因此,执行给定的命令不仅要安装PHP,还要安装Magento在Ubuntu 22.04 Linux上正常运行所需的扩展。
sudo apt install php php-{bcmath,intl,mbstring,mysql,soap,xml,xsl,zip,cli,common,curl,fpm,gd}
要检查您可以使用的 PHP 版本php -v
现在,让我们编辑 PHP 配置文件并增加 PHP 内存限制、上传文件大小并配置 Magneto 所需的其他一些 PHP 内容。
增加内存:
sudo sed -i "s/memory_limit = .*/memory_limit = 2G/" /etc/php/8.1/fpm/php.ini
增加文件上传大小:
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 128M/" /etc/php/8.1/fpm/php.ini
启用 Zlib 压缩:
sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/8.1/fpm/php.ini
增加 PHP 进程的最大执行时间:
sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/8.1/fpm/php.ini
完成后,重新启动 Nginx 服务器:
sudo systemctl restart nginx
6. 在 Ubuntu 上安装 MariaDB 服务器 22.04
为了存储Magento电子商务商店生成的数据,我们在这里使用流行的开源MySQL数据库服务器。让我们使用给定的命令安装它:
sudo apt install mysql-server-8.0
检查MariaDB是否正常运行:
systemctl status mysql --no-pager -l
如果它没有运行,那么这里是制作它的命令。
sudo systemctl enable --now mysql
7. 为 Magneto 创建数据库
现在,让我们创建一个用于Magento安装的数据库,它也将使用它来存储所有未来生成的数据。
登录MySQL
sudo mysql -u root
现在,首先创建数据库用户:
注意:将 myuser 替换为您要为用户提供的任何名称,将 mypass 替换为您要在每个命令中为其设置的密码。而 mydb 替换为要使用的数据库的名称。
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
创建数据库
CREATE DATABASE mydb;
向所创建数据库的用户授予完全访问权限。
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
最后,刷新并退出命令行:
FLUSH PRIVILEGES;
exit;
8. 安装和设置 ElasticSearch
ElasticSearch是安装Magento的要求之一,因为在线商店通常有一个很大的目录,当用户搜索任何产品时,结果必须很快。因此,ElasticSearch 将帮助我们解决这个问题。
虽然在撰写本文时,ElasticSearch的最新版本是8.x,但是,Magento支持7.x。让我们添加存储库和 GPG 密钥来安装它。
首先,添加 GPG 密钥:
sudo apt-get install apt-transport-https curl
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 -a /etc/apt/sources.list.d/elastic-7.x.list
运行系统更新命令:
sudo apt update
在 Ubuntu 上安装 ElasticSearch 22.04
sudo apt install elasticsearch
启动并启用弹性搜索服务
要确保 Elasticsearch 在系统启动时自动运行,请使用给定的命令:
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
要确认没有错误并且服务运行良好,请使用:
systemctl status elasticsearch --no-pager -l
要进一步验证 Elasticsearch 的工作原理,请使用:
curl -X GET "localhost:9200"
您将获得类似于屏幕截图中给出的输出。
9. 安装 PHP Composer
在 Ubuntu 上下载和安装 Magento 的最简单方法之一是使用 PHP Composer。它是PHP编程语言的应用程序级依赖项管理器。由于Magento是基于PHP的平台,因此这有助于使用单个安装命令自动安装所有必需的依赖项。
下载 Composer 安装脚本:
curl -sS https://getcomposer.org/installer -o composer-setup.php
开始安装过程:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
10. 创建 NGINX 服务器块
让我们为Magento创建一个服务器块或配置文件,以便我们的NGINX可以知道Magento文件在哪里以及如何为它们提供服务。
sudo nano /etc/nginx/sites-enabled/magento.conf
粘贴以下行:
upstream fastcgi_backend {
server unix:/run/php/php8.1-fpm.sock;
}
server {
server_name yourdomain.com;
listen 80;
set $MAGE_ROOT /var/www/magento;
set $MAGE_MODE developer; # or production
access_log /var/log/nginx/magento-access.log;
error_log /var/log/nginx/magento-error.log;
include /var/www/magento/nginx.conf.sample;
}
注意:不要忘记将 yourdomain.com 替换为您计划用于万磁王的域名。
按 Ctrl+X,然后键入 – Y 并按 Enter 键保存并退出编辑器。
11. 创建 Magento2 公钥和私钥
我们需要验证我们将要下载的Magento副本 使用Composer 在Ubuntu 22.04上,只有这样我们才能安装它。
为此,我们需要公钥和私钥,要获得它们,我们需要一个Adobe Magento Market Place帐户,如果您没有,请使用给定的链接。
一旦你有了账户,或者你已经有一个账户,然后去你的Magento Market Place账户API密钥区域,点击“创建一个新的访问密钥”按钮,很快你就会有你的私钥和公钥。
12. 下载万磁王进行安装
最后,我们已经配置了在Ubuntu 22.04上安装Magento所需的几乎所有必要内容。现在,让我们使用Composer下载Magento的最新可用版本并开始安装它。
为Magento创建一个目录,我们在NGINX服务器块配置文件中设置了该目录,即/var/www/magento
sudo mkdir -p /var/www/magento/
此外,创建一个目录来存储用户的数据www-dat
sudo mkdir -p /var/www/.config/
更改文件夹的权限,以便 Web 服务器用户 (www-data) 可以写入它:www
sudo chown www-data:www-data /var/www/ -R
切换到 /var/www
目录,开始 Magento 的下载和安装过程:
sudo -u www-data composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento
很快,它会要求提供用户名和密码。现在,转到您创建公钥和私钥的市场位置。
复制公钥并粘贴它,当 Composer 要求输入用户名进行身份验证时。而私钥是密码。
注意: 粘贴私钥时,不会显示任何内容,并且该部分将保持空白。粘贴后,您只需要按Enter键即可。
当它询问“是否要将 repo.magento.com 的凭据存储在 /var/www/.config/composer/auth.json?”时,按 Y 并按 Enter 键。
13. 在 Ubuntu 22.04 服务器上安装 Magneto
一旦 Composer 完成了 Magento 文件的下载,切换到其目录并运行带有基本参数的可执行 Magneto 设置文件;配置您的域名和数据库;设置管理员用户 – 添加您要使用的任何名称,包括密码和其他项目,例如电子邮件、货币和时间。
sudo -u www-data bin/magento setup:install \
--base-url=http://xyz.com \
--db-host=localhost \
--db-name=mydb \
--db-user=myuser \
--db-password=mypass \
--admin-firstname=admin \
--admin-lastname=admin \
--admin-email=admin@admin.com \
--admin-user=admin \
--admin-password=admin123 \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--search-engine=elasticsearch7 \
--elasticsearch-host=http://localhost \
--elasticsearch-port=9200 \
--elasticsearch-index-prefix=magento2 \
--elasticsearch-timeout=15 \
--elasticsearch-enable-auth=0
注意:我最初收到一个错误:无法验证与 Elasticsearch 的连接。在群集中找不到活动节点。
这是因为我在 ElasticSearch 主机上使用 127.0.0.1 而不是 localhost。
安装完成后,您将看到显示相同消息以及用于访问 Magneto 后端的管理 URL。
现在,重新加载 NGINX Web 服务器:
sudo systemctl reload nginx
就是这样,转到您的浏览器并键入配置为访问Magento的域名。例如,这里我们使用 XYZ.com
14. 访问 Magento 管理仪表板
我们已经有了管理URL,我们可以在Magento域名之后使用,并为其配置。例如-yourdomain.com/admin-url
替换为您正在使用的域以及您在 Magneto 安装结束时获得的任何内容。yourdomain.com
admin-URL
但是,如果您忘记记下您的管理 URL,那么要查找 Magento 管理 URL,我们可以使用以下命令:
sudo /var/www/magento/bin/magento info:adminuri
记录Magento
进入登录屏幕后输入用户名和密码。凭据将是您在本教程的步骤 13 中配置的任何凭据。
15.禁用双因素身份验证
默认情况下,Magento将具有有效的双因素身份验证,但是,它需要在Ubuntu上使用有效的Postfix SMTP中继才能发送电子邮件。但是,如果您当前没有在系统上配置SMTP,请禁用2FA模块以在没有它的情况下登录Magento。
sudo -u www-data bin/magento module:disable Magento_TwoFactorAuth
16. 设置 Cron 作业
登录后,仪表板上会出现一条警告 – “一个或多个索引无效,请确保您的 Magento cron 作业正在运行。
若要删除此警告,请转到命令终端并运行:
cd /var/www/magento
sudo -u www-data php8.1 bin/magento cron:install
刷新管理仪表板,警告很快就会消失。
17. SSL证书 – HTTPS
我想讨论的最后一件事是使用 Let’s Encrypt 进行 SSL 验证。
sudo apt install certbot python3-certbot-nginx
现在,为您用于 Magneto 的域颁发 SSL 证书。
sudo certbot --nginx -d example.com -d www.exmaple.com
完成后,重新启动 NGINX:
sudo systemctl reload nginx
现在,要将 Magneto 的基本 URL 从 HTTP 更改为 HTTPS,请使用:
cd /var/www/magento/
sudo -u www-data bin/magento setup:store-config:set --base-url="https://example.com/"
sudo -u www-data bin/magento setup:store-config:set --base-url-secure="https://example.com/"
将 https://example.com/ 替换为您的域名。