麒麟系统x86架构项目部署
1、安装jdk
解压jdk
# 解压jdk
tar -zxvf jdk-8u441-linux-x64.tar.gz
配置环境变量
# 配置环境变量
vi /etc/profile
# 在文件末尾追加以下内容
export JAVA_HOME=/opt/java/jdk1.8.0_441
export CLASSPATH=.:$JAVA_HOME/bin/
export PATH=.:$JAVA_HOME/bin:$PATH
多jdk版本示例
export JAVA_HOME=/opt/jdk/jdk1.8.0_172
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
# java17 environment
export JAVA17_HOME=/opt/jdk/jdk-17.0.13
export CLASSPATH=.:$JAVA17_HOME/bin/
export PATH=.:$JAVA17_HOME/bin:$PATH
# 多 JDK 版本示例关键(起别名以达到共存目的)
alias java=${JAVA_HOME}/bin/java
alias java17=$JAVA17_HOME/bin/java
使配置生效并测试环境
source /etc/profile
java -version
=======确认配置已生效=======
echo $JAVA_HOME
echo $PATH
=======确认配置已生效=======
java17 -version (多JDK 版本示例,java17为alias处配置的别名)
2、安装mysql
解压mysql
tar -Jxvf mysql-8.0.31-linux-glibc2.17-x86_64-minimal.tar.xz
修改文件目录名称
mv mysql-8.0.31-linux-glibc2.17-x86_64-minimal mysql
进入解压后的目录
cd mysql
创建数据库文件存放的文件夹。这个文件夹将来存放每个数据库的库文件
mkdir mysqldb
mysql安装目录赋予权限
chmod -R 777 /opt/mysql
创建mysql组和用户
groupadd mysql
创建用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)
useradd -r -g mysql -s /bin/false mysql
** 将用户添加到组中**
chown -R mysql:mysql ./
修改mysql配置文件
vim /etc/my.cnf
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/opt/mysql
# 设置mysql数据库的数据的存放目录
datadir=/opt/mysql/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 忽略大小写
lower_case_table_names=1
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
进入mysql 安装目录下
cd /opt/mysql/bin/
安装mysql,并记住初始化随机密码 -aGfz#XhB0d=
./mysqld --initialize --console
进入/opt/mysql/support-files/目录
cd /opt/mysql/support-files/
**启动mysql服务 **
./mysql.server start
如果第一次启动,当初始化执行会有报错,此时不要担心,重新给mysql安装目录赋予一下权限后,再次执行
chmod -R 777 /opt/mysql
./mysql.server start
将mysql添加到系统进程中
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
设置mysql自启动
chmod +x /etc/init.d/mysqld
systemctl enable mysqld
登录mysql (mysql -uroot -p’-aGfz#XhB0d=')
mysql -uroot -p(备注:输入刚刚默认的密码要加上引号)
执行/opt/mysql/bin/mysql -u root -p报错/opt/mysql/bin/mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
# 检查系统中是否已有 libtinfo.so.6
ls /lib/x86_64-linux-gnu/libtinfo.so.6
# 如果有,将其软链接为 libtinfo.so.5
sudo ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.5
# 然后尝试再次运行 MySQL 客户端:
/opt/mysql/bin/mysql -u root -p
修改root用户登录密码
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1008611';
设置允许远程登录
use mysql
update user set user.Host='%'where user.User='root';
flush privileges;
执行sql文件
source /opt/qkl/2025.4.13zn-blockchain.sql;
3、安装nginx
解压缩nginx-1.26.3.tar.gz安装包
tar -zxvf nginx-1.26.3.tar.gz
编译nginx,进入到解压后的nginx目录,依次运行如下命令(每一行代表一个命令)
./configure
make
make install
执行./configure报错./configure: error: C compiler cc is not found
# 先将下载好的nginx-build-debs包,复制到离线机器上,然后执行命令安装gcc相关依赖
cd /opt/nginx-build-debs
sudo dpkg -i *.deb
安装完后重新执行上面Nginx 的编译流程
cd ../nginx-1.26.3
./configure
make
make install
编译完成后nginx默认安装在**/usr/local/nginx** 路径下
配置nginx
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 90;
server_name localhost
charset utf-8;
# windows dist存放在nginx的位置
location / {
root html/dist;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
# 访问地图资源
location /biying/ {
alias html/TMS/;
try_files $uri $uri/ /index.html;
index index.html index.htm;
# 启用CORS,防止跨域
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
# 配置反向代理 proxy_pass 需要改成自己后端的ip端口
location /dev-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8889/;
proxy_read_timeout 3600; # 单位为秒
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
配置环境变量
# 配置环境变量
vi /etc/profile
# 在文件末尾追加以下内容
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
使配置生效并测试环境
source /etc/profile
nginx -v
设置nginx服务开机自启动
# 创建 systemd 服务文件
sudo vi /etc/systemd/system/nginx.service
# 在nginx.service文件中添加以下内容
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
启用并启动服务
sudo systemctl enable nginx
sudo systemctl start nginx
防火墙问题
# 查看防火墙是否已经放行了 Nginx 使用的端口(默认为 80 和 443)
firewall-cmd --zone=public --list-ports
# 如果未放行端口,输入一下命令放行端口
firewall-cmd --zone=public --add-port=80/tcp --permanent # 放行 HTTP 端口
firewall-cmd --zone=public --add-port=443/tcp --permanent # 放行 HTTPS 端口
# 重新加载防火墙配置以使更改生效
firewall-cmd --reload
# 如果仍然无法访问,可以尝试重启防火墙服务
systemctl restart firewalld
4、安装python
解压python
tar -xf Python-3.8.9.tar.xz
安装python开发依赖包
# 先将下载好的python_deps包,复制到离线机器上,然后执行命令安装python相关依赖
cd /opt/python_deps
sudo dpkg -i *.deb
配置编译参数-加上优化与自定义安装路径(不覆盖系统 Python)
cd Python-3.8.9
make clean # 清理旧构建,重新配置
./configure --enable-optimizations --prefix=/usr/local/python3.8
make
make install
配置环境变量
# 配置环境变量
vi /etc/profile
# 在文件末尾追加以下内容
export PATH="/usr/local/python3.8/bin:$PATH"
如果想彻底 替代系统默认的 python 命令,还可以加一个软链接
mv /usr/bin/python /usr/bin/python.bak # 备份一下系统自带的 python
ln -s /usr/local/python3.8/bin/python3 /usr/bin/python
ln -s /usr/local/python3.8/bin/pip3 /usr/bin/pip
使配置生效并测试环境
source /etc/profile
python -V
pip3 -V (也可以创建软连接用pip命令: ln -s /usr/local/bin/pip3 /usr/local/bin/pip)
5、安装matlab
解压zip
mkdir MATLAB_Runtime_R2020b
unzip MATLAB_Runtime_R2020b_Update_8_glnxa64.zip -d MATLAB_Runtime_R2020b
编译matlab
cd MATLAB_Runtime_R2020b
sudo ./install -mode silent -agreeToLicense yes -destinationFolder /opt/matlab_runtime/r2020b
配置环境变量
vi /etc/profile
# 在文件末尾追加以下内容
export LD_LIBRARY_PATH=/opt/matlab_runtime/v99/runtime/glnxa64:/opt/matlab_runtime/v99/bin/glnxa64:$LD_LIBRARY_PATH
使配置生效并测试环境
source /etc/profile
echo $LD_LIBRARY_PATH
6、确保登录 shell 会自动加载 /etc/profile
vi ~/.bashrc
# 添加内容并保存
source /etc/profile
麒麟系统arm架构项目部署
关闭防火墙
sudo systemctl stop firewalld
永久关闭防火墙
sudo systemctl disable firewalld
1、通过qemu安装麒麟系统ARM版本
创建虚拟磁盘
qemu-img create -f qcow2 E:\kylinarm64\kylindisk.qcow2 50G
注册虚拟机 new
qemu-system-aarch64.exe ^
-m 8192 ^
-cpu cortex-a72 ^
-smp 8,sockets=4,cores=2 ^
-M virt ^
-bios e:\kylinarm64\QEMU_EFI.fd ^
-device VGA ^
-device nec-usb-xhci ^
-device usb-table ^
-device usb-kbd ^
-drive if=none,file=e:\kylinarm64\kylindisk.qcow2,id=hd0 ^
-device virtio-blk-device,drive=hd0 ^
-drive if=none,file=e:\kylinarm64\Kylin-Server-V10-SP3-2403-Release-20240426-arm64.iso,id=cdrom,media=cdrom ^
-device virtio-scsi-device ^
-device scsi-cd,drive=cdrom ^
启动虚拟机- TAP网络桥接方式
qemu-system-aarch64.exe ^
-m 8192 ^
-cpu cortex-a72 ^
-smp 8,sockets=4,cores=2 ^
-M virt ^
-bios e:\kylinarm64\QEMU_EFI.fd ^
-device VGA ^
-device nec-usb-xhci ^
-device usb-tablet ^
-device usb-kbd ^
-drive if=none,file=e:\kylinarm64\kylindisk.qcow2,id=hd0 ^
-device virtio-blk-device,drive=hd0 ^
-net nic ^
-net tap,ifname=tap0,script=no,downscript=no
启动虚拟机-NAT网络直连方式
qemu-system-aarch64.exe ^
-m 8192 ^
-cpu cortex-a72 ^
-smp 8,sockets=4,cores=2 ^
-M virt ^
-bios e:\kylinarm64\QEMU_EFI.fd ^
-device VGA ^
-device nec-usb-xhci ^
-device usb-tablet ^
-device usb-kbd ^
-drive if=none,file=e:\kylinarm64\kylindisk.qcow2,id=hd0 ^
-device virtio-blk-device,drive=hd0 ^
-netdev user,id=net0,hostfwd=tcp::2222-:22 ^
-device virtio-net-device,netdev=net0
转发多个端口启动虚拟机
-netdev user,id=net0,hostfwd=tcp::2222-:22,hostfwd=tcp::90-:90,hostfwd=tcp::8889-:8889,hostfwd=tcp::9000-:9000 ^
2、安装虚拟网卡
下载地址:https://openvpn.net/community-downloads/
安装openvpn-connect,修改网卡名称为tap0,将物理机的网络共享给虚拟网卡tap0
3、进行网络配置设置固定ip
参考:https://blog.csdn.net/qq_42055933/article/details/135497642?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-5-135497642-blog-131632280.235^v43^pc_blog_bottom_relevance_base5&spm=1001.2101.3001.4242.4&utm_relevant_index=8
4、安装jdk
解压jdk
# 解压jdk
tar -zxvf jdk-8u441-linux-aarch64.tar.gz
配置环境变量
# 配置环境变量
vi /etc/profile
# 在文件末尾追加以下内容
export JAVA_HOME=/opt/jdk1.8.0_441
export CLASSPATH=.:$JAVA_HOME/bin/
export PATH=.:$JAVA_HOME/bin:$PATH
多jdk版本示例
export JAVA_HOME=/opt/jdk/jdk1.8.0_172
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
# java17 environment
export JAVA17_HOME=/opt/jdk/jdk-17.0.13
export CLASSPATH=.:$JAVA17_HOME/bin/
export PATH=.:$JAVA17_HOME/bin:$PATH
# 多 JDK 版本示例关键(起别名以达到共存目的)
alias java=${JAVA_HOME}/bin/java
alias java17=$JAVA17_HOME/bin/java
使配置生效并测试环境
source /etc/profile
java -version
=======确认配置已生效=======
echo $JAVA_HOME
echo $PATH
=======确认配置已生效=======
java17 -version (多JDK 版本示例,java17为alias处配置的别名)
5、安装mysql
卸载mariadb
yum remove mariadb-server mariadb
检查是否还有未删除的包
rpm -qa | grep mariadb
yum remove mariadb-connector-c-3.0.6-9.ky10.aarch64
yum clean all
删除MariaDB的数据目录和配置文件
rm -rf /var/lib/mysql/
rm -rf /etc/my.cnf
解压mysql
tar -zxvf mysql-8.0.31-linux-glibc2.17-aarch64.tar.gz
修改文件目录名称
mv mysql-8.0.31-linux-glibc2.17-aarch64 mysql
进入解压后的目录
cd mysql
创建数据库文件存放的文件夹。这个文件夹将来存放每个数据库的库文件
mkdir mysqldb
mysql安装目录赋予权限
chmod -R 777 /opt/mysql
创建mysql组和用户
groupadd mysql
创建用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)
useradd -r -g mysql -s /bin/false mysql
** 将用户添加到组中**
chown -R mysql:mysql ./
修改mysql配置文件
vim /etc/my.cnf
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/opt/mysql
# 设置mysql数据库的数据的存放目录
datadir=/opt/mysql/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 忽略大小写
lower_case_table_names=1
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
进入mysql 安装目录下
cd /opt/mysql/bin/
安装mysql,并记住初始化随机密码 k;EQgy((o9nY
./mysqld --initialize --console
进入/opt/mysql/support-files/目录
cd /opt/mysql/support-files/
**启动mysql服务 **
./mysql.server start
如果第一次启动,当初始化执行会有报错,此时不要担心,重新给mysql安装目录赋予一下权限后,再次执行
chmod -R 777 /opt/mysql
./mysql.server start
将mysql添加到系统进程中
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
设置mysql自启动
chmod +x /etc/init.d/mysqld
systemctl enable mysqld
将 mysql 加入环境变量
vim /etc/profile
export PATH=$PATH:/opt/mysql/bin
source /etc/profile
登录mysql (mysql -uroot -p’k;EQgy((o9nY’)
mysql -uroot -p(备注:输入刚刚默认的密码要加上引号)
修改root用户登录密码
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1008611';
设置允许远程登录
use mysql
update user set user.Host='%'where user.User='root';
flush privileges;
执行sql文件
source /opt/qkl/2025.4.13zn-blockchain.sql;
6、安装nginx
解压缩nginx-1.26.3.tar.gz安装包
tar -zxvf nginx-1.26.3.tar.gz
编译nginx,进入到解压后的nginx目录,依次运行如下命令(每一行代表一个命令)
cd ../nginx-1.26.3
./configure
make
make install
编译完成后nginx默认安装在**/usr/local/nginx** 路径下
配置nginx
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 90;
server_name localhost
charset utf-8;
# windows dist存放在nginx的位置
location / {
root html/dist;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
# 访问地图资源
location /biying/ {
alias html/TMS/;
try_files $uri $uri/ /index.html;
index index.html index.htm;
# 启用CORS,防止跨域
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
# 配置反向代理 proxy_pass 需要改成自己后端的ip端口
location /dev-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8889/;
proxy_read_timeout 3600; # 单位为秒
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
配置环境变量
# 配置环境变量
vi /etc/profile
# 在文件末尾追加以下内容
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
使配置生效并测试环境
source /etc/profile
nginx -v
设置nginx服务开机自启动
# 创建 systemd 服务文件
sudo vi /etc/systemd/system/nginx.service
# 在nginx.service文件中添加以下内容
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
启用并启动服务
sudo systemctl enable nginx
sudo systemctl start nginx
防火墙问题
# 查看防火墙是否已经放行了 Nginx 使用的端口(默认为 80 和 443)
firewall-cmd --zone=public --list-ports
# 如果未放行端口,输入一下命令放行端口
firewall-cmd --zone=public --add-port=80/tcp --permanent # 放行 HTTP 端口
firewall-cmd --zone=public --add-port=443/tcp --permanent # 放行 HTTPS 端口
# 重新加载防火墙配置以使更改生效
firewall-cmd --reload
# 如果仍然无法访问,可以尝试重启防火墙服务
systemctl restart firewalld
7、安装python
解压python
tar -xf Python-3.8.9.tar.xz
配置编译参数-加上自定义安装路径(不覆盖系统 Python)
cd Python-3.8.9
make clean # 清理旧构建,重新配置
./configure --prefix=/usr/local/python3.8
make -j$(nproc)
make install
配置环境变量
# 配置环境变量
vi /etc/profile
# 在文件末尾追加以下内容
export PATH="/usr/local/python3.8/bin:$PATH"
如果想彻底 替代系统默认的 python 命令,还可以加一个软链接
mv /usr/bin/python /usr/bin/python.bak # 备份一下系统自带的 python
ln -s /usr/local/python3.8/bin/python3 /usr/bin/python
ln -s /usr/local/python3.8/bin/pip3 /usr/bin/pip
使配置生效并测试环境
source /etc/profile
python -V
pip3 -V (也可以创建软连接用pip命令: ln -s /usr/local/bin/pip3 /usr/local/bin/pip)
8、安装matlab(Linux没有对应arm版本)
解压zip
mkdir MATLAB_Runtime_R2020b
unzip MATLAB_Runtime_R2020b_Update_8_glnxa64.zip -d MATLAB_Runtime_R2020b
编译matlab
cd MATLAB_Runtime_R2020b
sudo ./install -mode silent -agreeToLicense yes -destinationFolder /opt/matlab_runtime/r2020b
配置环境变量
vi /etc/profile
# 在文件末尾追加以下内容
export LD_LIBRARY_PATH=/opt/matlab_runtime/v99/runtime/glnxa64:/opt/matlab_runtime/v99/bin/glnxa64:$LD_LIBRARY_PATH
使配置生效并测试环境
source /etc/profile
echo $LD_LIBRARY_PATH
9、确保登录 shell 会自动加载 /etc/profile
vi ~/.bashrc
# 添加内容并保存
source /etc/profile