MovableType

MovableType
活字印刷,MT至高!

如何把MovableType导入Drupal

Tony 提交于 周四, 02/04/2016 - 12:22

此文记录了如何把一个MovableType的博客导入Drupal的过程,也可当成是一个WordPress导入Drupal的教程。 大体思路是先把MovalbeType导入WordPress,然后通过Migration from WordPress模块把WordPress导入Drupal。

导入前导入后的文件结构区别,N/A表示在转换过程中会丢失

  • MovableType ---> WordPress ---> Drupal
  • Entry ---> Post ---> Article
  • Page ---> N/A ---> N/A 注:MovableType导出的文件不带Page的部分
  • Category ---> Category ---> Tags(taxonomy)
  • Tags ---> Category ---> Tags(taxonomy) 注:在MovalbeType导入WordPress过程中后会自动截取文章标题转录入Tags,会有大量Tags生成。
  • Custom Fields ---> N/A ---> N/A
  • Comment ---> Comment ---> Comment
  • Trackback ---> Comment ---> Comment

MovalbeType导入WordPress

  1. 在MT 6后台,选 Tools -> Export Entries -> Export Website,可以得到一个TXT文件。
  2. 把这个TXT文件改名为 mt-export.txt ,上传到WordPress的 wp-content 目录下。
  3. 在WP后台,选 工具 -> 导入 -> Movable Type and TypePad (可能会提示需要安装插件) -> 导入 mt-export.txt
  4. 完成。

WordPress导入Drupal所需要的模块

因为Migration from WordPress支持在线导入WordPress站点,不需要任何数据文件,使得两边导入非常便捷,不用担心导入体积较大的网站时会出现脚本超时的状况。导入过程也伴随一个导入向导,你可以在向导中设置各种导入参数,甚至可以在导入结束后把Drupal倒回原来的状态。

Typepad托管试用心得

Tony 提交于 周日, 08/02/2015 - 21:50

Typepad托管试用心得

试用了一下Typepad的收费版,计划是如果Typepad的表现能接近Movabletype或相仿的话就会把自建的Movabletype博客转移上去托管,毕竟都是同一个东家的产物。

试用的是$14.95一个月的Unlimited Plan(年付的话送两个月$149.5),可以开无数个子博客,开启完全自定义HTML功能,没有广告。

Typepad托管的特色

  • 支持MovableType的Template Tag Reference,MT皮肤移植SO EASY!
  • 支持从WordPress,MovableType导入文章。
  • 众多插件支持,包括Disqus,Bit.ly Link Shortener,Google Analytics。
  • 支持通过邮件上稿。(上班的时候想吐槽就在OUTLOOK里来一发)
  • 后台有大量应对SEO友好的设置。
  • 每个博客都支持多作者合写。

托管在Typepad的好处

  • 速度飞快,经过过MovableType静态生成的人一定会惊讶TypePad页面生成的速度。
  • 访客如果已经登录了Typepad,当访问其他Typepad托管的博客时,可以方便地加入阅读器并关注。
  • 无限博客数量是很让人上瘾的……

托管在Typepad的不足

  • 贵。
  • 绑定域名部分的操作很不人性化。
  • 搜索功能非常差,对中文搜索不好,我遇到中文搜索不能的情况后跟客服交流过几次,按照客服的指引做(等待索引)依旧不能成功,这是我放弃Typepad的最主要因素。
  • Typepad前端加载在CloudFlare上,有部分CF的IP在国内访问不到。

blog.tonyhead.com. 300 IN CNAME tonyhead.typepad.com.
tonyhead.typepad.com. 300 IN CNAME cname-cloudflare.typepad.com.
cname-cloudflare.typepad.com. 300 IN A 190.93.247.9
cname-cloudflare.typepad.com. 300 IN A 141.101.115.9
cname-cloudflare.typepad.com. 300 IN A 190.93.244.9
cname-cloudflare.typepad.com. 300 IN A 190.93.245.9
cname-cloudflare.typepad.com. 300 IN A 190.93.246.9

总结

如果你需要做很多个英文的小站,并且只需要1个系统管理员,那么可以考虑Typepad。

TONYHEAD.COM切换到HTTPS上

Tony 提交于 周五, 08/15/2014 - 14:39

TONYHEAD.COM切换到HTTPS上

响应Google号召,使用 HTTPS 为TONYHEAD 通利堂全站护持。

SSL证书是msg7086友情帮忙签的Comodo Positive SSL,再次感谢。

2014-09-14更新

出于速度考量(又拍云的二级域名需要花费5秒在SSL Negotiation上),只对后台启用HTTPS加密,前台使用HTTP。

MovableType配置

修改 mt-config.cgi 里 CGIPath ,如果只是需求单纯Admin后台部分(mt.cgi)启用HTTPS那么就改成 AdminCGIPath ,因为我的计划是前后台(mt-comment.cgi+mt.cgi)都启用HTTPS,所以我设置的是 CGIPath 。

CGIPath https://www.tonyhead.com/cgi-bin/mt/

Nginx配置

在server括号中加入下列,把所有走80端口的流量都重定向到HTTPS下。

if ($server_port ~ "^80$"){ set $rule_0 1$rule_0; } if ($rule_0 = "1"){ rewrite /(.*) https://www.tonyhead.com/ $1 permanent; break; }

页面元素路径配置

把页面元素的引用路径都改成"//domain/flower.jpg"是一个好习惯,浏览器会根据当前页面是HTTP或是HTTPS来自动适配。

其他发现

  1. 在清理页面混合内容的过程中发现新浪云的 .sinaapp.com 和又拍云的 .upaiyun.com 都能支持HTTPS访问,在此大力推荐。
  2. AdminCGIPath 和 CGIPath 的区别
  3. 为了让手机上的浏览器(包括QQ浏览器和Chrome)完美支持加密访问TONYHEAD(不需要在客户端加入额外证书,避免了感叹号提示),需要在服务器端上做好足够的证书链,为什么需要完整的证书链可以参考这里
  4. TONYHEAD.COM的证书链截图。

如何通过Nginx+PSGI运行MovableType

Tony 提交于 周一, 08/11/2014 - 12:50

一个游戏在通关前我都说不上喜爱,随后所有的精诚法门敏捷操控总在我知道我能通关为前提下一一展现。例如贪吃蛇,全屏首尾相接是没有悬念的,区别只在后期食物和加分水果距离蛇头的位置,来决定通关后能够获得的差异的分数。这也是我喜欢网页设计的原因,反正最终是可以实(chao)现(xi)这个效果的,只是看要花多少时间走怎(pian)样(men)的路线罢了。

于是我又来折腾了,把TONYHEAD 通利堂从传统的Apache-cgi_module-CGI切换到Nginx-PSGI-CGI上。

先说说为什么要用PSGI来跑MovableType这个Perl应用,用过MT的都知道MT后台的反应是多么的龟速(短板不在硬件上),想达到WordPress后台那种按按按就出结果的节奏是不可能的,但亲测转到PSGI后效果有明显改善。根据测评,PSGI模式的效率是CGI模式的1.9倍,是FastCGI的1.4倍,在另一个测评中,PSGI的效率都在CGI的2倍以上,如图:

CGI vs PSGI

图片来源

总之切换到PSGI后效能的提升是显而易见的,下面开始介绍做法。

系统环境

Starman是一个PSGI网关,在MovableType 5.2开始支持Nginx+PSGI时进入视野,mt-starman-daemon作为守护进程会把 /cgi-bin/mt/ 目录先预读进内存,把该目录下的所有cgi/pl脚本交给Starman处理,Nginx则负责处理前端静态文件和转发Starman。在AWS市场里Nginx+MySQL+Starman是作为MovableType 6的标准配置,可见这一组合和思路是被推崇的。

步骤

OS部分

先安装cpanminus。

curl -L http://cpanmin.us/ | perl - App::cpanminus

安装Plack,XMLRPC和Starman,这一步需时较长,请耐心等待。

cpanm Task::Plack XMLRPC::Transport::HTTP::Plack Starman

下载mt-starman。

wget -P /etc/init.d --no-check-certificate http://raw.github.com/saahov/mt-starman-daemon/master/debian/mt-starman

把mt-starman设置为可执行。

chmod +x /etc/init.d/mt-starman

修改mt-starman中的配置,需要修改 DIR, SCRIPT, USER, GROUP, ERROR_LOG, PIDFILE 这几个地方。

vi /etc/init.d/mt-starman

把mt-starman加入自动启动。

update-rc.d mt-starman defaults

Nginx部分

Nginx安装的具体步骤网上都有,一键安装包LNMPAMH都是不错的选择。配置Starman需要在 /usr/local/nginx/conf/nginx.conf 里 http 括号内加入:

upstream starman {
server 127.0.0.1:50000;
}

DISQUS/多说心得

Tony 提交于 周六, 08/02/2014 - 10:48

DISQUS/多说心得

在很久以前评论还是属于博客主的资源,在搬迁的过程中文章评论一个不能丢。近年网络社交兴起博客主为了吸引访客互动会使用第三方网站托管评论。于是我就尝试了一下把评论迁移到第三方社会化评论平台上,经过一段时间的测试最终还是没把通利堂的评论托管到DISQUS多说上,但整理了一些心得供分享。

优点

  • 两者的安装都很简单,对主流系统(WordPress,Drupal等)提供了插件,亦有通用代码模式可以嵌入任意网站。
  • 都可以把评论同步会原系统(部分程序例如WordPress),让你无痛切换回原评论系统。
  • 都可以在手机浏览器中使用。
  • 用第三方评论系统能提高网站的安全性(水桶理论),不少“安全网站”也在使用DISQUS。

缺点

  • 不知道哪天开始就会增加广告或者要求付费。
  • DISQUS有被墙的可能性。
  • DISQUS不支持国内流行的社交平台帐号登录和分享(例如不支持新浪微博登录和分享到新浪微博)。
  • 使用DISQUS会为页面增加大概250KB体积,来自至少3个域名,15个以上的JS/CSS/字体/图片文件。
  • 使用多说会为页面增加大概200KB体积,来自至少2个域名,8个以上的JS/CSS/图片文件。
  • DISQUS评论同步功能不支持同步回MovebleType 5。(残念……放弃)
  • 国内服务的缺点:网站接入社会化评论需取得 ICP 备案

DISQUS小技巧

 

为MovableType加入Memcached增强效率

Tony 提交于 周四, 02/28/2013 - 19:22

转移到VPS后可以随心所欲地配置服务器,这次加入了Memcached以增强MovableType搜索页面和全站生成时的效率。

部署Memcached的好处

TONYHEAD 通利堂的网站结构有一个重要的部分就是标签和关键词页面,例如魔兽世界这个标签,浏览器中的路径是简洁的例如:

但实际上是用MovableType的搜索功能+.htaccess做的一个花招,每次用户或者搜索引擎点击上面的地址时都会执行一次以下脚本:

当搜索引擎蜘蛛在爬我的网站的时候我就会开始担心服务器的资源了 =。= ,而且响应变慢的话也会影响收录结果,所以有任何可能提高这个页面查询结果的方法的话我都想尝试,例如引入一个Memcached

下面的表格是我尝试不同大小的Memcached的结果,最后根据VPS的限制我选择了在内网的其他空闲VPS上跑128MB的。

未加入Memcached前生成全站耗时11分20秒 第一次生成全站耗时 第二次生成全站耗时 第三次生成全站耗时
Memcached设置为32MB时 12分3秒 7分53秒 7分19秒
Memcached设置为64MB时 7分59秒 9分11秒 8分8秒
Memcached设置为128MB时 8分55秒 8分16秒 7分59秒

Memcached部署方法

VPS上安装Memcached

yum install memcached

启动Memcached,以下命令是启动一个在本机11211端口上128MB的实例,如果在内网其他机子(172.11.7.30)上启动则在172.11.7.30上执行 /usr/bin/memcached -d -m 128 -u root -p 11211 -l 172.11.7.30

/usr/bin/memcached -d -m 128 -u root -p 11211 -l 127.0.0.1

为Perl安装Memcached模块

wget http://search.cpan.org/CPAN/authors/id/D/DO/DORMANDO/Cache-Memcached-1… && tar -zxvf Cache-Memcached-1.30.tar.gz && cd Cache-Memcached-1.30 && perl Makefile.PL && make && make install

String-CRC是其依存模块,也要安装。

wget http://search.cpan.org/CPAN/authors/id/S/SO/SOENKE/String-CRC32-1.4.tar… && tar -zxvf String-CRC32-1.4.tar.gz && cd String-CRC32-1.4 && perl Makefile.PL && make && make install

为MovableType安装Memcached模块

不需要,因为MovableType是原生支持Memcached的。

好吧,其实还是需要在mt-config.cgi里面配置一下MemcachedServer的,告诉系统哪里可以找到Memcached服务器。