dos攻击之fsockopen

2006年的秋天,当我看到满屏幕的熊猫,我知道我的电脑也可以中毒了。今天,我的服务器成肉鸡了。我想,原来那么多我自以为不会降临到我身上的事情都降临到我身上了。看来我要居安思危了。

解决办法:直接在php中禁用fsockopen以及psockopen等函数。当然如果你的程序需要用的此类函数的话,就要另寻其他的方法了,比如制发包频率(怎么控制我也不清楚,google it but not baidu it)。

好像是dedecms有这个漏洞,我不打补丁了,因为马上要改版了。

说到这,再见。

apache并发连接数

突然发现,还有两个月就2012年了,时间过得真实带米内特块啊,最近公司的破网站经常连接不上去,于是找个命令查看apache的并发连接数,发现挺高的,哎。要懂得东西太多了。

我们调优常常要查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):

ps -ef | grep httpd | wc -l

出现的结果,就是当前Apache能够处理的多少个并发请求,这个值Apache根据负载情况自动调。

查看Apache的并发请求数及其TCP连接状态:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

Continue reading

form元素对齐

html中的表单元素大概用的最多的就是按钮、输入框和下拉菜单了,而这三个元素往往不是那么完美的对齐,我指的是横向的对齐,而且我说的完美的对齐,就是说你放大100倍之后你用标尺量一下,他们仍然是对齐的。

其实最大的难点是浏览器兼容的问题。因为火狐和IE8好像是不吃line-height这一套的,所以即使你在chrome下完美对齐了,那么在火狐和IE8下面会出现1像素的偏差,通常是火狐和IE8的按钮会矮上那么一个像素,原因就不说了,直接说解决方法。

本人觉得这不是在搞学问,所以就没有严格测试,而且这里用的雅黑的12号字体,所以如果是宋体的话可能会不实用。还有一点就是我这里的的元素高度是20来像素高吧,如果你想更高一点,那么你可以等差增加(注意不是等比)。

input, select, button {
  font-family: "Microsoft YaHei";
  font-size: 12px;
  border: 1px solid #555;
}

为了方便查看,我分别显示,首先是输入框,然后是按钮,最后是输入框。

Continue reading

ubuntu desktop的一个bug

上午搞东西的时候,发现一个我的apache的一个很烦人的问题,当我在浏览器中输入localhost/javascript的时候,总是出现403 forbidden的东西,搞的我很上火,看了看apache的日志,发现这么一条错误:

[Mon Oct 10 13:44:35 2011] [error] [client 127.0.0.1] Directory index forbidden by Options directive: /usr/share/javascript/

原来是localhost/javascript会转移到/usr/share/javascript中,但是这个文件夹也是可以读的,后来我灵光一闪,绝对是apache的那个配置文件阻止了这个文件夹,于是我find了一下,结果在/etc/apache2/conf.d/这个文件夹中有javascript-common.conf这么一个链接,链接的/etc/javascript-common/javascript-common.conf的内容是:

Alias /javascript /usr/share/javascript/
 
<Directory "/usr/share/javascript/">
        Options FollowSymLinks MultiViews
</Directory>

什么不说了,直接把javascript-common.conf删除就是了。

这里ubuntu server版本好像没有这个问题,或者有这个问题被去掉了,但是desktop版本没有去掉,不知道为什么。这个bug在这里已经提交过了,估计ubuntu的兄弟们忘了改desktop版本的了。

mysql备份还原

本博客使命之mysql数据库的备份还原。其实写这些东西怪丢人的,很多人会说你连这个都记不住吗?我只好一句话不说,我确实记不住。

1 导出所有数据库

mysqldump -u username -p password –all-databases > all.sql

2 导出一个数据库

mysqldump -u username -p password somedatabase > all.sql

3 导入

进入mysql -u username -p password

source all.sql

命令很多,但是有这几条就暂时够用了。

scp命令

最近越来越懒惰了,真的懒得打开filezilla,然后链接,然后选择文件夹,然后upload,后来就使用sftp命令,发现这个就是ftp,只是安全一点,比如烦人的文件夹操作,后来突然想起原来用过的scp,但是忘记怎么用了,就从网上下了一个简介。

scp 可以在 2个 linux 主机间复制文件;

命令基本格式:

scp [可选参数] file_source file_target

从 本地 复制到 远程

* 复制文件:

scp local_file remote_username@remote_ip:remote_folder
scp local_file remote_username@remote_ip:remote_file
scp local_file remote_ip:remote_folder
scp local_file remote_ip:remote_file

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;

第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;

Continue reading

9月中旬

9月中旬,刚写了一点东西,累了,就写个记录吧,最近烦心事挺多的。我仔细想了想,其实也没什么烦心的事情,只是想想未来,想想出路,就觉得有点迷茫,好在总有个目标,不管自己喜欢不喜欢,总是要努力去做的。

本文的主要动机不是回忆或者牢骚,是记下一个小东西,就是emacs中文输入的问题,因为毕竟是中国嘛,你做的东西跟汉语是有很大的渊源的,所以要输入中文。原来的解决方法是从shell启动,然后在shell的配置文件bashrc中配置。

export LC_CTYPE=zh_CN.UTF-8

但是,后来,我想,既然emacs无所不能,为什么还得从shell启动呢,于是我想到了,emacs从shell启动,读取shell的变量,然后。

好了,如果直接从xwindow启动的话,他不会读你的bashrc变量的,是吗?于是你就写了一个bash,在启动emacs设置一下变量,你明白了。

#!/bin/sh
export LC_CTYPE=zh_CN.UTF-8
emacs

然后你再创建一个快捷方式,打开这个就是启动emacs,万事OK。

更新一下:

其实没有万事OK,那个emacs还是会找不到gems,然后出了各种错误,这个时候你需要搞个插件,rvm.el。当然如果你不用rvm那就不需要搞这个插件了。然后用gemset的时候,要用后面没有@这个,对于我来说要:

# rvm use ruby-1.9.2-p2900@rails3 --default #不用这个
# rvm use ruby-1.9.2-p2900@global --default #不用这个
rvm use ruby-1.9.2-p2900 --default #而是用这个

Continue reading

我的emacs配置文件

马上就回去了,趁着这段时间把我昨天的emacs的配置文件保存一下,以备以后使用。嗯,昨天研究了一天,发现vim真的时候追求速度的人用,有的人说emacs块,那是你没有用熟,vim才叫运指如飞,emacs只能叫一般,但是emacs的强大之处是他的稳重,是他的lisp,是他的严谨,是他的我也不知道的东西,反正我是决定放弃用vim,因为vim我的指头已经超过大脑的运转了,我只想留点时间思考,从我的指头中间。

Continue reading

HTML5须知

一两年前,HTML5似乎还是一个模糊的概念,只有少数几个互联网的书呆子才会关心。而现在,却感觉仿佛HTML5无所不在了。感谢Mozilla和 Chrome的快速发布,以及微软IE9的部署(IE 10现在也处于“技术预览”状态了),数量有限(或者说比有限要更好些)的支持HTML 5的浏览器已将近人人皆可享受。

开发人员开始利用那些得到广泛实现的功能特性。不出1年HTML 5就将得到完全支持,而规范也正在迅速到达稳定状态,现在正是了解一些HTML 5须知的好时机。

1: XHTML不再,(支持XML 语法的)HTML 5永存

XHTML是喜欢精确,尤其是在解析方面精确的人的选择。HTML外观一直都有很多与XML相似的地方,但却永远都无法跟XML一模一样,因此,试图把它当做XML来解析必将失败。因此不久前,XHTML被制定出来替代HTML语言,并把它归到XML的术语里面。当HTML 5的 工作首次启动的时候,同时也在进行着XHTML 2的工作,但它最终还是被封存了。相反地,HTML 5规范制定出来的目的在于,让你能够编写遵循严格的XML语法的,并能工作的HTML 5文件。 如果你把它跟XML MIME类型一并发送出去的话,用户代也会把它作为XML文档来进行解析。这把两个世界最好的东西都给了开发人员。

Continue reading

subversion相关

svn挺好的,当然有人说分布式的git更好,要让svn去死。当然那些人不做评价,个人觉得适合自己的是好的,容易使用的是好的,如果你真的高手到了一定程度,我们也不好说什么东西。

首先要安装svn服务器,我用的是ubuntu,很简单,apt-get install subversion即可。

装完就好配置一下,下面是要配置的东西。

1.创建仓库

svnadmin create /var/svn

/var/svn 为所创建仓库的路径,理论上可以是任何目录。当然我的目录是/var/svn/

Continue reading