Magento2.4.0 尝鲜安装记录 Ubuntu 20.04 LTS

本文配套视频教程:
https://www.magentochina.org/视频magento2-4-0-安装与卸载过程-尝鲜记录-基于ubuntu-20的lampelasticsearchdocker/

安装流程 ubuntu 20.04 lts 我们的目标是基于经典LAMP软件套件在此之上体验最新版的Magento2.4.0

首先更新系统

sudo apt update
sudo apt upgrade

一切环境的基础 LAMP软件套件中的核心以及底层(L)Linux OS Ubuntu、也可以更换其他Linux系统 比如Debian、Deepin以及他们的变体UOS等等。CentOS由于软件源老旧更新慢不是很推荐。(讨厌学院派的编译操作。不推荐萌新体验用CentOS)使用桌面版也可以安装。本文全程命令行,在终端中操作都是一样的,放心食用。【小知识:Ubuntu、Deepin、UOS都是基于Debian的变体,操作基本通用】

安装web server

官方支持的web server通常有两种 Apache2、Nginx 这里选用Apache2作为例子 毕竟这是LAMP软件套件中的(A)apache2 至于Nginx是LEMP或称之LNMP中的(E)或(N)Nginx 两大web服务套件 LAMP和LEMP最核心差异就是 Web server的选择了 第二位的选择会影响套件中第四位(P)PHP的配置。

sudo apt install apache2

安装数据库

官方支持的数据库有 Mysql、MariaDB 对版本有要求 Mysql关键建议是8.0以上版本,由于Mysql让甲骨文收购。常规Linux系统以及将它踢出默认安装源,不在默认支持。这里选用MariaDB它等效于Mysql。这里是LAMP软件套件中的(M)MariaDB 数据库服务。

sudo apt install mariadb-server

安装PHP和模块

有种说法LAMP软件套件中(P)并不只是PHP 还有Python,实际上现在更新Linux系统已经将Python默认内置到系统中。版本也统一为3.X。2.x的Python已经被抛弃。
这里命令比较长 主要就是安装PHP 7.4.X版本以及Magento2 所需的主要PHP组件

sudo apt install php php-bcmath php-curl php-gd php-intl php-mbstring php-soap php-zip php-xml php-mysql

安装 imagemagick

用于图像处理的工具包。原本imagemagick是个选装项,用于配合PHP-GD模块使用的。如只装PHP-GD模块在体验过程中有极大概率回报告错误造成不能登录。在这里推荐安装。

sudo apt install imagemagick

【Magento2.4.0与之前版本不同之处】

Magento2.4.0相对于之前的版本,强制要求将搜索服务从贫弱的Mysql迁移到elasticsearch(弹性搜索),成为了必选项。所以Magento2.4.0所需的基础环境就变成了LAMP+elasticsearch。但是elasticsearch安装也是有前置条件的且过于麻烦。处于教学或体验方便我们选用Dockers方式挂载使用。

安装docker

sudo apt-get install docker.io

安装elasticsearch

从Docker云中下载elasticsearch镜像,这并非elasticsearch官方镜像排名第二的第三方作品集成了kibana 用于elasticsearch日志分析平台。虽然教学或体验上暂时还用不到。

sudo docker pull nshou/elasticsearch-kibana

下载解压完这个镜像 占用877M 可以算是巨大了。

首次启用elasticsearch
sudo docker run -d -p 9200:9200 -p 9300:9300 -p 5601:5601 --name eskibana nshou/elasticsearch-kibana

如果你不小心重启了服务器 默认情况下docker 不会挂在镜像 需要你用命令重启elasticsearch镜像

再次重启用命令
sudo docker ps -a //查询编号
sudo docker start #编号

【】【】【】【】【】【】【】【分】【】【割】【】【线】【】【】【】【】【】【】【】

这里主要讲相关软件需要的设置

配置web server
首先是配置Apache2 使用命令编辑配置文件

sudo vi /etc/apache2/sites-available/000-default.conf

用方向键移动光标到文末,让后按i键 进入插入模式
添加下列内容

<Directory "/var/www/html">
AllowOverride all
</Directory>

完毕后,先按下ESC键,后面依次输入:wq回车
【Esc键,上档键+分号键,W键,P键,回车键】

启用重写模块

sudo a2enmod rewrite

让配置生效需要重启Apache2服务

systemctl restart apache2

这里讲数据库的配置,即使更换Mysql也是一样的操作。
配置数据库

sudo mysql_secure_installation

上面是数据库安装完毕后的初始化操作,按提示操作。输入数据库root密码。

然后用sudo mysql 命令登录mysql 提示符变更 输入下面的指令

use mysql
update mysql.user set plugin='mysql_native_password' where User='root';
flush privileges;
exit

完成后重新用 root身份登录mysql

mysql -u root -p

新建数据库 用户 密码 权限等 输入下面的指令

create database magento;
grant all on *.* to magento2@'%' identified by 'Magento' with grant option;

上传2.4.0源文件以及目录权限所属设置
源文件请自行去官网下载 然后上传到服务器中
复制到 240目录中 并解压 回到上一级目录 执行下面的命令

sudo chown -R www-data:www-data 240/
sudo chmod -R 775 240/

现在进入web server的html目录

cd /var/www/html/

建立符号连接

sudo ln -Fs /home/jiyun/240/ 240

【】【】【】【】【】【】【再】【】【次】【】【出】【】【现】【】【】【】【】【】【】

万事俱备可以正式开始安装了,首先回到用户目录
cd /home/jiyun/
进入 magento2.4.0所在的根目录
cd 240

安装Magento2.4.0

sudo -u www-data php bin/magento setup:install \
--backend-frontname="admin" \
--db-host="localhost" \
--db-name="magento" \
--db-user="magento2" \
--db-password="Magento" \
--language="zh_Hans_CN" \
--currency="CNY" \
--timezone="Asia/Shanghai" \
--use-rewrites=1 \
--use-secure=1 \
--use-secure-admin=1 \
--base-url="http://192.168.124.23/240/" \
--base-url-secure="https://192.168.124.23/240/" \
--admin-user=admin \
--admin-password="password@123" \
--admin-email=admin@domain.com \
--admin-firstname=Firstname \
--admin-lastname=Lastname \
--session-save=db \
--search-engine=elasticsearch7 \
--elasticsearch-host=127.0.0.1 \
--elasticsearch-port=9200 \
--cleanup-database

有人会提问 怎么查询服务器的IP地址变更替换上面命中的地址呢?
输入命令

`ip addr show’

可以查询到 请注意分辨

关闭两步验证模块
sudo -u www-data php bin/magento module:disable Magento_TwoFactorAuth

就此可以正常登录2.4.0的后台了

1 个赞

谢谢教程很详细,但操作到这步时候,服务器提示 vi: command not found.

空白云主机安装的,不知道什么原因

任何编辑器都可以 vi vim nano
没有的化就 apt install 一个咯

应该是安装的Linux系统没有默认安装vi编辑器,Linux每个版本更新后,默认软件库都会有变化,可以尝试先安装vi编辑器或者用vim编辑器。