Wordpress转换到Octopress

今天青蛙下定决心干掉Wordpress了,不为别的,就因为 在大天朝访问Openshift不靠谱的连接状态。

把Wordpress转换到Octopress这件事,对于天天泡在github 上的青蛙来说,实在是简单到爆了。github账户有了,ruby 运行环境有了,只要简单几步就够了:

  1. 按照 http://octopress.org/docs/setup/ git clone回octopress代码,安装bundler,安装默认主题。
  2. 按照 http://octopress.org/docs/deploying/github/ 在github上新建一个repo,名字取为"your_github_id.github.com",在Octopress的目录中执行 rake setup_github_pages, 在提示符中填入这个新建的repo的git地址。
  3. 然后 rake generate rake deploy
  4. 用浏览器访问"http://your_github_id.github.com",应该就能看到Octopress的页面了。
  5. 记得要把源码 …

more ...

本blog已经迁移到 Openshift

本Blog今天已经正式迁移到Openshift平台上了,欢迎反馈问题报告及速度报告。

同时在linode的服务器已经关闭。

其实linode真的很好很不错,只是青蛙的blog根本用不到一个vps来支持, vps上的资源几乎每天都是浪费掉的,还不如用PaaS平台低碳一些。

generate_graph.png

generate_graph_mem.png

more ...

procmail + kdialog 构建邮件提醒脚本

Mutt真的是神器,越用越觉得爽。 可惜命令行模式的工具都有个弊端:跟X交互能力比较弱, 例如Mutt就木有邮件提醒功能。

之前在Gnome2的年代里还有 mail-notification 可以对付用(这玩意占用系统资源狂多,似乎是通过监视文件更改来提醒的), 在Gnome3之后这个工具就完全不工作了,而且又没有后续版本。

青蛙抛弃Gnome,换成KDE之后,也没有找到KDE下的邮件提醒工具,于是一直酝酿着自己写一个。

实现邮件提醒功能,无非就是监控邮箱变更,可以在几个点检查:

  • 直接使用POP/IMAP协议检查服务器端
  • 监视MTA动作
  • 监视MDA动作
  • 监视MUA动作
  • 监视邮箱文件/目录更改

直接访问服务器是最直接的办法,但是既然MTA都把邮件收下来了, 再去监视服务器就有点绕腾了,这种方法监视gmail/hotmail之类的邮箱还是很不错的。

监视MUA的动作, adam8157同学 就是这么做的, 监视Mutt startusbar的特殊字符串,通过Mutt的filter发送notify消息。

监视邮箱文件/目录变化就是 mail-notification 的做法了,但是如果不想轮询的话,大概需要内核开启inotify支持。

监视MTA动作,青蛙没有仔细研究,似乎还是需要MDA的某些行为处理, 所以青蛙直接用了在MDA里加入提醒脚本的方法。

监视MDA动作,就是青蛙的做法 …

more ...

配置wordpress的邮件发送功能

青蛙继续倒腾vps,今天的主题是调教wordpress发送邮件。

之前在Dreamhost上面,邮件系统已经配置好了,wordpress不需要任何设置就可以直接发送邮件。 到了vps上之后,青蛙为了节省资源,没有安装邮件服务器,所以想要发送邮件,还需要自己折腾。

青蛙首先是想到了配置一个轻量级的MTA,例如msmtp之类的, 然后修改php.ini的sendmail_path参数,使它指向msmtp。 这样php程序就具有邮件发送能力了,但是这样产生的问题就是邮件的发送服务器是固定的, 而且需要配置一个帐号来做登录服务器,如果某个用户希望使用自己的服务器发送某些邮件, 这样配置就无法实现了。

为了实现完美的解决方案,青蛙又搜了一圈,发现了wordpress已经集成了一个PHPMailer[1]类, 并且提供了一个wp_mail函数[2]来发送邮件, 有很多设置SMTP的插件[3]方便我们配置SMTP服务器和外发邮件帐号信息。

青蛙选择了WP Mail SMTP插件,非常简单,把所有参数填好,wordpress就可以发送邮件了。

参考资料:

[1] PHPMailer http://phpmailer.worxware.com/

[2] Function Reference/wp_mail http://codex …

more ...


为https服务申请SSL证书

书接上文,上回书说到青蛙成功给nginx配置上了https服务, 但是当时青蛙使用的是自签名证书,没有验证网站身份的功能; 而且有些工具会对证书的有效性进行校验,对于这种工具,自签名证书就毫无用处了。

这个时候,就需要申请一个经过CA认证的有效证书。

据青蛙所知,目前提供免费SSL证书的只有StartSSL[1]一家, 青蛙按照这两个网站的介绍[2][3],成功申请了SSL证书。

依照青蛙的经验,要成功申请证书,最好是有一个以要申请域名结尾的邮箱, 这样可以很容易的确认域名所有权。至于邮箱服务,可以申请google app,方便,免费。

有了邮箱系统之后,可以设置一个webmaster或者hostmaster账户,以便注册过程中验证域名地址。

在StartSSL申请证书的时候有几点需要注意:

首先,建议使用firefox申请证书,青蛙用Chromium试了一下, 点击进入Sign-up界面的时候会出现一个错误提示,明确说明Chrome类浏览器无法申请。 有网友说IE也没法成功申请[1]。

其次,申请的时候尽量填写靠谱的个人信息, 如果信息看起来不靠谱,很容易被拒掉。 个人信息填写完之后会向你填写的邮箱里发送一封认证邮件,邮件中包含继续注册所需的验证码。 输入验证码之后提示等待人工审核,青蛙遇到的审核过程很快,大概几分钟就有结果了。

接下来还有一封邮件,里面有一个链接和一个认证码,访问那个连接,填上认证码 …

more ...

在NGINX上开启https

青蛙的新VPS是基于nginx的,仅仅是因为传言nginx在小内存,大压力的时候表现好一些。

当然,为了获得这点好处,还是要付出一些代价的。 例如nginx没有apache的htaccess,对每个目录的控制都需要写到nginx的配置文件中, 这样对普通用户来说十分的不方便。

哦,有点跑题,继续说https的问题,其实给nginx配置https也不复杂, 按照网上现成的模板,改一下自己的域名和目录位置就好了。

下面是一个完整的示例[1][2]:(来自这里

upstream test.com {
    server 192.168.1.2:80;
}

server {
    server_name test.com;
    include port.conf;

    ssl on;
    ssl_certificate server.crt; # ${nginx_install_dir}/conf/server.crt
    ssl_certificate_key server.key; # ${nginx_install_dir}/conf …
more ...