搭建 Ogame 银河帝国服务器的那些事儿 ~

本贴最后更新于 2503 天前,其中的信息可能已经渤澥桑田

前言

long long ago ,大概是十年前,Ogame 银河帝国国服还活着的时候,玩的不亦乐乎,后来国服没了,转战台服,起步晚,根本搞不赢老僵尸们~,于是弃之!

缘起

最近闲来无事翻 sourceforge 的仓库时候,惊鸿一瞥开源项目 xNova One,卧槽,这不就是我那魂牵梦绕的 Ogame 银河帝国嘛!!!源代码在这了,何不自己起一个服务器呢?

准备

down 下来代码后,略一查看,PHP 语言开发的应用,好嘛,手上刚好有富余一台 win03 的服务器(别问我为什么是 win03),nginx+php+mysql 可以试试呗,WNMP 走起~

碰壁

从网上连续下载了几个版本的 wnmp 软件,安装的时候均失败,究其原因,还是 win03 太老了哎,vc9 的环境,高版本的软件基本不支持了

折腾

一键安装的憧憬破灭了,没办法,只能慢慢折腾咯,首先下载 PHP5.4.X(5.5 以上的不支持 WIN03)解压,按照网上一艘一大把的帖子修改几个默认项,保证 php-cgi.exe 能正常运行即可,然后是 Mysql5.2.X(高的版本没试,这么老的系统不要作死),最后是 nginx1.13.1 最新发行版

安装&配置

新建文件夹 D:\php 将 PHP 解压至此文件,修改 php.ini-developement 文件重命名为 php.ini,修改几个默认项(此处略,我不是 PHP 开发,直接抄网上的修改即可),创建文件夹 D:\php\html,解压 xNova 文件夹至 D:\php\html 下,路径为 D:\php\html\xNova;

nginx 安装略,说一下启动 fastcgi 支持 php 解析的配置

	upstream fastcgi_backend {
		server 127.0.0.1:9000;
	}
    server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        root   D:/php/html/xNova;
		index  index.html index.htm index.php;


        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            fastcgi_pass   fastcgi_backend;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
			include        fastcgi_params;
        }

        ## Static files
        location ~* \.(?:css|gif|htc|ico|js|jpe?g|png|swf)$ {
            expires max;
            log_not_found off;
            ## No need to bleed constant updates. Send the all shebang in one
            ## fell swoop.
            tcp_nodelay off;
            ## Set the OS file cache.
            open_file_cache max=1000 inactive=120s;
            open_file_cache_valid 45s;
            open_file_cache_min_uses 2;
            open_file_cache_errors off;
        }

        ## Keep a tab on the 'big' static files.
        location ~* ^.+\.(?:ogg|pdf|pptx?)$ {
            expires 30d;
            ## No need to bleed constant updates. Send the all shebang in one
            ## fell swoop.
            tcp_nodelay off;
        }

    }	

启动

启动 nginx,
启动 php-cgi.exe

php-cgi.exe -b 127.0.0.1:9000 -c D:\php\php.ini

浏览器访问 http://localhost
激动人心的时刻到了,OK,页面成功打开,大功告成!!后续就是进入了游戏安装步骤,按照页面指引即可,进去页面之后,点击 install,( ′◔ ‸◔`)咦,没反应,再点,还是没反应...查看 nginx 错误日志发现,原来是 php-cgi.exe 进程数不够,无法响应来自页面的并发访问,于是继续启动进程

php-cgi.exe -b 127.0.0.1:9001 -c D:\php\php.ini
php-cgi.exe -b 127.0.0.1:9002 -c D:\php\php.ini
php-cgi.exe -b 127.0.0.1:9003 -c D:\php\php.ini

同时修改 nginx 配置中的负载

	upstream fastcgi_backend {
		server 127.0.0.1:9000;
		server 127.0.0.1:9001;
		server 127.0.0.1:9002;
		server 127.0.0.1:9003;
	}

重启 nginx,再次访问页面,install,按照步骤配置好游戏数据库,然后就可以愉快的玩耍啦!!

结局

玩了一会儿之后,睡觉去也,第二天醒来一看,游戏服务器已经挂了,仔细一看,4 个 php-cgi.exe 进程全挂了,百度谷歌一下,原来是 php-cgi.exe 进程响应一定次数后就会自动结束,这可咋整,win03 下又没有 linux 上的 php-fpm 这样的 cgi 进程管理工具,
两种解决方案,第一个是手写一个 win 进程作为 php-cgi.exe 的守护进程,检测其活动数量,发现减少后及时重启补足数量,自行百度,另一种方案是使用别人写好的脚本,我搜索到了一个 xxfpm 的小玩意,类似于 php-fpm,能够自行维护 php-cgi.exe 进程,按照其使用方式配置后,一切回复正常,又能愉快的玩耍了!

TIPS

游戏网址请自行查看博客友链,欢迎来玩,100 倍变速超爽,游戏内私信 washmore,免费氪金!!!不欢迎其他恶意行为!!!

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1083 引用 • 3461 回帖 • 285 关注
  • 私服
    1 引用 • 9 回帖
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    169 引用 • 799 回帖 • 1 关注
  • 个人
    4 引用 • 27 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • scorpion

    厉害了我的哥,待我也自己搭一个爽一下 😏

  • someone

    来我服务器先玩着嘛```

    1 回复
  • lijp

    访问地址嘞?

  • lijp
  • lijp

    会不会人多把你服务给撑爆 😄

  • someone

    唔 PHP的这块儿单独开了6个cgi进程,挂了顶多影响这个游戏服务器,nginx配置了快速失败策略,应该不会拖垮java部分 比如博客,maven仓库,等等

  • alanfans

    linux 走起

  • wisepanda

    源码怎么有?我想弄个自己班的班服❤️

请输入回帖内容 ...