大头龙仔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

Remove WAT

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

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

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

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

推荐Bioshock 2

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

当时用6600GT玩了一代,记忆犹新,终于等到二代了,现在拿着4850去跑感觉还可以

And玩了一些了,后来发现不能保存,我晕,没有创建live帐号……

总之这个游戏就强烈推荐

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

bioshock 2

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 echo(exec(“whoami”)); ?>

结果得到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,之后就可以用证书认证来登陆

之前把密码认证的登陆方式关了,也是保证安全性的做法,如果你不设证书密码短语,那么拥有这个证书的客户端都可以登陆。

PHP可能初忽略的一些函数

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

先是看到gracecode的这篇文章:一些初忽视的PHP函数(整理)

和作者说法一样,泪奔了,里面有好一些函数都自己造个轮子,却不知道PHP里已经带有了

搬家到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,这样我将会在三个月后得到一些优惠,我会非常感激你的(这个不是优惠码,谢谢)

1…678…29
breakliu

breakliu

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