大头龙仔Blog

A strong man can save himself.
A great man can save another.


  • 首页

  • 归档

  • 标签

  • 关于

  • 搜索

SWIG不错

发表于 2010-03-04 | 分类于 web |

SWIG是个好东西,架构很灵活,以后用这个来写PHP扩展模块是不错的选择。

SWIG is an interface compiler that connects programs written in C and C++ with scripting languages such as Perl, Python, Ruby, and Tcl. It works by taking the declarations found in C/C++ header files and using them to generate the wrapper code that scripting languages need to access the underlying C/C++ code. In addition, SWIG provides a variety of customization features that let you tailor the wrapping process to suit your application.

Rage Arch

发表于 2010-03-01 | 分类于 opensource |

rage-arch

推荐Bioshock 2

发表于 2010-02-24 | 分类于 misc |

当时用6600GT玩了一代,记忆犹新,终于等到二代了,现在拿着4850去跑感觉还可以
And玩了一些了,后来发现不能保存,我晕,没有创建live帐号……
总之这个游戏就强烈推荐

下面的图有意思啊,Orz~~~~~~~~~~~

bioshock 2

Remove WAT

发表于 2010-02-24 | 分类于 misc |

如题,这东西能绕过Windows 7, Windows 2008的正版验证机制

执行成功后,将绕过序列号验证的过程

有兴趣可以上网搜一下,这里就不方便放出相关的资源链接了

PHP模版引擎Blitz Templates

发表于 2010-02-23 | 分类于 web |

这东西据说从测试数据上是最快的PHP模版引擎

纯C编写,编译为PHP扩展模块调用解释,从这看来速度快不是盖的

再来一张官网上的测试数据图 Blitz测试

这东西布署方便,模版语法比较友好,我以后都打算用这东西替代Smarty了
有兴趣可以到官网看看:http://alexeyrybak.com/blitz/blitz_en.html

PS: 官网的一张图片很搞笑 LOL

命令行字符串过长的问题

发表于 2010-02-15 | 分类于 opensource |

在Linux下面用Shell命令很爽,有时编程时情不自禁就想popen或system一下,然后就接个shell命令行字符串,搞定

通过执行命令

getconf ARG_MAX
可以查看当前系统支持参数的长度

好了,现在就说一个问题
平时我们喜欢

rm -rf /mydir/*
来递归删除mydir目录的文件
这里有个问题我们经常忽略,就是*号会在执行的时候完全展开,即系统只会启用一个rm进程出来执行,后面就接这么一大坨的参数,所以如果参数非常多,直到超长,那么这个命令就会执行失败,系统此时会提示你
Argument list too long
这里有两个解决问题的思路:
1、如果那个真的是想把mydir删了,就直接用rm -rf /mydir/好了,这样不会有展开问题
2、如果要指定形如*.tmp的文件的话,为了防止发生参数过长问题,最好使用
find /mydir/ -name "*.tmp" -exec rm -rf {} +
这 样不会有问题,可以参考Linux文件查找命令find,xargs详述

其实我们平时应该尽可能少用popen之类的API来调用shell命令,虽然我知道这是很懒很方便的做法
最好还是用相应编程语言的API来实现,这样可以保证性能,也可以保证稳定性(内存不够时popen之类的东西会失败的)

解决wordpress提示输入FTP帐号问题

发表于 2010-02-14 | 分类于 web |

今天想把一些插件删之,发现提示信息形如

执行请求动作,连接信息必需提供
主机名
用户名
密码
连接类型
这个问题,我以前用虚拟主机时,遇到个,输入FTP帐号信息就可以解决了
问题是现在我用VPS,环境都是自己架的,没有什么FTP服务器,哪来这东西?
于是我就检查一下文件权限,发现完全没有问题
后来通过
结果得到PHP解析时的用户是root,我晕倒!
于是我检查一下spawn-fcgi里的执行用户和用户组,发现没有设,统一设为服务器执行者权限就可以了,我这个统一为nginx
之后重启fcgi问题解决

提高SSH的安全性

发表于 2010-02-12 | 分类于 geek |

VPS首发Linux操作系统是Debian 5 Lenny,配置的确非常顺手,系统恢复上线的速度也非常快
但是我发现Debian太保守了,软件包的版本过于陈旧,于是还是决定选取一个上进一点的发行版
综合考虑自身情况,决定选取Gentoo,VPS分配了四个CPU,编译速度还是非常快的,没什么后顾之忧

但昨晚在配置VPS时,用netstat发现一个奇怪的IP在连22端口,马上tail -f看看,发现是每隔两秒的SSH暴力密码破解,可能看到对方是从用户名字典里一个个地匹配。不过还好,我的密码是九位数字加字母组合,要算出来还是要比较长的时间
我看了看那个IP,那也是一个Linux系统,开着Apache服务器的

至此为止吧,最重要是如果解决问题:
1、我先修改/etc/ssh/sshd_config,把SSH默认端口改了
2、我决定使用SSH的公钥认证,关掉密码认证,这里有好几步要做
第一步,修改/etc/ssh/sshd_config

# 禁止root登录
PermitRootLogin no
# 开启公钥认证
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
# 关闭密码认证
PasswordAuthentication no
第二步,生成认证公钥和私钥
ssh-keygen -t rsa
这一步你可以再指定一个密码,进一步提高安全性
执行完成后,会生在~/.ssh/目录下生成id_rsa和id_rsa.pub
执行
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
指定sshd认证公钥

第三步,刚才生成的id_rsa就是你的认证私钥要,要好好保存。
我用的是xshell,把id_rsa导入,OK,之后就可以用证书认证来登陆
之前把密码认证的登陆方式关了,也是保证安全性的做法,如果你不设证书密码短语,那么拥有这个证书的客户端都可以登陆。

Hostmonster主机已经申请退款了

发表于 2010-02-10 | 分类于 server |

hostmonster已经申请退款了,邮件说七个工作日退款金额将会到帐,有保障,服务也很好
其实我觉得hostmonster是挺好的,服务响应也很快
但我只是架了个wordpress,日前日访问题很低的,而我查看一下24小时主机挂起的小时数,基本上每天都有1000秒
我不爽,我也不懂,我知道hostmonster有个限制是CPU占用率超过20%的话就会挂起一会,但我想我的网站不至于
平时操作一下就20%了,这怎么行

后来再三考虑还是退款了,换了Linode VPS,虽然比较贵,但速度很好(我选的是Newark机房,Fremont机房已满),也考虑到我后面可能会在这里同时维护几个主站,不希望有虚拟主机的限制

搬家到Linode

发表于 2010-02-10 | 分类于 server |

我就快速选了个KVM的2.6.32内核,分区什么的,都按http://library.linode.com/里的说明弄好。补充一下,Linode资料库的东西挺全面的,基本都能在这里找到解决方法,再不就上linode的IRC,那里有很多高手回答你的问题,再不行才找服务人员了。我当时就上了IRC,问了一个人家说从没听过的问题,我后来GOOGLE之后,才发现我是那么的菜鸟

考虑软件包、稳定性等,首发的VPS操作系统是Debian 5 Lenny,其实我发现Debian太保守了,PHP的版本是5.2.6的,我晕死,可以Testing的话就前卫点吧,后面可能考虑移动Arch吧
用一天时间架好Nginx、Spawn-fcgi、Mysql、PHP,apt-get的确好用,用久了slackware的包管理,有点不习惯这么顺手了:P

以最快速度把大头龙仔Blog移到新的VPS里,接着就更改nameserver 了,再过了24小时,换完成啦。
回头看看,感觉还好,辛苦有一定的Linux基础,但这个过程再次看到自己的不足。我认为我要认真地再看一遍这方面的教材

另外blog跳起来看,发现有个严重的问题,就是固定链接失败了
google后找到解决方案了,进入http://www.anilcetin.com/convert-apache-htaccess-to-nginx/ 把我原来apache的rewrite规则:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
转换为Nginx用的:
if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if (!-d $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite /. /index.php last;
}
然后把转换的结果放到
location / {
}
里,/etc/init.d/nginx restart,页面刷新不再出现404了

And如果你也觉得Linode不错的话,可以顺手在Referral code输入53f640250f764887320238cc00ca06b66aa3c43b,这样我将会在三个月后得到一些优惠,我会非常感激你的(这个不是优惠码,谢谢)

<i class="fa fa-angle-left"></i>1…678…29<i class="fa fa-angle-right"></i>

288 日志
18 分类
850 标签
RSS
GitHub Twitter DouBan Weibo
Creative Commons
© 2008 - 2026 breakliu
由 Hexo 强力驱动
主题 - NexT.Pisces
0%