升级VPS上的Nginx、PHP版本

今天又搞到一个VPS(大笑)。

在搭建必要的环境的时候突然想起自己博客所在的VPS所用Nginx和PHP版本都比较老了,正好前不久PHP又爆出一个很严重的”Hash冲突拒绝服务攻击的”漏洞,于是想升级到最新的版本。

PHP的升级要稍微麻烦一些,首先要找到配置目前的 PHP 的 ./configure的参数,根据PHP官方文档的方法,这个参数可以用下面方式获取:

http://www.php.net/manual/zh/faq.build.php#faq.build.upgrade

要么在你当前的 PHP 的安装目录查看 config.nice 文件,如果没有,只要运行此脚本:

phpinfo();
在输出的顶端显示了用来配置此 PHP 的 ./configure参数。

不过个人觉得这个方法获取到的 configure参数是不完整的,不过还好我当初保存了 configure的参数,就为了方便以后升级。

PHP configure后直接make 和 make install后就可以完成升级,配置文件因为以前配置了,所以也不用去管,不过一些扩展如eAccelerator需要重新编译。

扩展的重新编译非常简单,直接切换到以前make的目录,也不用执行phpize了,直接make和make install就完成升级。配置文件和PHP一样,不用理会,直接使用以前的。

Nginx的升级比php简单很多,要确定当前运行的Nginx的 configure参数,运行下面的命令就可以得到。感谢twitter上的@vnline和@JavasBoy告诉我这个方法。

nginx -V

使用得到的configure参数配置新版本的代码,然后编译,就可以安装了。不过重新安装之前,需要关闭正在运行中的Nginx。

这样,Nginx和PHP的版本就升级完成了。

2 Comments

C语言的sizeof和#pragma pack

今天有人在某QQ群中问下面这个结构体有多大:

#pragma pack(4)
struct STV
{
	char a;
	short int b;
	char c;
};

当时我第一反应是12,不过又总觉得有点不对劲,还是写了段代码测试下,发现结果居然是6.

嗯?6,难道编译器没看到这句话么:#pragma pack(4)?

但是当我把结构体的定义修改为

#pragma pack(1)
struct STV
{
	char a;
	short int b;
	char c;
};

后,结果又变成了4,那么#pragma pack是在起作用的。然后又试着改为#pragma pack(8)和#pragma pack(16),结果还是6.

心中大概有点明白为什么了。

google之,原来对于#pragma pack的处理方式是这样进行的:

当结构体中最长宽度的数据成员的宽度小于 n 时,按该成员宽度对齐;
当最长宽度的数据成员的宽度大于或等于 n 时,按 n 对齐。

结构体STV中成员宽度最大为2,所以当n=4,8,16的时候还是按照宽度2来对齐的。

–EOF

5 Comments

我的2011年

2011年已经结束,元旦三天假期也已经过去,想想,还是零碎的总结下2011年。

2011年,工作上平均分配给了2个公司,于6月份离职SNSPLUS,进入另外一家公司。

2011年,我的本命年,因为没穿红内裤,损失不小。应该有4W人民币左右,不过还好的是家人朋友自己都身体健康、平平安安,就当舍财消灾了。

2011年,工作又回到C、C++上面来了,重新写C++让我觉得很高兴,年末碰到一个真正的技术上的大牛,虽然相处的时间不多,不过从他身上学会了很多,不光是技术、更多的是作为一个公司员工的心态。

2011年,感情依然没变化,和女朋友依旧是小吵不断,还好还是走过来了。

2011年,依旧月光、年光,每月依旧在固定的时间生活窘迫。

2011年,养了一只古牧,从四月份开始养着,到现在已经8个月了,它也有9月多大了。

2011年,上半年好玩,下半年很累。上半年,每天早上八点多近9点才慢悠悠的起床去上班,下半年,每天早上7点20就要起床然后挤公交。相比下半年真的很苦逼。

2011年,败入数码产品明显不如2010年,倍感欣慰。

2011年,身体貌似不如2010年了,需要锻炼,体重增加了5kg左右,鸭梨开始比山大了…

2011年,博客被墙,等待大半年不见解封的情况下,开了新的博客,没有导入以前的数据,重新开始。

2011年,该死的外国话还是外国话,没见到进步,这点很操蛋,一度怀疑自己是英语白痴。

2011年,第一次穿羽绒服,看来真的老了,都怕冷了。

2011年,还有很多很多………..

–EOF

4 Comments

ASP.NET垃圾?.NET垃圾?

由这次CSDN泄漏用户资料的事件引起,某群中讨论得热火朝天。

这时候,又听到言论:

CSDN是ASPX做的,所以ASP.NET真的很垃圾.Net也很垃圾!千万不要用ASP.NET!

上次有黑客兜售网游源码,都是asp.net的。

我很不喜欢这种言论,虽然我不是做.Net的,我一直觉得,技术没有什么垃圾不垃圾,只有你能不能驾驭住、能不能找到它合适的领域。同样的,我也很讨厌语言优劣论,不过这个偏题了,就不说了。

我用过一段时间的C#,算是个入门者。我同意现在很多ASPX的程序写的问题很多,但是,其他语言的程序出问题的也不少。

ASPX的从业者很多,水平差异也非常大,造成很多人不信任ASPX程序的主要原因我认为是:

一部分的ASPX程序员是从ASPX开始进入程序员生涯的,这部分人有很大一部分呢又是直接使用webform来入门的,当时很多ASPX程序员只知道拖拉控件然后改改属性。于是他们对HTTP协议和特性知道的有限、对ASPX的工作原理模糊不清。

然后呢,当时很多企业大量缺人,于是这部分人也顺利的进入公司工作,企业对代码质量没把关好,于是出现了很多劣质的ASPX程序。也造成很多人对ASPX的恶劣印象。

然后我了解到的情况是:现在这样的情况已经有了很大的改善,很多的ASPX程序员都成长起来了。

所以我认为说ASP.NET很垃圾.Net也很垃圾的言论是一种很没有依据的说法,而且我恰恰认为C#是一门优雅的语言,他出生比较晚,吸取了很多语言的优点,微软更新得也很勤快。

以上言论只是我一人的看法,我对.NET了解不多,所以如有诸多错误还请海涵。

–EOF

1 Comment

CSDN就是个笑话

CSDN这个网站,我忘记我是什么时候注册的了。只是知道当时注册的时候,我还是个菜鸟中的菜鸟,当时会注册CSDN的账号是因为那个时候我曾经问过一个前辈:您平时都上什么技术社区呢?得到的回答是CSDN,于是我就乐呼呼的去注册了。

第一个账号的用户名和密码现在早已经忘记。当时注册进去后还是兴奋了一下的,觉得好象找到了组织一样,看到社区里面的帖子里面的讨论的问题,很想进去参与一句,但是奈何当时技术实在是菜,所以貌似我那第一个账号一直没发出过自己的声音。

后来也不知道是怎么回事,就不上CSDN了,我好像都忘记了中国还有这号网站一样。

在CSDN上注册第二个账号的原因是找某个代码(或者某本书吧)找到CSDN的下载频道去了,于是后面的大家估计都清楚了:为了能下载东西不得不又注册了个账号。

之后,这个账号就一直用于有的时候下载资源用。要说的是,我很讨厌CSDN设置的下载要扣积分这套系统,觉得完全是给查找资源的人设置障碍的,有的资源的分设置得老高老高的,下载下来的东西却是一坨屎。而且一直觉得CSDN资源的质量都很差,如果能在其他地方找到类似的,我基本不会选择CSDN上的。

再后来,积累多了,基本下载这些资源也少很多了,所以又一次忘记了CSDN。

之前2天前,爆出CSDN用户资料外泄,而且CSDN还把用户密码明文存储之后,突然间Twiiter上很多CSDN的tweets了。昨天晚上耐不住寂寞就下载了这个文件,打开搜索自己后来的那个用户名,果然存在,密码也是对的,email也能对上,于是当时我就想找快板砖干掉CSDN的开发人员。

不过已经爆出来了,只有赶快修改部分密码相同的服务和网站。一番折腾后,常用的服务和网站密码都修改完毕,于是开始google这件事情的缘由,看到robbin同学是这么说的:

CSDN网站早期使用过明文密码,使用明文是因为和一个第三方chat程序整合验证带来的,后来的程序员始终未对此进行处理。一直到2009年4月当时的程序员修改了密码保存方式,改成了加密密码。

但部分老的明文密码未被清理,2010年8月底,对帐号数据库全部明文密码进行了清理。2011年元旦我们升级改造了CSDN帐号管理功能,使用了强加密算法,解决了CSDN帐号的各种安全性问题。

看到这个解释,我觉得相当可笑,为了和一个chat程序整合就明文保存用户密码,知道这有多危险么?这么看来CSDN是认为用户资料没有哪个神马狗屁Chat程序重要了?而且你说:

2011年元旦我们升级改造了CSDN帐号管理功能,使用了强加密算法,解决了CSDN帐号的各种安全性问题。

既然你是早期采用明文存储的,为嘛这么多年了都没改掉,还把用户资料这么导出又不安全存放。然后这份用户资料泄漏是年初就泄漏的,为嘛现在才改造?非要出了问题才改造?你说改造需要时间,可是这时间也太久了点吧。然后“使用了强加密算法”,请问是可逆的还是不可逆的呢?

然后CSDN作为一个主要用户群体为开发者的网站,居然没有加密用户的密码,这相当的讽刺。我记得在我还是一个超级菜鸟的时候,我就知道用户密码必须要单向加密后存储。

在写这篇博文的时候:看到CSDN上发表了一篇公告:【公告】致CSDN会员的公开道歉信,这篇狗屁的公告中就说神马执意歉意什么的。狗屁,道歉有个毛用!而且公告尾部居然还加粗了以下内容:

备注说明:我们针对泄露出来的600多万帐号进行了全部扫描,统计出2011年CSDN新注册的500多万用户中,泄露出的ID有几千个。这些ID的E-mail地址绝大部分是错误的,有些密码也是错误的(少数密码吻合的我们已经重置了密码),可以确认这部分2011年的数据非本站泄露,而是黑客从其他社会工程库凑出来的数据。特此提醒2010年9月后CSDN新注册或改过密码的用户不必担心。

你们还很自豪?真是没一点悔意。

twitter上看到一条tweet,具体怎么说的忘记了,大概是这么说的:

如果CSDN泄漏用户资料这件事情在美国或者其他国家,用户早就把它告上法庭了。

我没去过国外,也没什么国外的朋友,不知道这句话的真假。但是国人真的好欺负?

最后呢,今天又看到有报道说:人人、开心的资料也部分被泄漏了。新浪的用户系统(包括新浪微薄)密码采用的可逆算法加密的。。。。这些消息真是一个比一个重磅。

诅咒以CSDN为代表的这些网站早日关门大吉。

–EOF

2 Comments