PHP-FPM 是一个优秀的 PHP 进程管理器。在高负载站点上,我们使用 lighttpd 以及 PHP-FPM 处理 Web 请求。
然而最近我们发现 lighttpd 几乎每天都会报错,此时 PHP 请求全部不处理,而 PHP 进程却健在。百思不得其解,看到 lighttpd 的日志大概如下


2011-10-30 09:20:01: (mod_fastcgi.c.2566) unexpected end-of-file (perhaps the fastcgi process died): pid: 0 socket: tcp:127.0.0.1:9000
2011-10-30 09:20:01: (mod_fastcgi.c.3354) response not received, request sent: 1795 on socket: tcp:127.0.0.1:9000 for /index.php?, closing connection

而 PHP-FPM 的日志里却一点也没有痕迹。重启 PHP-FPM 一切正常。

UNIX 系统 listen() 函数将 sockfd 对应的 socket 标记为被动 socket。TCP连接模型中,服务器是被动连接的。 listen() 函数有请求数量限制,即为 backlog. 下面是 listen() 函数的用法:

int listen(int socket, int backlog);

这里的 backlog, 原文解释如下:

The backlog parameter defines the maximum length for the queue of pending connections. If a connection request arrives with the queue full, the client may receive an error with an indication of ECONNREFUSED. Alternatively, if the underlying protocol supports retransmission, the request may be ignored so that retries may succeed.

问题真相大白。修改 php-fpm 的配置文件,设定 backlog 为 -1 即可。注意查看 max-file (/proc/sys/fs/file-max)的值。这里有一篇详细的关于文件描述符的文章。

MMSEG 是一个开源的中文分词项目。在我们的应用开发中,我们使用了 mmseg 完成中文分词的任务。本程序是用 C++ 编写的,但是不提供 UNIX 下的 Makefile。
在 Coreseek 项目中包含了一个 mmseg,并提供了 Python 试验程序以及 mmseg 的 GNU Autotools 脚本,可以方便的进行 configure – make – make install 形式的安装。但是,其 Python 绑定并没有提供相应的脚本。为了解决这个问题,我写了一些 Python 脚本辅助进行这项编译过程。
首先,从 Coreseek 项目中下载回 Coreseek,并解包,进行 mmseg 的编译。注意应当先执行./bootstrap
其次,进入 src/css 目录,编译 libcss。这里,我使用的编译脚本如下:

g++ -I. -I../ -I../utils/ -L/usr/local/lib -L/lib -lmmseg -g -Wall -c -fPIC -O4 mmthunk.cpp -ommthunk.o
g++ -I. -I../ -I../utils/ -L/usr/local/lib -L/lib -lmmseg -g -Wall -c -fPIC -O4 segmenter.cpp -osegmenter.o
g++ -I. -I../ -I../utils/ -L/usr/local/lib -L/lib -lmmseg -g -Wall -c -fPIC -O4 SegmenterManager.cpp -oSegmenterManager.o
g++ -I. -I../ -I../utils/ -L/usr/local/lib -L/lib -lmmseg -g -Wall -c -fPIC -O4 SegmentPkg.cpp -oSegmentPkg.o
g++ -I. -I../ -I../utils/ -L/usr/local/lib -L/lib -lmmseg -g -Wall -c -fPIC -O4 SynonymsDict.cpp -oSynonymsDict.o
g++ -I. -I../ -I../utils/ -L/usr/local/lib -L/lib -lmmseg -g -Wall -c -fPIC -O4 ThesaurusDict.cpp -oThesaurusDict.o
g++ -I. -I../ -I../utils/ -L/usr/local/lib -L/lib -lmmseg -g -Wall -c -fPIC -O4 UnigramCorpusReader.cpp -oUnigramCorpusReader.o
g++ -I. -I../ -I../utils/ -L/usr/local/lib -L/lib -lmmseg -g -Wall -c -fPIC -O4 UnigramDict.cpp -oUnigramDict.o
g++ -I. -I../ -I../utils/ -L/usr/local/lib -L/lib -lmmseg -g -Wall -c -fPIC -O4 UnigramRecord.cpp -oUnigramRecord.o

这时,我们可以得到一些目标文件。但是,仅仅有目标文件是不够的,我们需要编译得到 libcss。通常情况下,运行

g++ -I. -I../ -I../utils/ -L/usr/local/lib -L/lib -lmmseg -g -Wall *.o -olibcss.so

即可得到 libcss,但是实际上 libmmseg 并不会被链接进去。为了修正这个问题,我进行了如下的修改:

(a) 进入src目录,修改Makefile.am,libmmseg_la_LDFLAGS = -static修改成libmmseg_la_LDFLAGS = -shared

(b) 进入根目录,进行./bootstrap,make clean后重新make一份libmmseg.so,不要make install。

(c) 将libmmseg.so(有版本号)放入合适的位置,例如/usr/local/lib或者/lib。

(d) 进入src/css目录。执行

g++ -v -I. -I../ -I../utils/ -L/usr/local/lib -L/lib -lmmseg -g -Wall *.o -olibcss.so
你会看到

使用內建 specs。
目的:i686-amazon-linux
配置為:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --disable-gjdoc --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --disable-dssi --without-x --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-amazon-linux
執行緒模型:posix
gcc version 4.4.5 20110214 (Red Hat 4.4.5-6) (GCC)
COMPILER_PATH=/usr/libexec/gcc/i686-amazon-linux/4.4.5/:/usr/libexec/gcc/i686-amazon-linux/4.4.5/:/usr/libexec/gcc/i686-amazon-linux/:/usr/lib/gcc/i686-amazon-linux/4.4.5/:/usr/lib/gcc/i686-amazon-linux/:/usr/libexec/gcc/i686-amazon-linux/4.4.5/:/usr/libexec/gcc/i686-amazon-linux/:/usr/lib/gcc/i686-amazon-linux/4.4.5/:/usr/lib/gcc/i686-amazon-linux/
LIBRARY_PATH=/usr/lib/gcc/i686-amazon-linux/4.4.5/:/usr/lib/gcc/i686-amazon-linux/4.4.5/:/usr/lib/gcc/i686-amazon-linux/4.4.5/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-I.' '-I../' '-I../utils/' '-L/usr/local/lib' '-L/lib' '-g' '-Wall' '-shared' '-o' 'libcss.so' '-shared-libgcc' '-mtune=generic' '-march=i686'
/usr/libexec/gcc/i686-amazon-linux/4.4.5/collect2 --eh-frame-hdr --build-id -m elf_i386 --hash-style=gnu -shared -o libcss.so /usr/lib/gcc/i686-amazon-linux/4.4.5/../../../crti.o /usr/lib/gcc/i686-amazon-linux/4.4.5/crtbeginS.o -L/usr/local/lib -L/lib -L/usr/lib/gcc/i686-amazon-linux/4.4.5 -L/usr/lib/gcc/i686-amazon-linux/4.4.5 -L/usr/lib/gcc/i686-amazon-linux/4.4.5/../../.. -lmmseg mmthunk.o SegmenterManager.o segmenter.o SegmentPkg.o SynonymsDict.o ThesaurusDict.o UnigramCorpusReader.o UnigramDict.o UnigramRecord.o -lstdc++ -lm -lgcc_s -lc -lgcc_s /usr/lib/gcc/i686-amazon-linux/4.4.5/crtendS.o /usr/lib/gcc/i686-amazon-linux/4.4.5/../../../crtn.o

类似的结果。这是在 Amazon EC2 上运行的结果。(原谅我,这里确实比较复杂)复制下来最后一行的内容,在命令的最后附加 -lmmseg /lib/libmmseg.so.0.0.0。请注意修改 /lib/libmmseg.so.0.0.0 为你自己的库名。下面的命令直接复制一定不能用的
/usr/libexec/gcc/i686-amazon-linux/4.4.5/collect2 --eh-frame-hdr --build-id -m elf_i386 --hash-style=gnu -shared -o libcss.so /usr/lib/gcc/i686-amazon-linux/4.4.5/../../../crti.o /usr/lib/gcc/i686-amazon-linux/4.4.5/crtbeginS.o -L/usr/local/lib -L/lib -L/usr/lib/gcc/i686-amazon-linux/4.4.5 -L/usr/lib/gcc/i686-amazon-linux/4.4.5 -L/usr/lib/gcc/i686-amazon-linux/4.4.5/../../.. -lmmseg mmthunk.o SegmenterManager.o segmenter.o SegmentPkg.o SynonymsDict.o ThesaurusDict.o UnigramCorpusReader.o UnigramDict.o UnigramRecord.o -lstdc++ -lm -lgcc_s -lc -lgcc_s /usr/lib/gcc/i686-amazon-linux/4.4.5/crtendS.o /usr/lib/gcc/i686-amazon-linux/4.4.5/../../../crtn.o -lmmseg /lib/libmmseg.so.0.0.0

这样才会避免不链接libmmseg导致的symbol not found问题。

(e) 得到了 libcss.so 之后,将其放入你的LIBDIR中,例如 /lib 或者 /usr/local/lib。

接下来,我们应该编译 cmmseg, mmseg 的 Python 绑定了。用 distutil 太烦,我自己写了几句命令编译成功。请按照下面的命令输入:


g++ -I/usr/include/python2.6 -I../src -I../src/utils -I../src/css -lpython2.6 -lmmseg -g -Wall -c -fPIC -O4 -ommseg_interface.o
g++ -I/usr/include/python2.6 -I../src -I../src/utils -I../src/css -lpython2.6 -lmmseg pymmseg.c -g -Wall -c -fPIC -O4 -o pymmseg.o
g++ -I../src -I../src/utils -I../src/css -lpython2.6 -g -Wall -shared -O4 -o cmmseg.so pymmseg.o mmseg_interface.o

你就有了 cmmseg.so 这个 Python 库。安装很简单,请将其拷贝到你的 Python site-package 目录,例如

sudo cp cmmseg.so /usr/lib/python2.6/site-packages/cmmseg.so

提示:

  • 请注意维持 libdir 的整洁
  • 请 strip 库

这个模块使用起来比较简单。这段程序足够演示:

# -*- coding: utf-8 -*-

import cmmseg
cmmseg.init('/usr/local/etc') # 放置 uni.lib, unigram.txt 的位置
rs = cmmseg.segment((u'一个幽灵,共产主义的幽灵,在欧洲游荡。为了对这个幽灵进行神圣的围剿,旧欧洲的一切势力,教皇和沙皇、梅特涅和基佐、法国的激进派和德国的警察,都联合起来了。').encode('utf-8'))
for i in rs:
    print i.decode('utf-8') + '-',

结果:


一个- 幽灵- ,- 共产主义- 的- 幽灵- ,- 在- 欧洲- 游荡- 。- 为了- 对- 这个- 幽灵- 进行- 神圣- 的- 围剿- ,- 旧- 欧洲- 的- 一切- 势力- ,- 教皇- 和- 沙皇- 、- 梅- 特- 涅- 和- 基- 佐- 、- 法国- 的- 激进- 派- 和- 德国- 的- 警察- ,- 都- 联合- 起来- 了- 。-

各位校园网用户,
OSQDU一直致力于提供稳定的校园网服务。由于公安部等要求,我们必须使用802.1x方式进行用户准入控制,对UNIX用户以及Linux用户,特别是Ubuntu操作系统的初级用户带来了诸多不便。
经联系华三,我们已经得到了UNIX版本的客户端软件,请在校内访问 http://dormnet.osqdu.org/ 进行下载。包含了Windows, Linux, Mac OS X适用的版本。我们不保证其可用性。
为了保证最新版本的操作系统可以使用校园网服务,我们也在进行开源客户端的开发,请关注Bitbucket中的OpenH3C项目。本项目致力于对UNIX用户提供GUI方式的互联网客户端。目前我们的主要开发测试环境为Mac OS X。
如果您有任何特殊要求,请及时与我们进行联系。
谢谢大家的支持。

青岛大学校园网用户,
OSQDU美国总部和中国支部所有成员祝大家新年快乐,万事如意。
从2008年6月创办至今,OSQDU一直致力于推广开源/自由软件和开源文化,培养了一批有开放精神和探索能力的新成员。与网络中心等部门合作,部署和开发了一批校园网基础设施和应用软件。使所有校园网用户直接或间接地从开源软件中收益。
2010年,是OSQDU各项事业蓬勃发展的一年。
在中国支部负责人张涤凡的协调、沟通和努力下,校信息网络中心的基础设施(包括DNS和DHCP服务)由过去的Windows的平台逐步迁移到 Linux和Solaris上,显著提高了可靠性和安全性。增设了反向代理和DNS管理服务器等服务,简化了校园网相关服务的管理,提高了紧急响应速度。
3P下载系统的开发也告一段落,预计2011年3月份正式上线运行。
在2011年,OSQDU的主要任务有:
一、完成校园网相关服务的交接,确保服务稳定运行;
二、人才培养方面坚持远程培训与自学相结合的方针,加快培养一批合格的网络工程师和系统工程师;
三、完成校园网配置信息的集中化管理,实现学校用户的集中认证和单点登录服务;
四、加大宣传力度,在校园网内推广开源软件使用,培养用户良好使用习惯;
五、完成服务的虚拟化迁移,节能的同时提高资源利用率和服务可靠性。

我们清醒的看到,OSQDU的长期发展,和人才的培养是分不开的,然而过去的一年里,人才培养的强度和范围远远不够,给OSQDU的发展提了一个很大的难题。2011年,我们要把人才培养当成大事来抓,在主动发掘优秀人才的同时注重人才培养机制的建设,形成长效机制,扩大OSQDU在校园技术圈子的影响力,为先进技术和先进文化的传播做出自己的贡献。

感谢大家的支持,有关技术支持信息和人才培养计划,请发送邮件至osqdu@qdu.edu.cn

最近我们在继续3P的开发。为了追踪3P的开发,我们还是在用Redmine。发现WEBrick速度慢的无法忍受,老Ruby 1.8内存泄露非常严重,于是选择自己编译Ruby,打内存补丁,升级Redmine,配置Thin以及反向代理服务器。

首先,配置好lighttpd,如何配置不赘述。

然后,编译Ruby 1.8.7。记得打MBARIp72patches(链接被墙)。我的编译参数是

./configure --bindir=/usr/bin --sysconfdir=/etc --includedir=/usr/include --libdir=/usr/lib CFLAGS=-O2 -fno-stack-protector -fomit-frame-pointer

我是很折腾的。-O3似乎速度快不了特别多,而且编译速度慢。考虑到这是个比较便宜的VPS,还是算了吧……

接着,安装Redmine。应当参考Redmine的Wiki内容。简单的说,安装Redmine的步骤是用svn抓回源码包,用RubyGems安装上去依赖,配置好数据库以及邮件服务器。我使用的MySQL,配置文件如下:

production:
  adapter: mysql
  database: DATABASE_NAME
  host: localhost
  username: USER
  password: PASS
  encoding: utf8

请自行修改参数。E-Mail我选择了用sendmail。注意修改sendmail配置文件,否则你的mail服务器被当作垃圾邮件中转服务器了我可不负责任。

生成数据库什么的可以继续参考官方文档。

Thin可以通过rubygems安装。假设你的Redmine/srv/redmine,则使用

thin config -C /srv/redmine/redmine.yml -c /srv/redmine --servers 1 -e production

生成配置文件。

使用thin -C /srv/redmine/redmine.xml -e production启动。如果你看到了下面的东西,请确认rake只有1.0.1版本。使用gems可以卸载其他版本的rake.
web# thin start
>> Using rails adapter
Missing the Rails 2.3.5 gem. Please `gem install -v=2.3.5 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

接着,将thin -C /server/redmine/redmine.yml start一行加入启动脚本。

最后,配置lighttpd作为反向代理服务器。这里直接贴出来我的配置:

$HTTP["host"] == "redmine.osqdu.org" {
    $HTTP["url"] =~ "^/((images|stylesheets|javascripts|assets)/(.*)$|(favicon\.ico|robots\.txt))" {
         server.document-root = "/srv/redmine/public/"
    }
    proxy.balance = "hash"
    proxy.server  = ( "" => ( ( "host" => "127.0.0.1" ,
                                "port" => "3000"
                             ) )
                    )
}

这样,重载lighttpd配置就可以了。

最近,一场混战开始了——360和QQ开始打架了,而今天,两家更是撕破了脸皮,开始互掐了:QQ不让运行360的机器运行QQ,而360则呼吁抵制QQ。
完全是一场闹剧——就像日俄战争居然在中国交战一样,两家公司的恩怨,用户的桌面反而成为了主战场。
OSQDU的口号之一便是多种选择,而今天,我们分明看到了360安全卫士已经完全撕下了“安全”的外表,换上了3721上网助手的嘴脸。

最近,360和QQ开始了互掐,今天,我很有意思的发现,很多用户居然选择卸载QQ,这里,我想问几个问题:

  • QQ是干什么的?
  • 360安全卫士是干什么的?
  • 大家聊天都用什么?
  • 是不是还有更多的免费安全软件?

另外,360还会干这些事情,大家是不是要思考思考呢?

  • 360会阻止非360浏览器作为默认浏览器,而360浏览器是基于极度不安全的IE浏览器的,只是IE的一个外壳
  • 360会强行接管QQ的某几个按钮。试想,在淘宝购物时,立即购买按钮被病毒劫持与本行为是不是相似呢?
  • 360会将新兴的杀毒软件可牛杀毒报为病毒。这是不是在剥夺用户的选择权呢?

最后,还要提醒大家的是,360有一支超强的水军。所谓水军,是商业公司付钱用于控制舆论的一群人。水军是什么,大家可以自行搜索。虽然我不够中立,内心中还是支持QQ多一点,但我还是相信大家会冷静的思考思考这个问题。

OSQDU一直在负责校园网的维护。在安全检查中,我们发现了360服务器的一个有意思的文件:

[main]
time=1268785536
cache_expire=1209600
scan_max_filesize=104857600
upload_max_filesize=10485760
upload_max_filecount=5
rule_upload=1
gray_expire=0
use_filter=0
up_nolimit=1
upload_dir=windows\|program files\tencent\|program files\thunder network\|program files\winrar\|program files\common files\|\documents and settings\
net_toinfo=0

这份文件是几个月之前的,是不是大家要重新思考下360的作用呢?upload是上传的意思。

其实,360安全卫士早已不是那个360安全卫士。曾经,在我还用Windows的时候,偶尔看到了这一款软件,感觉这软件还不错,于是之后推荐给了很多朋友。后来,虽然听说了它是周鸿祎的产品,但从劝说自己,他已经“从良”了,已经改邪归正。需要给新网民说一下的是,周老板的另一个知名(infamous)产品是3721上网助手。
最初几年,似乎他干的还不错,凭借着以前制造流氓软件的功力,查杀流氓软件的功力很不错。后来,随着我将主要的桌面系统切换到了Linux平台,虽然不再忍受Windows平台的流氓、间谍软件,但也会推荐给需要使用Windows系统的朋友。
后来,360慢慢变味了。随着OSQDU的成立,我与Frank慢慢的接管了几乎整个大学网络,最近一年左右也一直进行着一项研究,上网流量分析。这项研究的唯一手段便是在出口上旁路监听所有的流量,并对包类型进行记录——我们的存储资源很少,而且处于对用户隐私的考虑,我们只记录了包的类型,在某些时刻,记录了HTTP包的流向域名以及大小。
很有意思的是,我们发现上传到360以及其“马甲”的流量特别的大,而经过进一步分析,我们发现360远远不是一个“安全软件”,而是将用户隐私数据上传到了服务器端。由于我们确信360安全卫士使用了系统级驱动,因此我们已经没有必要“使用ProcMon监控“,我们需要做的,仅仅是在实验机旁边连接一个交换机,切换到混杂模式进行监听——这项实验的另一个有意思的结果,是我们发现了360安全卫士服务器上的一个php脚本,该脚本执行后的内容,便是控制上传的文件类型。上面的那个文件,其实就是我们当时保留下来的证据。

好吧,既然你有耐心看到这里,那我也不妨问一问以下的问题:

  • 你与恋人的交流方式,除了当面交谈、手机,剩下的是什么?删除它之后,那些见证爱情的文字还在哪里?
  • 多年积累的太阳月亮星星呢?
  • 以及曾经下过心血的空间呢?
  • 有些人,没有了QQ,还有什么可以联系上?

当然,QQ也是很烂的,罪状如下:

  • 大而慢
  • 安装了很多不想要的东西
  • 广告阿广告
  • 各种欺骗,各种不靠谱

即使我也十分不待见QQ,但我还是决定,稍微顶一下QQ

最后,推荐大家使用QQ2008,速度比2010快很多的。Mac/Linux用户呢,还是用WebQQ吧。

UPDATE: 刚发现WebQQ杯具了……

OSQDU北美通讯:《怀念过去的日子》,作者:OSQDU北美支部书记:宋崟川

曾经,我没有属于自己的计算机,那时的我以读书看报打发时间。

记得小学的的时候,一个人在家里,写完了作业,我会去看《十万个为什么》,有时把过去的《米老鼠》杂志、《少年儿童研究》杂志翻出来看,因家中藏书有限,我只能反复咀嚼它们。我甚至还记得在淮阳路小学的时候,老师曾经发给每个同学几本学校图书馆的书,有几本书掉进床和墙的缝隙中,直到打扫卫生时才找出来,我第一次接触到“洗脑”这个词,是在一本科幻小说里。

逐渐上了初中,学业压力越来越大,可是人总有无聊懈怠的时候,我依然会把大部分的无聊时间贡献给看书。虽然有条件用电脑,也只是爸妈单位和我所在中学的,很是不方便,每周花在上面的时间稀少而宝贵。每个公历新年的一月,《电脑报》都有上一年的合订本,我往往是如饥似渴,两天时间看完一遍《电脑报合订本》上下册。趴在床头看书到两点的样子,我至今还记得。每天上学我都会买了《参考消息》带到学校,抓紧课间的时间看完,再带回家。每次上机前,我都认真准备好每次上机干什么,效率也很高。

到了高中,因为住宿的原因,不可能带太多书到学校,我对课外书的印象很淡,同学带来的几本《科幻世界》《萌芽》,我也总会驻足,看完再走。周五放学回家的书报摊,我会买《读者》,我还在邮局订阅了《参考消息》,每天寄到学校来我都会看。

在青大这过去的三年半,我累计从图书馆借还书的次数超过200次,主要涉及数学、控制论、计算机、模拟数字电子、苏联解体研究、舆论传播、马克思主义研究等,尤以计算机书为主。借书的目的除了满足自己好奇心,另外就是有针对性的补充自己紧缺的知识。买的书越来越少,主要与书价逐年升高有关,另一方面是书店的书有时专业性不强,不能满足我的需求。大学期间虽然有了自己的电脑,但是一般不拿到学校去,所以大部分时间还是与书为友。现在想来确是件幸事。

但是来到美国之后,来上这个研究生,我却发现,我把太多的时间给了电脑,各种Social Network:校内、Twitter,每天检查好多遍邮箱,即使无聊也要在网上泡着看各个来源的信息,或者维护在青大的服务。尤其是对敏感信息的追寻和探索,尽管刺激好玩,但也是使时间无谓耗散的杀手。事实上那些信息知道与否,于我的生活几乎没有影响,也不是我好奇心之所在。服务若是需要每天的维护,其健壮性和稳定性就值得怀疑了。Social Network的种种信息,或许有个别的参考价值,更多的是标题党、图片的吸引,一时欢乐换来空虚。

在外留学,会有很多时间花在买菜做饭这样生活琐事上,然而这不是生活之主流,学业学习固然紧张,却也没有占据我全部时间,而不当的时间安排以及对人生规划的缺失,耗尽了每一天。

我开始怀念过去,怀念那个通讯交流用电话短信的时候,怀念有很多时间看书的日子,怀念俯下身子专心研究的那一幕幕。而不是现在的空虚以及蛋疼的寂寞。

摇摇脑袋,少得可怜的知识叮当作响。改变这一切,应该没有那么难。

美国东部时间十月四日下午2时,即北京时间凌晨2时,OSQDU北美总部技术人员与OSQDU大中华区负责人达成一致,对OSQDU维护的镜像作以下调整:

1 撤销OpenOffice.org镜像,将OpenOffice.org 3.2.1中文Windows版本移动至青岛大学3P下载站(内部)

2 Ubuntu镜像中去除9系列版本,包括Jaunty(9.04)和Karmic(9.10),相应的Ubuntu CD/DVD镜像在青岛大学3P下载站中也予以删除。

3 Ubuntu镜像新增即将正式发行的Maverick(10.10)。

4 青岛大学3P下载站更新CentOS到版本5.5,OpenSUSE到版本11.3,FreeBSD到版本8.1,除FreeBSD外只提供DVD镜像。

点50是一台服务器。
OSQDU 成立之初,条件艰苦,所有的计算机设备,只是两台笔记本电脑、一个 Sun 工作站而已。所有的实验,所有的工作,只能在这两台笔记本电脑上完成,而Sun工作站,由于配置太低,只能用于测试。
在 OSQDU 核心成员的不断争取下,青岛大学网络中心终于划拨 OSQDU 了三台联想昭阳桌面机,经过仔细规划,其中的一台被拿出作为主力服务器,运行各项核心服务,其中包括 OSQDU 的主页、测试平台、甚至包括部署平台。它的IP地址最后一位是50,这台机器因此得名“点50”。
点50是为数不多的几台有公网IP地址的服务器之一。为了充分发挥 OSQDU 的作用,点50担负起了 OSQDU 的大多数对外沟通工作,它运行了 OpenSSH 服务器,作为 OSQDU 成员从外网到内网转接的枢纽,运行了 nginx 网页服务器,起到了良好的宣传作用,运行了 KBS 青岛大学版,作为内部成员的交流平台,甚至运行了 LDAP 服务器,邮件服务器,下载服务器。
身负重任的点50没能承受住如此高的负载,在连续工作了610天后,于2010年9月21日06:25:00停止了工作。它最后留下了几句话:

Sep 21 06:25:00 develop gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0):
Sep 21 06:25:00 develop Error for command 'read sector' Error Level: Fatal

目前,点50正静静的躺在网络中心办公室里,另一块硬盘已经插在了点50上,作为 c8d1 出现在 OpenSolaris 的设备中。今天,我们将将其中数据重新整理,等待点50的,将是光明的未来!

昨天晚上,我们突然得知,OSQDU 的域名罹难,状态已经变成了 clientHold 。打电话给中国万网,答复是需要提交身份证,等待漫长的审核。
为了更好的为广大开源爱好者服务,也为了更稳定的服务,经 OSQDU 核心会议讨论,最后决定,注册新域名 www.osqdu.org。一来是 OSQDU 已经不是只在中国活动的组织,二来则是规避变化颇多的国内政策。
同时,我们的Feed地址也发生了变化,建议大家通过我们 burn 的新 feed 地址订阅我们。我们的新地址是 http://feed.feedsky.com/OSQDUBlog
原有的 OSQDU 域名,我们将努力使其复活,但是我们终究将换成新域名,尽管更换域名是件大事。
将原来的 whois 信息贴上来,纪念一下。

Domain Name: osqdu.org.cn
ROID: 20080830s10051s18327277-cn
Domain Status: clientHold
Registrant Organization: 青岛大学网络中心
Registrant Name: 张涤凡
Administrative Email: cheungtifan@gmail.com
Sponsoring Registrar: 北京万网志成科技有限公司
Name Server:ns1.dnspod.net
Name Server:ns2.dnspod.net
Name Server:ns3.dnspod.net
Name Server:ns4.dnspod.net
Name Server:ns5.dnspod.net
Name Server:ns6.dnspod.net
Registration Date: 2008-08-30 19:59
Expiration Date: 2011-08-30 19:59

顺祝各位读者中秋快乐。
本次自由软件日的活动新闻我们将尽快发出。谢谢各位的支持。