回想一下,自己做站也好,公司项目也好,做到一半甚至做到80%又放弃的,最近几年至少有十几个,有的是因为感觉没啥前途,有的完全是因为自己的惰性,几乎都是还没有接受市场检验的…
昨天看到一篇文章,很受感触. 虽然道理浅显,别且很多人很多种方式都有表明过,但是看到这个大师面对场下的喧嚣,面对观众的退场,还能这么坚持,确实很受感染. 感谢蓝汛景楠每周的邮件分享!
简单的事情重复做
周末完成了一件大事儿,终于能有一个月的休整时间了…
nosql都已经火了这么久了,自己除了在 google reader 里看过几篇文章之外,并无过多的了解,听说 mongodb 目前比较流行,今天有时间稍做体验,简单步骤如下.
1. 安装, 从网上看了几篇教程,有几种安装方式, 最简单的莫过于用 macports 安装了. 迫不及待的执行 ”sudo port install mongodb” ,速度这叫一个慢呀,等了15分钟也没蹦几行,索性放弃. 还有说下载编译安装的,对我这种懒人也不试用,看到那一大堆依赖就头疼. 还是直接选择官方编译好的版本吧,原来这个是最简单的,呵呵.
a) 选择适合自己机器的版本并下载 http://www.mongodb.org/downloads
b) tar -xvzf mongodb-osx-x86_64-1.6.5.tgz
c) mkdir -p /data/db
d) cd mongodb-osx-x86_64-1.6.5
e) ./bin/mongod (运行后就不要关闭了,因为不是以服务方式启动的,先体验嘛:) 默认打开了两个端口,27017用于程序连接, 27018 是它自带的一个 web server 有一些简单的状态查看和管理,可以通过 http://localhost:27018 来访问.
d) 新开一个command窗口, ./mongodb-osx-x86_64-1.6.5/bin/mongo 启动命令行方式连接数据库. 在这儿你就可以按照官方的 http://www.mongodb.org/display/DOCS/Tutorial 敲着玩玩了..
2. 连接, 光命令行不行呀,咱体验的目的也是为了以后可以用在项目里嘛,所以php连他还得体验一下,先找个管理用的东东吧,在mongodb豆瓣小组里有人推荐 rock-php , 下了一个试试,下载解压部署到apache下就不说了.
a) 得先加载php-mongodb 的扩展呀, 一开始我尝试了使用 pecl install php-mongo ,结果编译失败,错误输出好几百行,没有耐心解决了,还是下个现成的 mongo.so 算了, 这里有下载,要看一下自己的php版本,放到你应该放的位置,我的是Mamp 所以是在 /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613 下
b) 找到php.ini 打开,增加一行 extension=mongo.so , 重启apache,搞定.
c) 访问你刚才下载的 rock-php ,可以用了. 不过没有用户名密码不行, 需要打开你刚才开的那个命令行窗口,执行 use admin 再 db.addUser(‘admin’,'admin’) 就可以用 admin 密码 admin 访问了. 怎么样,是不是和 phpmyadmin 很像?
呵呵,就到这儿吧. 都配置好了,写个简单的php测试是很容易的了.
安装好了,以后再好好看看文档,研究研究,现在对适合什么样的项目使用,性能如何,系统配置等等还都没有任何研究,以后慢慢来..
最近迁移一个网站, 从 ubuntu 9.10 迁移到 centos 5.2.* 下出现了比较怪异的错误,每天都要在错误日志里看到几百个 upstream timed out 的错误.
2010/12/15 22:32:45 [error] 3897#0: *1831129 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 116.217.163.37, server: xxx.com.cn, request: “GET / HTTP/1.1″, upstream: “fastcgi://127.0.0.1:9000″, host: “xxx.com.cn”, referrer: “http://xxx.com.cn/”
从日志的表示来看应该不是nginx的问题,而是 fast-cgi 执行超时没有及时返回数据到ngnix的问题. 可web和数据库负载都不高,不应该是程序超时的问题. 查资料也没有找到原因,网上于几个人说遇到同样问题,也没有好的解决方案. 后来仔细分析日志,发现出现错误的日志的时间都是大于当前时间,这点很奇怪,难道是系统时间的问题? 后来再仔细查资料,才找到原因. 原来是 centos 的一个内核bug, 调用gettimeofday()这个函数的时候会比当前时间快4398秒. 具体原因是因为多核cpu,各核的TSC不一样造成的. 看来 fast-cgi 应该是调用了这个函数的.
解决方案是升级内核.. 相信很多和我一样不是专业sa的兄弟对升级内核之类的事情还是比较犯怵的,不过不用担心有一个不用升级内核的解决方案. 在不升级kernel的情况下,可以考虑修改time source,来解决。修改kernel option。
具体操作如下:
vim /etc/grub.conf
kernel /vmlinuz-2.6.9-1.667 ro root=/dev/hda2 clock=pit (红色部分为新增的)
然后重启服务器,问题解决. 我的产品环境已经3天没有报这个错误了.
感谢一下,优米的SA提供的支持:)
参考资料:
http://blog.chinaunix.net/u/31357/showart_1302796.html
http://tonykorn97.itpub.net/post/6414/456362
Tags: centos, nginx, upstream timed out
很久之前在windows下用 xampp 时用 xdebug 很方便. 现在用mac,用mamp已经很久没用过xdebug了,今天突然需要用到,找了找如何安装使用,简单分享一下.
1. 先下载xdebug模块吧,地址如下http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging , 里面有mac版本,找个最新的版本下载就好.
2. 下载后打开,里面有好几个目录,注意选择和你的php版本对应的目录, 我的php是5.2.*, 所以打开 5.2 这个目录, 把这个目录下的 xdebug.so 考到 /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613, 注意目录里最后这个日期可能会因为版本的不同而不同,您需要先查看一下您的目录.
3. 编辑php配置文件 /Applications/MAMP/conf/php5/php.ini , 注意如果用 spotlight 找 php.ini 的话,会找到多个,千万别选成 php4 下的.
增加下面两行
昨天打开了一下google的网站管理员工具,看到了触目惊心的一张统计图
天那,google3个月来几乎没怎么抓取我的网站。。。 难怪我的pr从8掉到了7,再回头看看数据统计,更是夸张,下面是从google来访的统计
这是怎么回事儿呢? 基本可以判定是google的爬虫无法访问我的网站,或者访问的过程中遇到了什么障碍。
接下来就是分析问题的原因了
1. 首先查看网站的日志,发现最新的1000条里还有googlebot 造访的记录
2. 用google搜我一直排第一的关键词,结果前10页都没有翻到我,排第一的是一个极其恶心的网站,郁闷。
3. 用google网站管理员工具种的像google bot 一样去抓取功能,抓一下首页,发现失败,看来真的是google无法访问我的网站。
4. 看来要找google访问不了我的原因了,服务器是我独用的,没有其他网站,也没有邮件服务器或者其他,更没有欺骗搜索引擎的脚本,所以ip被google封掉的可能性不大。那就只能说明是我把google的ip封掉了! 因为之前遭遇cc攻击,写过一个封禁的脚本,自动把访问量超过一定限制的ip用iptables block 掉。
5. 我把 iptables 暂时停用,然后再用google网站管理员工具模拟一下googlebot,神奇的事情发生了,居然立即显示了成功状态和抓取结果。赶紧再查一下日志,发现google是通过 203.208.60.x 这个ip来抓取的。赶紧再去看一下封禁记录,发现这个c段的四五个ip都是在4月份被我的脚本自动封掉的:( 记得我当时还是分析了3个月的googlebot抓取的频率,才设定的每分钟访问动态页面超过150个被视为攻击,脚本跑了一年多,也没见google或者baidu的抓取异常。。。 莫非今年4月份的时候google修改了抓取频率了?
6. 回想起当年写这个脚本的原因,就是在08年底的时候遭遇了恐怖的cc攻击,后来写了脚本防范,为了防止误杀搜索引擎,所以加了 grep -i ‘xxxx|xxxx’ 的管道,结果这个攻击的人更过分,直接把 refferr 写成和 google bot 一样的方式,几千国外代理一起上来!然后我又改算法。。。。
结果搞清楚了,也可以避免问题的发生了,在这里要提醒做站的朋友,google webmasters 是个好东西,一定要定期查看。写自动封禁的脚本,一定要考虑到搜索引擎误伤问题,千万别犯我一样的错误。
Tags: cc攻击, webmasters, 网站管理员工具
很久之前在公司电脑上配过一次,周末写点儿小程序用到memcache,又重新查一遍资料,呵呵。 这次做个备忘。
1. 因为需要编译,所以需要gcc环境,不过好在我已经装过xcode了,跳过此步。
2.下载memcache的源码,然后编译配置。。。。 听着麻烦吧,不过有人早就帮忙写好了脚本,从下载到安装完成,执行一下就ok:) 脚本可以从这里下载。 只需要 chmod +x 一下,然后执行就好了。
3. 安装php-memcache扩展, 也简单,下载一个 PHP 5.2.5 (Intel) memcache.so 拷到 /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-[date] , 这个 [date]会根据你装的 MAMP 版本不同而不同,不用担心,你一定找得到。
4. 配置 php-memcache 扩展,打开php配置文件: /Applications/MAMP/conf/php5/php.ini 增加一行 extension=memcache.so 就ok了。加哪儿? 找到类似的行就行了,比如 php-mysql.so 之类的。
5. 重启 MAMP 就ok了, 用 phpinfo() 试一下,应该能看到 memcache 了。
6. 还没完,memcache 装好了,还没启动呢,我是这么启动的 memcached -m 32 -p 11211 -d 。 如果需要可以把这句加到 MAMP 的 startApache.sh 里,这样就可以自动启动了。 当然别忘了在 stopApache.sh 里也加一句 killall memcached.
就这些了:)喝水不忘挖井人,以上主要是从这篇文章学习的。
呵呵,不是我儿子满月哦,是我们苦心经营的优米网满月了! 3月17日上线,到今天,正好一个月。
发张图片纪念一下,3月17日凌晨,刚刚上线之后,我们最后几个坚守在工作岗位的同事在演播室的合影:
又好久没写blog了,实在是太忙了,忙了两三个月,优米网终于上线了,收到祝福不少,挨的板砖也不少。继续努力,希望有个好前景。
上周俞敏洪来我们这儿做了一场直播,非常精彩。 直播之前我也和他合了个影。
我跟他差不多高哦,可惜是身高,不是收入,嘿嘿。

呵呵,背景就是我们的办公室,还不错吧。
做了这么多年的网站,深知网站的需求是要来源于用户的,不能靠自己的主管判断的,可像我一样有很多人很多时候还都是相信自己所谓的眼光,所谓的判断,所谓的逻辑。。 这两天在生活中有一个鲜活的例子。
老爸老妈要回河南老家,让我把宝宝的照片视频刻几张光盘让他们带回老家给亲戚们看。 这个不难,前天晚上开始制作,到制作的时候才发现,家里没有空白的cd盘,只有dvd的,一想是呀,这两年都没用户cd了,刻盘都是用dvd,再一想,好多年没看过vcd机了,老家的人也应该都有dvd机了吧,特别是我朝现在家电下乡工程还进行的“如火如荼”。于是刻了三张dvd,测试播放良好。
昨天晚上回家拿给父母,他们立马傻眼了,说老家能有dvd嘛? 我说都啥年代了,谁还用vcd呀。 还是老妈老道,擅长做市场调查,随即打电话给几个亲戚,果然人家只有vcd机,没有dvd机,这下我也傻眼了。。。。
我晕,即使生活中的小事做市场调查都这么重要,何况做产品,做网站,干事业呼!
看看这个文章会不会自动出现在我的 Buzz 里?
刚才开始玩儿几天新浪围脖,google buzz 就出现了,呵呵,像俺这样的 google fans,岂有不倒戈的道理?
Tags: google buzz