网络文化大革命前的牢骚 11
不知道我的动态IP计划还能坚持多久,已经有消息表明为了响应工信部下达的文件,电信正在开始逐步关闭个人ADSL用户的80端口。
虽然我是DreamHost的用户,随时都可以把blog切换过去,不过我相信那可能是我个人架站的最后一块筹码了。
P.S. 刚才写这篇文章的时候,发现我的牛肉汤烧干了,杯具中的杯具阿~Nginx,PhusionPassenger 整合笔记(安装篇) 8584
我所负责公司里的一个产品是用java开发的,为了偷懒,该产品的维护及报表程序就直接用ruby开发了,至少我觉得写ruby要比写ant方便多了。
时隔一年,产品也从2.1升级到了3.0,随着产品的业务逻辑修改,这个ruby的子项目也越来越臃肿了,虽然程序运行没有问题,但因为是边学习ruby边写的所以和DRY一点关系也扯不上。
另外由于正值该产品平台版本升级过渡阶段,我们其实是需要同时维护新旧两个产品的,重写一套兼容性更好的运维报表程序是很有必要的,我用了大约2周的工作时间完成了这个工作。
nginx是由俄国人编写的轻量级WEB代理服务器,接触它也已经大半年了,在熟悉了nginx的配置及应用后,我也有打算把产品的前端从apache2迁移至nginx,一旦这么做那么必须保证目前运行tomcat和cgi程序功能不受影响。
tomcat方面自然采用了nginx的强大代理功能来配置,而cgi方面则采用phusion passenger的mod_rack方式进行替代。
下面切入正题,开始真正的安装篇,我这里使用的服务器是debian etch
STEP 1,下载 nginx tarball
$ mkdir -p ~/opt/src && sudo ln -s ~/opt/src /opt && cd ~/opt/src && wget http://nginx.org/download/nginx-0.7.64.tar.gz && tar xzvf nginx-0.7.64.tar.gz
STEP 2,下载 phusion passenger
$ sudo gem install passenger
STEP 3,安装 nginx 和 phusion passenger
$ sudo passenger-install-nginx-module --prefix=/opt/nginx/nginx-0.7.64 --nginx-source-dir=/opt/src/nginx-0.7.64
如果提示SSL库没有安装,可以执行
$ sudo aptitude install libopenssl-ruby libssl-dev
然后继续,此间安装程序会自动帮你安装nginx所需的pcre库,然后确认所有的安装提示即可,如果需要安装nginx的其他插件也可以加入自定义的参数。
STEP 4,调整 nginx 路径
$ sudo ln -s /opt/nginx/nginx-0.7.64 /opt/nginx/default
$ sudo ln -s /opt/nginx/default/sbin/nginx /usr/sbin/nginx
$ sudo ln -s /opt/nginx/default/conf /etc/nginx
STEP 5,添加 nginx init.d 脚本
这里我直接使用了debian自带的脚本。
Wordpress和Typo之间
之前的blog是06年时用wordpress搭建的,后来放在dreamhost上长期闲置。
使用ruby也快一年了,而且家中添置了一台小小的ubuntu server,安装了typo, 我就把blog搬了回来。
修正typo对中文标题文章支持的bug
刚装好typo5.4, 发现如果发表的文章采用了中文标题,则对应的permalink将只能返回404页面。
原因在于RedirectController将已经URI.decode过的参数传给了Article.find_by_permalink方法,该方法直接去查询articles表中:permalink列,所以失败。
修改方法很简单,只要修改${TYPO_ROOT}/app/models/article.rb文件第277行,将
req_params[:permalink] = params[:title]
修改为
req_params[:permalink] = URI.encode(params[:title])
即可
小站采用动态IP重新开张
jhsea3do@atompara:~$ dig blog.javaws.com ; <<>> DiG 9.5.0-P2.1 <<>> blog.javaws.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12888 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;blog.javaws.com. IN A ;; ANSWER SECTION: blog.javaws.com. 14400 IN CNAME jhsea3do.dyndns.org. jhsea3do.dyndns.org. 60 IN A 114.92.127.231 ;; Query time: 591 msec ;; SERVER: 208.67.220.222#53(208.67.220.222) ;; WHEN: Mon Dec 21 00:22:59 2009 ;; MSG SIZE rcvd: 82