nVisual国产操作系统部署指南
nVisual 国产操作系统部署指南本文档介绍在麒麟 Kylin V10 等国产信创系统上部署 nVisual 的完整流程涵盖ARM 架构和x86_64 架构以及PostgreSQL和 **人大金仓KingbaseES**两种数据库方案。一、环境概览组件技术选型操作系统麒麟 Kylin Linux Advanced Server V10ARM / x86_64数据库PostgreSQL 13 PostGIS pgRouting 或 人大金仓 KingbaseES V8Web 服务Nginx1.18Java 环境JDK 8消息队列RabbitMQ 3.8可选二、麒麟 V10 ARM 架构部署源码编译2.1 安装编译依赖yuminstall-ybzip* perl-ExtUtils-Embed flex bison readline-devel\zlib-devel openssl-devel pam-devel libxml2-devel libxslt-devel\openldap-devel python-devel gcc-c libssh2-devel cmake sqlite-develgit离线环境可用yum install --downloadonly提前下载 rpm 包后上传安装。2.2 编译安装 PostgreSQL 13tarxvf postgresql-13.1.tar.bz2cdpostgresql-13.1 ./configure--prefix/opt/pgsql gmakegmakeinstall2.3 编译安装 PostGIS 依赖按顺序编译安装GEOS → PROJ → libxml2 → json-c → GDAL → protobuf → protobuf-c → PostGIS各组件编译示例# GEOStarxvf geos-3.8.0.tar.bz2cdgeos-3.8.0 ./configure--prefix/opt/geos-3.8.0 --enable-pythonmakemakeinstall# PROJtarxvf proj-6.2.1.tar.gzcdproj-6.2.1 ./configure--prefix/opt/proj-6.2.1makemakeinstall# GDALtarxvf gdal-3.3.3.tar.gzcdgdal-3.3.3 ./configure--prefix/opt/gdal-3.3.3 --with-proj/opt/proj-6.2.1 --with-libjson-c/opt/json-cmakecleanmake-jmakeinstall# protobuftarxvf protobuf-all-3.6.1.tar.gzcdprotobuf-3.6.1 ./configure--prefix/opt/protobuf-3.6.1makemakeinstall# protobuf-ctarxvf protobuf-c-1.4.0.tar.gzcdprotobuf-c-1.4.0exportPKG_CONFIG_PATH/opt/protobuf-3.6.1/lib/pkgconfig ./configure--prefix/opt/protobuf-c-1.4.0makemakeinstall# PostGIStarxvf postgis-3.1.6.tar.gzcdpostgis-3.1.6 ./configure--prefix/opt/postgis\--with-gdalconfig/opt/gdal-3.3.3/bin/gdal-config\--with-pgconfig/opt/pgsql/bin/pg_config\--with-geosconfig/opt/geos-3.8.0/bin/geos-config\--with-projdir/opt/proj-6.2.1\--with-xml2config/opt/libxml2-2.9.1/bin/xml2-config\--with-jsondir/opt/json-c\--with-protobufdir/opt/protobuf-c-1.4.0makemakeinstall2.4 编译安装 pgRouting先安装 CGAL 和 BOOST# CGALtarxvf v5.5.1.tar.gzcdcgal-5.5.1mkdirbuildcdbuild cmake-DCMAKE_INSTALL_PREFIX/opt/cgal-5.5.1..makemakeinstall# BOOSTtarxvf boost_1_81_0.tar.gzcdboost_1_81_0 ./bootstrap.sh./b2./b2install# pgRoutingtarxvf pgrouting-3.4.2.tar.gzcdpgrouting-3.4.2mkdirbuildcdbuild cmake-DCMAKE_INSTALL_PREFIX/opt/pgrouting-3.4.2..makemakeinstall2.5 初始化与启动数据库groupaddpostgresuseraddpostgresmkdir/opt/pgsql/datachownpostgres:postgres /opt/pgsql/datasu- postgres /opt/pgsql/bin/initdb-D/opt/pgsql/data /opt/pgsql/bin/pg_ctl start-D/opt/pgsql/data修改配置文件允许远程连接pg_hba.conf添加host all all 0.0.0.0/0 trustpostgresql.conf设置listen_addresses *配置动态库路径vim/etc/ld.so.conf# 添加 /opt/pgsql/lib、/opt/geos-3.8.0/lib 等路径ldconfig2.6 启用插件CREATEEXTENSION postgis;CREATEEXTENSION postgis_topology;CREATEEXTENSION pgrouting;2.7 安装 Nginx麒麟镜像内置 Nginx rpm 包直接安装cdnginxrpm-ivh*.rpm systemctlenable--nownginx.service创建前端目录并解压 dist 包mkdir-p/home/nvisual-frontend/disttarxvf dist*.tar.gz-C/home/nvisual-frontend/dist2.8 安装 RabbitMQ可选rpm-ivherlang*.rpmrpm-ivhsocat*.rpmrpm-ivhrabbitmq-server*.rpm systemctlenable--nowrabbitmq-server.service rabbitmq-pluginsenablerabbitmq_management2.9 安装 JDK 并启动后端tarxvf jdk-8u321-linux-aarch64.tar.gzcp-rjdk1.8.0_321 /usr/local/# 配置 /etc/profile 添加 JAVA_HOME 等环境变量source/etc/profile# 启动 jar 包nohupjava-Dfile.encodingutf-8-jarnvisual*.jar三、麒麟 V10 SP3 x86_64 部署较新版本3.1 挂载本地 Yum 源mkdir-p/opt/isomount-oloop /opt/Kylin-iso/*.iso /opt/isocat/etc/yum.repos.d/kylin-local.repoEOF [kylin-local] nameKylin Local Repository baseurlfile:///opt/iso enabled1 gpgcheck0 EOFyum clean allyum makecache3.2 安装 JDKyum-yinstalljava-1.8.0-openjdkjava-version3.3 安装 Nginx源码编译yuminstall-ygccmakepcre pcre-devel zlib zlib-devel openssl openssl-develtarxvf nginx-1.28.0.tar.gzcdnginx-1.28.0 ./configure--prefix/usr/local/nginx --sbin-path/usr/sbin/nginx\--conf-path/etc/nginx/nginx.conf --pid-path/var/run/nginx.pid\--with-http_ssl_module --with-http_v2_module --with-threads --with-http_realip_modulemakemakeinstall注册 systemd 服务并启动cat/etc/systemd/system/nginx.serviceEOF [Unit] Descriptionnginx - high performance web server Afternetwork.target [Service] Typeforking PIDFile/var/run/nginx.pid ExecStart/usr/sbin/nginx ExecReload/usr/sbin/nginx -s reload ExecStop/usr/sbin/nginx -s quit Restarton-failure [Install] WantedBymulti-user.target EOFsystemctlenable--nownginx3.4 编译安装 PostgreSQL 13.22yuminstall-yreadline-devel zlib-devel flex bison openssl-devel\libxml2-devel libxslt-devel pam-devel perl-devel systemd-develtarxvf postgresql-13.22.tar.gzcdpostgresql-13.22 ./configure--prefix/usr/local/pgsql-13 --with-openssl\--with-libxml --with-libxslt --with-pam --with-systemdmake-j$(nproc)makeinstall# 安装 contrib 插件cdcontribmakemakeinstall初始化数据库useradd-m-Upostgrespasswdpostgresmkdir-p/usr/local/pgsql-13/datachownpostgres:postgres /usr/local/pgsql-13/datasu- postgres /usr/local/pgsql-13/bin/initdb-D/usr/local/pgsql-13/data--localeen_US.UTF-8注册 systemd 服务并启动。3.5 编译安装 PostGIS 3.6.0较新版本依赖编译使用 cmake 构建# GEOS 3.14.0mkdirbuildcdbuildcmake..makemakeinstall# PROJmkdirbuildcdbuildcmake..makemakeinstall# GDAL 3.8.4mkdirbuildcdbuildcmake..makemakeinstall# protobuf → protobuf-c → postgis创建库符号链接并启用插件。3.6 数据库优化访问 https://pgtune.leopard.in.ua根据服务器配置获取优化参数写入postgresql.conf后重启数据库。四、人大金仓 KingbaseES V8 数据库国产替代4.1 硬件与系统要求项目要求CPUX86、龙芯、飞腾、鲲鹏操作系统麒麟 V10、统信 UOS、中标麒麟、中科方德等内存512MB 以上硬盘10GB 以上空闲/tmp 至少 10G4.2 内核参数配置编辑/etc/sysctl.conf添加fs.aio-max-nr 1048576 fs.file-max 6815744 kernel.shmall 2097152 kernel.shmmax 4294967295 kernel.shmmni 4096 kernel.sem 250 32000 100 128 net.ipv4.ip_local_port_range 9000 655004.3 安装步骤# 创建安装用户useradd-mkingbasepasswdkingbase# 挂载 ISOmountKingbaseES_*.iso ./KingbaseESV8# 图形化安装shsetup.sh-iswing# 或命令行安装shsetup.sh-iconsole关键参数端口54321账户system字符集UTF8兼容模式ORACLE。4.4 启用 PostGIS 与 pgRouting 扩展联系金仓技术人员获取对应补丁包将bin/、lib/、share/extension/目录文件拷贝到数据库安装目录对应位置后执行CREATEEXTENSION postgis;CREATEEXTENSION postgis_topology;CREATEEXTENSION pgrouting;验证安装SELECTPostGIS_full_version();SELECTpgr_version();-- 验证 MVT 功能WITHmvtgeomAS(SELECTST_TileEnvelope(12,513,412)ASgeom)SELECTST_AsMVT(mvtgeom.*)FROMmvtgeom;五、部署 nVisual 软件5.1 前端部署mkdir-p/home/nvisual-frontend/disttarxvf dist*.tar.gz-C/home/nvisual-frontend/dist# 模型库图片包解压至 dist/img/nvisual/ 下配置 Nginx 指向该目录重启 Nginx。5.2 后端部署mkdir/home/nvisual-backend# 上传 jar 包cd/home/nvisual-backend# 修改 application.properties 中数据库连接信息nohupjava-Dfile.encodingutf-8-jarnvisual*.jar5.3 关闭防火墙与 SELinuxsystemctl disable firewalld.servicesed-is/SELINUXenforcing/SELINUXdisabled//etc/selinux/config六、常见问题问题解决方案PostGIS 插件加载报错缺少 .so 文件将编译安装的库路径写入/etc/ld.so.conf并执行ldconfigGDAL 编译报PNG_ARM_NEON_OPT错误在pngpriv.h中#ifndef PNG_ARM_NEON_OPT上方添加#define PNG_ARM_NEON_OPT 0PostGIS 编译报 protobuf-c 版本过低修改 configure 文件插入PROTOC_VERSIONlibprotoc 3.6.1人大金仓 MVT 返回空联系金仓技术人员获取正确的 PostGIS 补丁包 参考来源docs/nvisual/麒麟V10ARM架构编译安装与部署nVisual.mddocs/nvisual/基于国产信创系统部署运行环境.mddocs/nvisual/人大金仓数据库部署文档.md