【教程】搭建咸鱼之王私服,附源码下载

news2024/11/15 10:43:22

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]

教程来自:咸鱼之王源码下载,附安装教程 - 技术控 - YiOVE论坛

一键部署

下载链接:

  • https://pan.baidu.com/s/1t1Aj5zfAjbPVyuKq1jbd2w?pwd=518i 
  • https://pan.baidu.com/s/173jz6BQDjuFY8-CixEs5dg?pwd=rrr6

虚拟机服务器ip是 192.168.1.225 自己根据自己的网络环境调
启动命令是 
cd /root/
./run.sh
游戏地址 192.168.1.225:82
后台 192.168.1.225:88

手工部署一

也是前面的链接,用的是“手工端home.zip”。
1、安装宝塔

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

输入y回车确认安装

-----------------------------------------------------------------------------------------------------------------------------------
安装环境:
Nginx 1.18
mysql 5.7
PHP 7.2
mongo4.0  关闭安全验证
redis5.0 
-----------------------------------------------------------------------------------------------------------------------------------
宝塔放行端口:1-65535  或单独放行 82,85,8889 自行抓包!

关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld

-----------------------------------------------------------------------------------------------------------------------------------
上传服务端压缩文件到home目录,解压

cd /
unzip home.zip

-----------------------------------------------------------------------------------------------------------------------------------
安装openresty1.19.3.1

cd /home/proj
wget https://openresty.org/download/openresty-1.19.3.1.tar.gz
tar -zxvf openresty-1.19.3.1.tar.gz

mv openresty-1.19.3.1 openresty
cd openresty

sudo apt-get install libpcre3-dev \
libssl-dev perl make build-essential curl unzip -y

sudo yum install -y pcre-devel openssl-devel

./configure
make
make install

echo "openresty环境变量"
echo "PATH=/usr/local/openresty/bin:/usr/local/openresty/nginx/sbin:$PATH
export  LC_ALL=en_US.UTF-8
export PATH" >> ~/.bash_profile
source ~/.bash_profile

-----------------------------------------------------------------------------------------------------------------------------------
设置数据库密码为:123456
导入数据库

mysql -uroot -p123456
create database sanguo DEFAULT CHARACTER SET utf8;
flush privileges; #
use sanguo
source /home/sql/sanguo.sql
exit;

-----------------------------------------------------------------------------------------------------------------------------------
宝塔添加站点:

IP:85端口
网站目录指向:/home/proj/goserver/admin/assets/web/dist

127.0.0.1:82端口
网站目录指向:/home/proj/web-mobile
-----------------------------------------------------------------------------------------------------------------------------------
修改服务端IP:替换192.168.0.152为你自己的ip
\home\proj\common\settings.lua (2 hits)
\home\proj\goserver\admin\assets\web\.env.development (1 hit)
\home\proj\goserver\admin\assets\web\dist\js\app.3d18e251.js (2 hits)
\home\proj\goserver\admin\assets\web\dist\js\highlight.js.0adc4c0f.js (1 hit)
\home\proj\goserver\agent_admin\agent_assets\web\.env.development (1 hit)
\home\proj\goserver\agent_admin\agent_assets\web\dist\js\app.bfd4e5a3.js (2 hits)
\home\proj\goserver\agent_admin\agent_assets\web\dist\js\highlight.js.0adc4c0f.js (1 hit)
\home\proj\pyapi\wxpay\app.py (1 hit)
\home\proj\web-mobile\assets\main\index.bcc80.js (3 hits)
\home\proj\web-mobile\assets\resources\import\24\241bc4ec-587f-41fa-a24d-e904c5f906c6.9f804.json (1 hit)

find /home/proj/ -type f -name '*.*' | xargs sed -i 's/192.168.0.152/你的IP/g'
find /home/proj/ -type f -name '*.py' | xargs sed -i 's/192.168.0.152/你的IP/g'
find /home/proj/ -type f -name '*.js' | xargs sed -i 's/192.168.0.152/你的IP/g'
find /home/proj/ -type f -name '*.development' | xargs sed -i 's/192.168.0.152/你的IP/g'

-----------------------------------------------------------------------------------------------------------------------------------

chmod 777 -R /home/proj/

启动服务器
启动apiserver
启动

cd /home/proj/apiserver
nginx -p `pwd` -c conf/nginx.conf 

重启

nginx -p `pwd` -c conf/nginx.conf -s reload 

停止

nginx -p `pwd` -c conf/nginx.conf -s stop 

启动gameserver

cd /home/proj/skynet
sh getkey.sh

生成key,后面的串码复制后黏贴到本目录下面的key.txt里面后保存

./skynet ../loginserver/prodconfig //启动登录服务器
./skynet ../gameserver/prodconfig //启动游戏服务器
kill -9 `cat loginskynet.pid` //停止登录服务器
kill -9 `cat gameskynet.pid` //停止游戏服务器

启动goserver

cd /home/proj/goserver
./mygo //启动管理后台服务

-----------------------------------------------------------------------------------------------------------------------------------
游戏地址
http://IP:82/?id=646415
链接id后面的数字是账号随便填

后端地址:
http://Ip:85/#/login?next=%2F
数据库sys_auth_user.password修改成VNgFfka8Or4=
账号:admin
密码:admin
登陆后到 游戏配置-区服配置 新增一个大区 再点开服,默认保存就行,开服活动自行研究
 

手动部署二

旧版教程。源码下载:https://mjj.baota.sbs/xyzw.7z

安装教程

环境:ubuntu20

1. 环境配置

1、安装 openresty1.19.3.1

apt-get install libpcre3-dev libssl-dev perl make build-essential curl
wget https://openresty.org/download/openresty-1.19.3.1.tar.gz
./configure
make
make install

2、设置 openresty 执行目录到 path 中

1、新建或者编辑 ~/.bash_profile
vi ~/.bash_profile

2、添加以下内容
PATH=/usr/local/openresty/bin:/usr/local/openresty/nginx/sbin:$PATH
export  LC_ALL=en_US.UTF-8
export PATH

3、保存文件后,执行 source ~/.bash_profile 将PATH修改掉

3、安装 skynet1.6

下载源码包:https://gitee.com/mirrors/skynet?_from=gitee_search
apt-get install git autoconf

4、安装 go1.18

wget https://studygolang.com/dl/golang/go1.18.10.linux-amd64.tar.gz
tar -C /usr/local -xvf go1.18.10.linux-amd64.tar.gz

5、安装 docker

apt-get install docker.io

6、安装 mysql 数据库

mkdir /data/mysqldb_dir   # 创建宿主机mysql数据目录

docker pull mysql:5.7.27 # 拉取mysql镜像

# 创建docker容器 yourpassword 是你自己的mysql的密码 10.148.0.10替换为服务器内网ip
docker run --name mysql -e MYSQL_ROOT_PASSWORD=admin123456! -v /data/mysqldb_dir:/var/lib/mysql -p ip:33061:3306 -d mysql:5.7.27 

7、安装 redis 数据库

mkdir -p /data/redisdb_dir  /data/queuedb_dir # 创建宿主机redis数据目录

docker pull redis:5.0 # 拉取redis镜像

docker run --name redis  -v /data/redisdb_dir:/data -p inner_ip:63791:6379 -d redis:5.0 --appendonly yes # 创建docker容器 inner_ip替换为服务器内网ip

docker run --name queue  -v /data/queuedb_dir:/data -p inner_ip:63801:6379 -d redis:5.0 --appendonly yes # 创建docker容器 inner_ip替换为服务器内网ip

8、安装 mongo 数据库

/data/mongodb_dir   # 创建宿主机mongo数据目录

docker pull mongo:4.0.10 # 拉取redis镜像

docker run --name mongo  -v /data/mongodb_dir:/data/db -p inner_ip:32787:27017 -d mongo:4.0.10 # 创建docker容器 inner_ip替换为服务器内网ip

2. 注意事项

  1. 从网上下载开源版本 skynet,编译好后将 skynet 可执行文件复制到 /data/proj/skynet 下进行替换,可绕过 key 验证
  2. 如果需要定制引擎功能,要保证 /data/proj/skynet/cservice/caoi.so 不被覆盖
  3. 使用扩展方式开发 C 代码扩展引擎功能

3. 上传代码

  1. mkdir /data/proj
  2. 上传 config 文件夹到 /data/proj/ 下, 并修改 prod.toml 文件
  3. 上传 apiserver 文件夹到 /data/proj/ 下, 并将 depnginx.conf 替换成 nginx.conf
  4. 上传 loginserver 文件夹到 /data/proj/ 下
  5. 上传 gameserver 文件夹到 /data/proj/ 下
  6. 上传 common 文件夹到 /data/proj/ 下
  7. 上传 skynet 文件夹到 /data/proj/ 下
  8. 上传 pyapi 文件夹到 /data/proj/ 下

4. 修改配置信息

1、/data/proj/common/settings.lua

1.1 更换mongodb数据库名

M.mongodb_tb = {
    game = "game", # 将此处的game改成leshusanguo(二开可以自定义名称)
}

1.2 更换ip,换成自己机器的公网 ip -- 暴露给客户端的连接信息 (外网IP)

 if M.debug then
    M.nodes['gameserver1'].host = "192.168.3.15"
 else
    M.nodes['gameserver1'].host = "you_ip"
 end

2、/data/proj/common/setting/settings_template.lua

  1. 将ip换成内网或者外网ip(如果docker启动监听在内网则填写内网ip,外网则填写外网ip)
  2. port换成对应的端口,比如 mysql 的 3306换成33061,取决于 docker 启动时监听的端口号,可自定义
  3. 数据库相关的账户名和密码

3、/data/proj/config/prod.toml (生产环境),/data/proj/goserver/conf/dev.toml(测试环境)

  1. 同样将ip和端口号换成自己的
  2. 注意修改mysql的账户名密码

5. 启动源码

5.1 启动apiserver

cd /data/proj/apiserver

nginx -p `pwd` -c conf/nginx.conf //启动

nginx -p `pwd` -c conf/nginx.conf -s reload //重启

nginx -p `pwd` -c conf/nginx.conf -s stop //停止

5.2 启动gameserver

cd /data/proj/skynet

./skynet ../loginserver/prodconfig //启动登录服务器

./skynet ../gameserver/prodconfig //启动游戏服务器

kill -9 `cat loginskynet.pid` //停止登录服务器

kill -9 `cat gameskynet.pid` //停止游戏服务器

5.3 启动goserver

cd /data/proj/goserver

./mygo //启动管理后台服务

5.4 启动pyapi(这个可暂时不用管,很简单,就是用来支付的)

cd /data/proj/pyapi/kefu

python main.py //启动客服服务

cd /data/proj/pyapi/wxpay

sh start.sh //启动微信支付服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1481516.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux下gcc编译常用命令详解

在Linux环境下,使用gcc编译器进行源代码的编译是程序员日常工作的一部分。本篇将介绍一些常用的gcc编译命令,帮助开发者更好地理解和使用这些命令。 1. 基本编译命令 gcc工作流程: 编译单个源文件 gcc source.c -o output这个命令将sour…

flutter弹窗动画,Android项目开发如何设计整体架构

接下来我们针对字节跳动Android中高级面试展开的完整面试题 Handler 相关知识,面试必问! 常问的点: Handler Looper Message 关系是什么? Messagequeue 的数据结构是什么?为什么要用这个数据结构? 如何在…

MIT6.828操作系统工程实验学习笔记(一)

写在前面 本系列文章将会尝试以学习笔记的形式展开,即每篇文章都没有一个明确的主线,主要是堆砌实验过程中遇到的知识点和解决的问题 本系列涉及的学习对象是MIT面向研究生开设的操作系统工程课程的Lab部分,该课程的编号为MIT6.828 &#xf…

浅谈 Linux 孤儿进程和僵尸进程

文章目录 前言孤儿进程僵尸进程 前言 本文介绍 Linux 中的 孤儿进程 和 僵尸进程。 孤儿进程 在 Linux 中,就是父进程已经结束了,但是子进程还在运行,这个子进程就被称作 孤儿进程。 需要注意两点: 孤儿进程最终会进入孤儿院…

frp 内网穿透 linux部署版

frp 内网穿透 linux部署版 前提安装 frp阿里云服务器配置测试服务器配置访问公网 前提 使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过访问公网 IP 直接可以访问到内网的测试环境。准备如下: 公网 IP已部署好的测试服务 IP:端口号阿…

Linux系统部署前后端分离项目

一、Nginx简介 1.1 什么是nginx? Nginx(发音同"engine x")是一个高性能的反向代理和 Web 服务器软件,最初是由俄罗斯人 Igor Sysoev 开发的。Nginx 的第一个版本发布于 2004 年,其源代码基于双条款 BSD 许可证发布&am…

人脸高清算法GFPGAN之TensorRT推理

1. 综述 最近由于做数字人项目,采用的是wav2lip GFPGAN进行人脸面部高清,但GFPGAN模型本身比较大,所以想着使用TensorRT来代替原始的pth推理看看能否提升运行速度,于是便开始了这趟windows1之下进行GFPGAN的trt推理的折腾之旅。…

Python Web开发记录 Day5:jQuery(JavaScript库)

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 五、jQuery1、jQuery-选择器和菜单案例①快速上…

看视频,学习使用MindOpt APL 建模语言编码数学规划问题,练习语法,实战拿奖品

活动介绍 活动名称:看视频,补充代码,拿精美礼品 活动规则: 浏览视频学习MAPL,完善“例题”。需要完善的内容:补充约束条件、读取csv表格数据,将决策变量的取值输出为csv表格,验证一…

leetcode 热题 100_最长连续序列

题解一: 哈希表:找连续最长的数字序列,很容易联想到排序,但排序的时间复杂度O(nlogN)过大,判题容易超时。因此我们需要使用哈希表来快速查找,序列中是否存在与某个数相邻的数。用HashSet建立哈希表并去重&a…

【.NET Core】深入理解IO - FileSteam流

【.NET Core】深入理解IO - FileSteam流 文章目录 【.NET Core】深入理解IO - FileSteam流一、IO流概述二、文件流FileStream2.1 FileStream概述2.2 FileStream检测流位置更改2.3 FileStream构造函数2.4 FileStream常用属性2.5 FileStream.Read方法2.6 FileStream.Write方法2.7…

逻辑漏洞(pikachu)

#水平,垂直越权,未授权访问 通过个更换某个id之类的身份标识,从而使A账号获取(修改、删除)B账号数据 使用低权限身份的账号,发送高权限账号才能有的请求,获得其高权限操作 通过删除请求中的认…

Python学习DAY09_文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。 在 Python 中实现文件的读写操作其实非常简单,通过 Python 内置的 open 函数,我们可以指定文件名、操作模式、编码信…

物联网主机E6000引领工业自动化的新篇章

E6000——多协议、多接口的全能战士 在工业4.0的大潮中,物联网的应用正在逐步深入到各个领域。而E6000物联网主机就是其中的佼佼者,它以其卓越的性能和强大的功能,成为推动工业自动化发展的一股重要力量。 E6000是一款多协议、多接口的物联…

Tomcat安装,配置文件、组件

一、Tomcat的基本功能 1.1.Tomcat是什么? Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。一般来说,T…

【Django】执行查询—跨关系查询中的跨多值关联问题

跨多值查询 跨越 ManyToManyField 或反查 ForeignKey (例如从 Blog 到 Entry )时,对多个属性进行过滤会产生这样的问题:是否要求每个属性都在同一个相关对象中重合。 filter() 先看filter(),通过一个例子看&#xf…

mysql,for循环执行sql

遇到一个问题,我需要模拟上百万数据来优化sql,线上数据down不下来,测试库又没有,写代码执行要么慢要么就是sql语句太长。 于是,直接用mysql自带的功能去实现! 简单而简单 mysql可以for循环?没…

vue中将某个不太规则的json转成对象,或者将对象转成json字符串

vue中将某个不太规则的json转成对象,或者将对象转成json字符串 以我自己做的项目某个不规则的json为例 将json对象转成json字符串: JSON.stringify(jsonData); 将不规则json字符串转成对象并获取对应的属性的值: JSON.parse(jsonData).Name…

机器学习项目外包注意事项

将机器学习项目外包给外部团队或合作伙伴是一种常见的做法,特别是当您的团队缺乏特定领域的专业知识或资源时。以下是一些关于机器学习项目外包的要点和注意事项,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司&#…

JavaScript new、apply call 方法

new、apply、call、bind JavaScript 中的 apply、call和 bind 方法是前端代码开发中相当重要的概念,并且与 this 的指向密切相关 new new 关键词的主要作用 就是执行一个构造函数、返回一个实例对象 根据构造函数的情况,来确定是否可以接受参数的传递…