搭建流程基于下面的系统和软件平台,其他未作测试.
apt-get install redis-server
;/etc/redis
, 找到 redis.conf, 修改其中的 bind 127.0.0.1
为 bind 0.0.0.0
, 这样可以使用非主机访问;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无法使用上面的账号密码登录;
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
npm run init_database_dev
, 这个命令需要db-migrate 和db-migrate-mysql 的支持;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
,进入登录页面,然后可以使用注册…功能进入.
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服务,如果有必要的话.