Solo  当前访客:367 登录 注册

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

前言

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,免费氪金!!!不欢迎其他恶意行为!!!

17-06-19 19:49 washmore
标签: , , , ,
wisepanda
18-02-15 19:02 回复»

源码怎么有?我想弄个自己班的班服:heart:

alanfans
17-06-20 14:47 回复»

linux 走起

washmore
17-06-20 10:07 回复»

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

lijp
17-06-20 08:05 回复»

会不会人多把你服务给撑爆 :smile:

lijp
17-06-20 08:05 回复»

访问地址:http://ogame.washmore.tech/

lijp
17-06-20 08:03 回复»

访问地址嘞?

washmore
17-06-20 01:02 回复»

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

scorpion
17-06-19 23:07 回复»

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

validate
TOP