【国产化】银河麒麟V10 aarch64 + TiDB国产化环境下安装EduSoho

【国产化】银河麒麟V10 aarch64 + TiDB国产化环境下安装EduSoho

当下,为了避免关键技术受到海外制约,同时也是为了保护信息安全,软件国产化已经成为一种必然趋势。国家也陆续出台相关政策推进信创行业的发展。而阔知科技作为一家数字化学习技术服务商,也一直在为国产软件的生态发展贡献自己的一份力量。

截至目前,EduSoho在服务器硬件环境层面,已适配飞腾、鲲鹏、海光、龙芯架构、TaiShan100 Server、浪潮英信服务器等国产服务器硬件;在数据库层面,已适配TiDB及Oceanbase数据库;再加上对银河麒麟高级服务器操作系统的适配,EduSoho实现了从硬件环境、软件中间件到数据库的全面国产化环境适配。

本篇文章主要介绍在银河麒麟V10 aarch64 + TiDB国产化环境下安装EduSoho。

安装nginx

1.安装GCC编译器

yum install gcc-c++

yum install openssl openssl-devel

2.安装pcre包 和 zlib包

yum install -y pcre pcre-devel

yum install -y zlib zlib-devel

3.下载源码包: nginx: download 选择stable版本

【国产化】银河麒麟V10 aarch64 + TiDB国产化环境下安装EduSoho

 4.编译nginx

tar -zxvf nginx-1.22.0.tar.gz   #解压

cd nginx-1.22.0                 #进入目录编译

./configure

make

make install

输出结果:

【国产化】银河麒麟V10 aarch64 + TiDB国产化环境下安装EduSoho

5.启动nginx

nginx所在目录为 /usr/local/nginx, 进入目录启动nginx

cd /usr/local/nginx

./sbin/nginx

访问服务器80端口验证nginx是否正常启动

安装PHP7.2

1.安装依赖

yum install libxml2-devel

yum install curl-devel

2.安装PHP及扩展

yum install php php-cli php-common php-curl \

    php-devel php-fpm php-json php-mbstring \

    php-mysqlnd php-opcache php-intl php-gd php-xml

部分扩展需要编译安装

3.编译安装 php-zip扩展
先安装libzip依赖

yum -y install libzip-devel

#下载php-zip

wget http://pecl.php.net/get/zip

tar -zxvf zip

cd zip-1.21.0/

phpize

./configure

make make install

编译成功输出:

【国产化】银河麒麟V10 aarch64 + TiDB国产化环境下安装EduSoho

添加配置

vi /etc/php.d/zip.ini

#增加配置

extension=zip.so

4.重启FPM服务

service php-fpm restart

php –ini输出

【国产化】银河麒麟V10 aarch64 + TiDB国产化环境下安装EduSoho

此扩展影响功能:题库导入,系统升级插件安装。后续可以以此功能验证。

安装TiDB数据库

以下教程只适用于验证国产化可行性。实际生产环境配置参考官方文档 TiDB 社区版 | PingCAP,

1. 下载并安装TiUP。

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

安装完成后会提示如下信息:
     Successfully set mirror to https://tiup-mirrors.pingcap.com
     Detected shell: zsh
     Shell profile:  /Users/user/.zshrc
     /Users/user/.zshrc has been modified to add tiup to PATH
     open a new terminal or source /Users/user/.zshrc to use it
     Installed path: /Users/user/.tiup/bin/tiup
     ===============================================
     Have a try:     tiup playground
     ===============================================

2. 声明全局环境变量。

source ${your_shell_profile}

3. 在当前session执行以下命令启动集群。

• 直接执行tiup playground命令会运行最新版本的TiDB集群,其中TiDB、TiKV、PD和TiFlash实例各 1 个:

tiup playground --host 0.0.0.0

结果参考:

[root@jsou-dev-test-01 ~]# tiup --tag edusoho playground --host 0.0.0.0

tiup is checking updates for component playground ...

Starting component `playground`: /root/.tiup/components/playground/v1.10.2/tiup-playground --host 0.0.0.0

Using the version v6.1.0 for version constraint "".

If you'd like to use a TiDB version other than v6.1.0, cancel and retry with the following arguments:

Specify version manually: tiup playground <version>

Specify version range: tiup playground ^5

The nightly version: tiup playground nightly

Playground Bootstrapping...

Start pd instance:v6.1.0

Start tikv instance:v6.1.0

Start tidb instance:v6.1.0

Waiting for tidb instances ready

192.168.0.238:4000 ... Done

Start tiflash instance:v6.1.0

Waiting for tiflash instances ready

192.168.0.238:3930 ... Done

CLUSTER START SUCCESSFULLY, Enjoy it ^-^

To connect TiDB: mysql --comments --host 192.168.0.238 --port 4000 -u root -p (no password)

To view the dashboard: http://192.168.0.238:2379/dashboard

PD client endpoints: [192.168.0.238:2379]

To view the Prometheus: http://192.168.0.238:9090

To view the Grafana: http://192.168.0.238:3000

4.TiDB高度兼容MySQL5.7协议、MySQL5.7常用的功能及语法。MySQL5.7生态中的系统工具(PHPMyAdmin、 Navicat、MySQL Workbench、mysqldump、Mydumper/Myloader)、客户端等均适用于 TiDB。

但TiDB尚未支持一些MySQL功能,可能的原因如下:

– 有更好的解决方案,例如JSON取代XML函数。
– 目前对这些功能的需求度不高,例如存储流程和函数。 – 一些功能在分布式系统上的实现难度较大。

不支持的功能特性

• 存储过程与函数 • 触发器
• 事件
• 自定义函数

• 外键约束#18209
• 全文语法与索引#1793
• 空间类型的函数(即GIS/GEOMETRY)、数据类型和索引#6347
• 非ascii、latin1、binary、utf8、utf8mb4、gbk的字符集
• SYSschema
• MySQL追踪优化器
• XML函数
• X-Protocol#1109
• Savepoints#6840
• 列级权限#9766
• XA语法(TiDB内部使用两阶段提交,但并没有通过SQL接口公开) • CREATE TABLE tblName AS SELECT stmt语法#4754
• CHECK TABLE语法#4673
• CHECKSUM TABLE语法#1895
• REPAIR TABLE语法
• OPTIMIZE TABLE语法
• HANDLER语句
• CREATE TABLESPACE语句

使用mysql工具导入安装包里的
edusoho.sql, 我这里使用的是Sequel Ace进行导入,导入过程无任何报错,表结构也都顺利创建。
至此,基础环境已经准备完。

安装EduSoho

1.参考安装文档进行安装,安装EduSoho · EduSoho开发指南。其中 bin/phpmig migrate 不需要执行,因为已经使用安装包里的edusoho.sql创建表结构

2.初始化配置

app/console system:init
3.后续配置步骤和安装文档内一致。配置完后进行测试。
【国产化】银河麒麟V10 aarch64 + TiDB国产化环境下安装EduSoho

初步测试成功!基本教学流程功能测试均通过。

                       

点击阅读全文

上一篇 2023年 6月 11日 am11:01
下一篇 2023年 6月 11日 pm10:07