分类目录归档:Internet

php-cgi莫名其妙的崩溃

homeserver通过FastCGI协议与php-cgi进程进行通信来执行php脚本文件。
一直以来都发现php-cgi进程不是很稳定,可能是我在实现协议上有不当的地方。运行一段时间后,例如一两天,phpcgi进程就会自动结束,也不留下任何相关信息。
目前,我通过写批处理文件,在进程结束后自动建立新进程来临时解决这个问题。之前在windows上是写一个批处理文件,然后copy几万行执行命令,这样就相当于无止境地执行。
在Linux上做的更简单,可能是我不知道在windows的批处理里怎么写循环。

#!/bin/bash
while true
    echo “Starting php server …”
    php-cgi -b 127.0.0.1:8080
    echo “Server exited. Restart it …t”
    sleep 10s
done

为啥要sleep 10s呢?因为php-cgi进程异常结束了,socket还在占用着8080端口,如果不睡眠一下,那么会耗尽CPU资源,知道端口能够使用。这样可能导致日志文件的体积疯狂增长,直到硬盘资源枯竭而止。。。

博客搬家到美国了

现在博客使用一个美国宾夕法尼亚州的主机,所以不要惊讶访问本站的响应速度突然变得慢了很多。只是响应很迟钝,传输速度上还是没多大问题的,至少下载一个图片不会让你等很久。

为什么要把博客搬家呢?

也许很简单,因为现在用的是一个Linux服务器。现在用起来觉得比Windows安全很多。为什么呢?

其实也怪我笨。用了都快七八年的Windows操作系统,现在我对它的安全机制却一无所知。例如假设一个php的apache服务器,用webshell竟然可以对服务器硬盘意淫。

可能是我没有学过如何配置一个Windows Server。我菜鸟,我幸福!

也有可能而且很可能是Windows把太多东西都隐藏起来了而不让你们知道,所以我一直没有接触过。这就很好地解释了为什么那么多注入windows内幕之类的书呢。。。

总之,觉得Linux很好用。我不用windows也不仅仅是因为安全问题,至少我很长时间没有被XX捉弄过(4年来用同一个的盗版xp,还没有中国病毒,也没有重装过系统)。

现在的服务器装着CentOS,配置了一个专门运行服务器的受限用户,另外还给每个站点分配一个用户。运行程序可以方便地限制程序使用的内存,CPU,IO等资源,真好!

贴一下服务器的配置:
[xiaoxia@home ~]$ cat /proc/cpuinfo
processor     : 0
vendor_id     : GenuineIntel
cpu family     : 6
model         : 15
model name     : Intel(R) Xeon(R) CPU         X3220 @ 2.40GHz
stepping        : 11
cpu MHz         : 2400.090
cache size     : 4096 KB

processor     : 1
vendor_id     : GenuineIntel
cpu family     : 6
model         : 15
model name     : Intel(R) Xeon(R) CPU         X3220 @ 2.40GHz
stepping        : 11
cpu MHz         : 2400.090
cache size     : 4096 KB

[xiaoxia@home ~]$ cat /proc/meminfo
MemTotal:     1488000 kB
MemFree:     1303632 kB

内存好像是动态变化的,好神奇。但提供商说保证至少有512M。

别看这个CPU以为很强大的服务器了,更强大的见下图:

悲剧

“该主页虽然号称使 html 更加易于阅读,但是犯了一个相当严重的错误:在 doctype 声明之前不应该有其他字符,包括注释”

鄙视CSDN上某些人不加考察就说我的主页代码不规范,注释出现在DOCTYPE前。
什么叫不规范呢? DOCTYPE前不放注释才叫规范么? W3C有这个规定吗? 不学学国际标准,就凭那老套的IE经验就嚣张地说别人的html不规范了。
悲剧啊~~~
IE是宣扬叛逆、不服从标准的典型例子。我也不会为了能够在它上面完美显示而在代码里添枝加叶。

顺便给一个例子,一段CSS,在IE发生了问题:
http://www.gtalbot.org/BrowserBugsSection/MSIE8Bugs/comment-before-doctype-strict-dtd.html

博客支持RSS订阅了

花了一个晚上, 终于让我写好了RSS 2.0的生成代码。

具体格式可以参照http://en.wikipedia.org/wiki/RSS。

使用RSS,可以方便大家查看博客的新文章,不需要打开博客地址也可以在RSS Reader里看到更新信息。

其实,我主要是参照ForeverBell(此处提及仅作参考资料,无任何个人崇拜意味)博客的RSS设计。具体地址是:

http://hi.baidu.com/foreverbell_/rss

另外,发表一个大胆的假想:Google Reader订阅的RSS貌似是多个人共享的。例如我订阅了ib的RSS,发现文章Received Time不是当前时间,而是在ib发表文章时间的左右。这可能是已经订阅过的人已经收到这个文章了。嗯,如此共享一个站点的RSS,可以节约很多资源。

新的个人主页做好了,用旧的数据库

上个月开始发现服务器经常不能上,前一段时间就更严重了,连续好多天都打不开了。等奥运闭幕,我们补课结束,有点时间后,上虚拟主机的后台瞧瞧。

我和客户联系了几天,有一个特别无奈,我叫他帮我备份我的数据库,结果他整天下午几次都说两个字“等下”,一开始我还挺有耐心,因为我期盼他能很快做到,结果在电脑前等到了网上还没完成。

更伤心的是,最终我发现他们服务器上的数据库文件少了3个,idea.MYI,idea.MYD,forum.MYD,forum.MYI,website.MYI,website.MYD。我不知道怎么会发生这种事情,莫非我主页被人黑?那也删不了mysql的文件吧。

我上网搜搜,网页有相关的显示说可能是由于服务器停电或非法关机引起。我想那管理员也不会乱把用户的文件删除,所有就算了。其实我以前做空间服务的时候,服务器也经常出问题,有些问题可能比较难避免,除非是很专业的,否则也没有人原因经常在服务器旁呆着。

我决定做个新的网站了,其实很早就有这样的计划,只是没有时间。这次被迫进行了。以前想不到这次我会用自己的服务器来存放主页了,原来的webqq服务器升级为动态插件加载式运行,我的主页的数据库操作也做成了一个插件,数据库用的是几年前我写的PrettyText(C++),还挺不错。cwebserver也增加了一个守护进程,希望有严重错误的时候不要弹出个对话框,直接结束了算了。呵呵!也希望不要再发生数据丢失的问题了,否则我宝贵的文笔啊……

这是新站的第一篇发表。

New Years, New Scam!!

最近收到一位自称非洲一间银行行长的奇怪邮件,说是在他的银行里有位死了的客户遗留下15万美元未有处理,想要给我,并且等他退休后和我分享。天下间哪有这种快事?一看就是不义之财,绝对是个诡计。文字内容表达的还挺可怜的,但英文书写却一点也不规范。

继续阅读