前言 long long ago , 大概是十年前,Ogame 银河帝国国服还活着的时候, 玩的不亦乐乎, 后来国服没了, 转战台服, 起步晚, 根本搞不赢老僵尸们 ~, 于是弃之! 缘起 最近闲来无事翻 sourceforge 的仓库时候, 惊鸿一瞥开源项目 [链接], 卧槽, 这不就是我那魂牵梦绕的 Ogame 银 ..

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

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

前言

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 已经开源了多款产品:PipeSoloSymWide 等,欢迎大家加入,贡献开源。

    1902 引用 • 3623 回帖 • 592 关注
  • 私服
    1 引用 • 9 回帖
  • 游戏

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

    85 引用 • 640 回帖 • 106 关注
  • 个人
    3 引用 • 17 回帖
9 回帖   
请输入回帖内容...
  • scorpion  

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

  • washmore API  

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

    1 回复
  • lijp        

    访问地址嘞?

  • lijp  
  • lijp  

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

  • washmore API  

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

  • alanfans  

    linux 走起

  • wisepanda  

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

  • washmore API  
请输入回帖内容 ...