当前位置: 首页 > 工具软件 > FlyFish > 使用案例 >

Ubuntu搭建Flyfish数据可视化平台

荣沈义
2023-12-01
  • 搭建平台

    搭建流程基于下面的系统和软件平台,其他未作测试.

    • Ubuntu 20.04 x64
    • Oracle VM VirtualBox
    • Mysql 8.0.x
    • Redis
    • Nodejs 16.2.0
    • npm7.13
    • nginx1.20.1
  • 参考文档

    • Flyfish开源中国 中的README.md, 方案三 (目前主机的硬件不支持Docker需要的二级地址转换).
  • 步骤:

    • 安装redis
      • apt-get install redis-server;
      • 进入redis配置文件目录 /etc/redis, 找到 redis.conf, 修改其中的 bind 127.0.0.1bind 0.0.0.0, 这样可以使用非主机访问;
      • 其他根据需要修改
    • 安装Mysql
      • apt-get install mysql-server;

      • 安装完成后 使用 mysql命令登入, 或者 mysql -uroot -p(已经设置的密码的情况下);

      • 根据Readme的指示:

           create database IF NOT EXISTS flyfish;
           create user 'fish'@'%' identified by 'Fish@1234';  -- 后台数据库的登录账号密码
           grant all privileges on *.* to 'fish'@'%';
           flush privileges;      
        
      • 修改 ./config/database.*.json, 修改IP为本机IP, User, Password, 共两个文件;

      • 修改 ./src/common/config/ 中的 adapter.js, adapter.development.js, 修改IP为本机IP, User, Password;

      • 应该可以使用 0.0.0.0,未作尝试;

      • 如果Mysql是8.0.x版本, 修改 /etc/mysql/mysql.conf.d 中的 mysqld.conf, 添加default_authentication_plugin = mysql_native_password,因为在8.0之后的版本, mysql使用了更加安全的密码的验证方式,会导致Flyfish无法使用上面的账号密码登录;

    • 安装nodejs, npm
      • curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -安装服务过程中,出现错误信息,需要node的版本不低于12.0;
      • sudo apt-get install -y nodejs
      • apt install npm
      • npm -g install n
      • n v16.2.0指定nodejs版本, 低版本的属于Mac平台fsevents包会导致一些意外的错误,我直接升到了最新的LTS版本;
      • npm install -g db-migrate
      • npm install db-migrate-mysql
    • 初始化flyfshi数据库的表结构
      • npm run init_database_dev, 这个命令需要db-migrate 和db-migrate-mysql 的支持;
    • 安装Flyfish服务
      • bash scripts/flyfish-startup.sh,自动寻找linux下的安装脚本;

      • 注意,在Mac平台下,.sh脚本中执行了,```npm run dev`` 的命令,而linux平台下需要在安装完成后执行此命令,以运行服务;

      • 安装nodejs和npm版本的替换是为了处理安装过程中的报错;

      • 如果脚本执行过程中没有任何报错, 只是有一堆Warning或者Notice,不用理会,直接 npm run dev;

      • npm 启动服务时也会报一些错误,但是应该没有影响服务运行(并不确定,测试使用的功能目前未出现问题);

      • 如果可以, 在安装服务的机器上打开浏览器 访问 http://127.0.0.1:8364,进入登录页面,然后可以使用注册…功能进入.

    • Nginx 解决无法在其他机器上访问Flyfish服务的问题

      Flyfish中大量的请求指向的IP都是 127.0.0.1, 涉及的文件大概40个,其他机器访问时, 127.0.0.1并不能处理任何请求

      • 在需要访问Flyfish的机器上, 解压Nginx, 修改配置文件nginx.conf, 在http 段中添加:

        server {
        		# 这个是flyfish服务访问的端口
                listen       8364;
                # 这个地方必须写127.0.0.1, 欺骗浏览器, 避免跨域请求错误,
                server_name  127.0.0.1;
                # 这一段 可能 也许 不用加
        		add_header 'Access-Control-Allow-Origin' '*';
        		add_header 'Access-Control-Allow-Credentials' 'true';
        		add_header Cache-Control private;
        		add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        		add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
                location / {
        	
        			proxy_pass http://(这个是flyfish所在机器的IP):8364;
                }
        	}
        
      • Nignx根目录下保存bat文件, 启动nginx:

        cd %~dp0
        
        nginx.exe -s stop
        start nginx.exe 
        
      • 此时同样访问 http://127.0.0.1:8364,通过此方法,可以在内网的任何一台机器上访问同一个Flyfish服务,如果有必要的话.

 类似资料: