前言
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,免费氪金!!!不欢迎其他恶意行为!!!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于