站台日志

如何把 MovableType 导入 Drupal

Tony 提交于 2016-02-04 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所需要的模块

  • Token: https://www.drupal.org/project/token
  • Migrate: https://www.drupal.org/project/migrate
  • Migration from WordPress: https://www.drupal.org/project/wordpress_migrate

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

TONYHEAD.COM切换到HTTPS上

Tony 提交于 2014-08-15 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 提交于 2014-08-11 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;
}

搬迁到BuyVM

Tony 提交于 2012-11-18 20:01, 星期日

BuyVM最近提供了单独的MySQL服务,每月1美金就可以租用高性能的数据库,而且和本家VPS位于同一内网上,速度和安全都有非常有保障。

Offloaded database servers

For an additional $1.00/month, customers may purchase access to an offloaded MySQL server located on the same LAN as your VPS server.

Our SQL servers are backed by RAID 10 + SSD read caching to drastically improve performance.

All access to the SQL servers is available over your private IP address, meaning you pay no additional bandwidth costs for usage.

https://my.frantech.ca/cart.php?gid=19

之前购买了15元年付的128M VPS,受制于内存一直没有好好利用,现在加上数据库服务就可以把这个VPS用上,有种生机焕发的感觉。 :)

VPS环境CentOS 6.0 32bit (minimal),使用的是XAMPP配置Apache+PHP+Perl+ProFTPD (把安装文件的MySQL部分注释掉就可以省略MySQL了),安装完成后只占用60M左右的内存。(phpSysinfo信息)

搬迁到BuyVM的原因是旧空间商Site5准备限制资源了,而我目前的状况是每天都会超资源的,如果不迁出来就要升级方案,大概要额外给多7块钱左右,而BuyVM这边只需要每月1.25元,干脆搬过来VPS上,重建MovableType的时候再也不用担心影响到邻居了。

目前对BuyVM的想法主要分为两个方向:

  1. 优化单台VPS上的服务以达到"好用"的程度。(虚拟主机---》够用---》好用---》Linode)
  2. 利用BuyVM提供内网IP特色构造服务器群,以提高服务器群整体效率。

2013-01-08更新

BuyVM的Offloaded SQL服务,自己用不完,分点出来给同是BuyVM上的朋友。

位于SJ机房(1月18号将会搬迁),通过内网传输数据,可以为你节省一个MySQL服务,在BuyVM流行的128M小型号VPS上非常有意义。

Offloaded SQL - San Jose - Offloaded MySQL Hosting
Unlimited Databases
Unlimited Usernames
Unlimited Traffic
10GB Storage

Offloaded SQL:https://my.frantech.ca/cart.php?gid=19

Offloaded SQL的说明:http://wiki.buyvm.net/doku.php/sharedsql

如果同样为内存资源烦恼又信赖我的话(我不会看/动你的数据)可以联系我,希望你也是同在SJ机房并且知道128MB内存足够跑任何个人网站。 tyf0575@gmail.com

文章标签

升级到Movable Type 5.13

Tony 提交于 2012-03-05 21:32, 星期一

把TONYHEAD 通利堂的站台从Movable Type 4.38升级到5.13,并把这座“房子”的坑补了一遍。

Movable Type 5

 

因为5.x的feeds-app-lite(版本1.22)抓取中文的rss会乱码,而我非常需要这个功能现实在首页的右侧,这是我停留在4.x的主要原因。直到最近找到了一个del.icio.us的PHP库可以做到一样的功能,于是我把这个坑填上并转移到Movable Type 5之上。

但这个PHP脚本不是生成静态的html,所以每次加载会有一定延迟,于是我用js做了一个延迟显示,这样就算加载不了也不会影响整个页面。

 

Movable Type 5

图:未加载完delicious_content前会显示一个Loading Loading 的图标,不影响显示页面的其他部分,读取完毕会加载入页面。

同时用这个库做了一个美味书签页面,使得风格可以统一起来并且显示在TONYHEAD 通利堂的“领土”之上(如果用阿殷的话说就是“under my custody”)

关于MovableType生成文件的属性,可参考这帖,这在需要生成PHP的环境中会遇到(例如在生成的页面里执行PHP代码,PHP文件需要755的属性来执行),我的配置如下:

HTMLPerms 0755
DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022

另外因为服务器安全升级,旧的QRCode生成方式被禁止了,索性去掉,现在的QRCode交给Google Chart Tools生成。

掌上设备阅读

至此把5.x和书签的坑全填上了。

文章标签

CloudFlare统计

Tony 提交于 2011-11-09 20:51, 星期三

CloudFlare上TONYHEAD.COM 2011-10-09至2011-11-08区间统计。

TONYHEAD.COM使用了CloudFlare服务一段时间,回头看一看使用CloudFlare带来的收益。 TONYHEAD.COM现在有11个A记录,2个CNAME记录由CloudFlare处理,在2011-10-09至2011-11-08期间:

CloudFlare
共产生了56,175个浏览量,其中41,983个系普通流量,5,342个来自搜索引擎,8,850来自风险流量。
CloudFlare
共发生254,038次页面元素请求,其中CloudFlare提供了194,829次响应,即系为TONYHEAD.COM的服务器节省了76%的请求数。
CloudFlare
共产生2.4GB流量,其中CloudFlare提供了其中的1.3GB,即系为TONYHEAD.COM的服务器节省了54%的流量。

以下为后台截图:

TONYHEAD.COM 2011-10-09至2011-11-08区间统计

文章标签

CloudFlare 使用心得

Tony 提交于 2011-09-06 13:14, 星期二

2011-09-02 开始使用 CloudFlare 接管网站和访客之间的链路,以下是使用心得记录下来。
 

2014-09-03 更新:因为启用了HTTPS,所以关闭了 CloudFlare CDN 功能,只用 CloudFlare 作为 DNS。

如果云是橙色的说明本站正在使用 CloudFlare 服务。(浏览器需要打开javascript)

ipv6 ready

2011-09-27开始提供ipv6支持

当初使用CloudFlare仅是以为可以为自定义域名的Tumblr网站提供代理,但在注册的过程中发现CloudFlare是全个域名来接管的,于是把这个博客也接管过去。

原理

CloudFlare

由CloudFlare充当反向代理服务器,客户端访问的不再是原来的网页服务器而是CloudFlare提供的“云“,这块“云”是基于CDN的,同时具有缓存网页内容/抵御异常流量的功能。

我把CloudFlare应用在TONYHEAD 通利堂Tumblr架设的Tumblr中文站上,同理可以应用在Blogger。

5a1x

启用前5A1X

5a1v

启用后5A1V

自建服务器转移到虚拟机之上

Tony 提交于 2011-06-11 00:34, 星期六

PIII的显卡被UNDEAD征用后剩余部分成为一堆闲置废铁,帮LIGHTLOAD加了2G内存后(现在共4G)发觉可以让利用多余的内存运行一D常驻程序,于是用VirtualBox装了个Windows 2003 Web Edition来取代PIII来提供自建WEB服务器之用。

优点

方便备份,现在只需要备份虚拟机的镜像文件就可以完整备份“一台电脑”了。
环保省电。
更好玩。

缺点

大量文件操作始终对母机有较大影响,所以关闭FTP服务。
母机身子骨必须坚挺,否则一停就相当于停两台机。

还是GoDaddy给力啊

Tony 提交于 2010-09-26 10:47, 星期日

我就算喜爱官恩娜
都不及爱你的哨牙
我就算喜爱何韵诗
她都不及你的法文诗

全球知名的域名注册服务商GoDaddy在24日宣布,将在新加坡建立新的数据中心,籍此拓展其在全球的网络业务,同时GoDaddy也迎来首个亚洲面孔的GoDaddy女郎。 香港女星官恩娜成新GoDaddy女郎。

GoDaddy有好多(赛车)女郎,但文化差异原因一直觉得每次开首页时见到的几位令我完全提不起兴趣,但现在不同了,最新一期Godaddy Girl居然系官恩娜


(呢个动作好多人都摆过)

相关链接

文章标签

相对路径和CDN分发

Tony 提交于 2009-10-06 12:54, 星期二

受到KomicaWiki的Komica條目中关于 使用CoralCDN分流 部分的启发,加上中海宽带对中海内网极之糟糕的路由策略(有部分中海用户相互之间不能链接,或一旦链接会造成其他网络应用断开)导致鸡鸡对常年不能访问通利堂表示遗憾。 所以我决定加多一个访问TONYHEAD通利堂方法,自建服务器真系好玩!

之後由於 ADSL 線路無法應付流量快速成長的需求,1883 氏在友人 L 氏和 H 氏贊助下,陸續使用了三個 Dreamhost 付費空間。並將大多數的貼圖板轉移到付費空間上。之後並在 mormor 的建議下,使用 CoralCDN 分流來降低流量。原 ADSL 線路則以支援文字板為主。

于是为了加入CoralCDN的支持,我修改了一下域名设置,现在tonyhead.comwww.tonyhead.com对应的是不同的主机:tonyhead.com放置在可靠的Site5上,页面上有两个链接,一是回到架设在中海宽带上的www.tonyhead.com,一是走CoralCDNwww.tonyhead.com.nyud.net(如果以前玩过Blogger的应该记得有个穿墙法就是在blogspot.com后加上.nyud.net:8080,其实就是CoralCDN的应用)。

个人服务器上应用CoralCDN的原理(大致上的)

当有用户请求 www.tonyhead.com.nyud.net 时,CoralCDN就会在各地的分发服务器上找关于 www.tonyhead.com 的缓存(多数是没有的啦,因为这只是一个很冷门的站点,关于热门的定义在CoralCDN的定义里只有2类,分别会缓存20秒钟和60秒钟),没有的话就读取 www.tonyhead.com 并缓存下来,这样用户访问的将会是分发服务器上的缓存过的内容而不是 www.tonyhead.com 上直接读取的内容,因为 www.tonyhead.com 对分发服务器是可见的,这样就能帮助用户绕过因为本地网络的问题(如部分中海宽带用户相互之间不能链接)而访问到 www.tonyhead.com 上的内容了。

在具体实施中遇到的问题有

  1. MovableType中的<$mt:EntryLink$>参数生成的是绝对路径。如在www.tonyhead.com首页上,其中一篇文章的链接是“http://www.tonyhead.com/archive/00001.html”,但如果访问“www.tonyhead.com.nyud.net”,其链接依旧是"http://www.tonyhead.com/archive/00001.html",则访客依旧访问不能。所以要把绝对路径改为相对路径,我用MTRelativeURL插件解决这个问题,现在文章的链接在代码里面生成的是“/archive/00001.html”,那么无论是“www.tonyhead.com”或“www.tonyhead.com.nyud.net”,下面的链接都能自动适应当前域名
  2. 因为链接都改成相对路径的了,所以要留一手防止恶意CNAME解析,暂时没有什么好方法,只把部分链接做成相对路径,一些页内的链接还是保持绝对路径的形式囧

相关阅读