一起做网游吧【9.5】:补丁,设置服务器地址和端口及网页管理界面更新

首先,代码还在上次的位置,我替换了压缩文件,不用再说,以后也是如此。

前几天,我准备找一个free的地图编辑器,当然,最好是open source的,同时,看看dojo,研究dojo而不是extjs是由于相比来说,dojo的模块划分我比较喜欢,而且,dojo中的测试程序都很有针对性和独立性,这个我比较喜欢。顺便将服务器的管理界面更新了下,修改成了基于dojo的。我对于extjs并没有什么恨意,只是由于不太习惯风格而已,对于extjs比较熟悉的人可能觉得extjs比较好,不管怎么,这只是一个风格而已。顺便提下学习的过程,半天时间来熟悉下小例子,半天时间将界面的布局弄好,一天时间将表格加上,用了各种办法,大概花了两天时间研究出了如何更新表格内容(可能不是正规的方法,谁要是知道的话,还请赐教)。

前段时间,我也又在落灰的wii上安装了erlang,然后将服务器仍在那个上面,运行,然后客户端在切换服务器的时候客户端挂掉!!!,原因在于服务器返回的地址是”127.0.0.1″,这是个比较严重的问题,决定将进入游戏之后的内容稍微缓和一下,反正地图编辑器还没有怎么熟悉,地图的资源也要慢慢找,就顺便的添加了下服务器的IP和端口设定,使服务器启动的时候还是监听本地的”127.0.0.1″,返还给客户端的可以是自定义的IP地址,提供端口设定是考虑到可能需要路由进行端口映射。

先说服务器内容,使用下面的函数可以获得服务器的公网IP,至于能不能公网直接访问,这就要看你的服务器的IP设定了。

       getip() ->
    case http:request(get, {"http://www.ip138.com/ip2city.asp",[]},[],[{version, 1.1}]) of 
        {ok, {{_,Ok,_},_, Content}} ->
            Index1 = string:rstr(Content, "["),
            Index2 = string:rstr(Content, "]"),
            Ip = string:sub_string(Content, Index1+1, Index2-1),
            Ip;
        Other ->
            io:format("~p~n", [Other])
    end.
       

我是从ip138.com获得的公网IP,希望不会带来什么怨言。同时,添加了一个reload函数,因为现在服务器还不是非常的问题,可能由于某些未处理的原因,造成服务器的端口监听关闭,使用下面这个函数可以重新加载。需要传递IP和Port的话,则是根据设定的ip2和port2来判定的:

继续阅读一起做网游吧【9.5】:补丁,设置服务器地址和端口及网页管理界面更新

ubuntu关于apache的用户配置

最近研习javascript的编程方面,为了方便管理,我将apache里面的www目录中,建了一个链接到我自己的某个文件夹下,却发现死活都能不行,总是说权限问题,网上大都说什么selinux之类的问题,我却未用selinux。总也修改不对,后来发现原来是一些权限问题:

首先,修改用户的目录权限为可执行:

       chmod o+x /home/username
       

修改想要链接到/var/www(默认的apache网页根目录)的目录权限(这里是web):

       chmod a+rx /home/username/web
       

这样的话,如果你在/var/www里面建立一个链接到username/web的快捷方式,所有的都可以运行了。想到mac下可以通过~username的方式来运行,ubuntu默认的是~/public_html,建立一个,修改权限(同web),看下是否可以,结果发现可以列出目录,可以看html,但就是没办法运行php,后来在php5在apache2的mods配置中找到答案,默认为/etc/apache2/mods-availabe/php5.conf,mods-enable中的那个仅仅是个链接。打开,注释掉关于mod_userdir.c中的”php_admin_value engine Off”一句就可以了。

linux增加swap分区

这两天在家里整wii上的linux服务器,在编译最新的erlang R14的时候,发现出现了gcc编译错误,说什么gcc的bug,要报告什么的,系统将cc1什么的kill掉了。找遍所有资料,均不见踪影啊,检查了gcc的版本,不是倒霉的4.3.0,从官方的下载R13,也是如此,查看了所有补丁,也没有,我甚至添加了debian的其他的源,然后更新系统,乖乖,下载需要N小时,我远程连着,不能总开着啊,就将电视盒打开,然后更新吧。反正没事也是没事,就编译R14玩吧,中间知道结果的,gcc的bug,在我去看wii的更新情况的时候,突然发现屏幕上出现了些不同寻常的内容:

out of memory: killed process 7785 (cc1)

o(∩∩)o…哈哈,原来是这儿的问题。用free看看,原来没有swap,内存总数也就80+MB,当然不够了,从网上随便找了下,看如何调整swap,一下就从http://www.cnblogs.com/ovliverlin/archive/2007/07/23/828671.html发现了:

       dd if=/dev/zero of=/home/swap bs=1024 count=128000
       mkswap /home/swap
       swapon /home/swap
       

考虑到内存实在太小,SD卡速度不说,容量也并非海量,所以设置了128MB大小的交换磁盘。

最后,添加到fstab表,启动自动启用:

       echo -e "/home/swap    swap    swap    defaults    0    0" >> /etc/fstab
       

这下终于可以顺利进行了。