MT安装笔记:初始化和安全配置
参考了UDOO的51.net上的MT安装备忘,略有改动。
网站发布系统在设计上最重要的就是良好引用(well referenced),良好组织(well organized),良好导航(with easy navigation),此外MT的良好的web化管理部署的确非常精致。
参考了UDOO的51.net上的MT安装备忘,略有改动。
网站发布系统在设计上最重要的就是良好引用(well referenced),良好组织(well organized),良好导航(with easy navigation),此外MT的良好的web化管理部署的确非常精致。
分类索引:
首页缺省有按月归档的索引,没有分类目录的索引,看了手册里面也没有具体的参数定义,只好直接看SOURCE:尝试着把Monthly改成Category,居然成了 :-)
还到了Movable Style的MT样式站,它本身也是用MT做的,但是右面有个皮肤样式切换下拉框,所有样式都可以在线浏览,选好了下载,替换自己网站得site-style.css即可。
mtupgrade - Upgrading Movable Type
终于找到了将Movabletype 2.x升级到movabletype 3.x版本的升级文档:
方法就是下载时,选择 upgrade包,解包后,将相应文件上传到STATIC_DIR和MT程序的安装路径:MT-DIR下。
执行相应的mt-upgrade30.cgi(从2.6升级到3.0)和 mt-upgrade31.cgi (从3.0升级到3.1)。升级后,大部分原来MT2的汉化翻译包都还能用,但是需要注意:2.x缺失了一个模板:Comment Pending Template,如果设置了评论需要批准才可发表,缺了这个模板可能导致MT一些出错信息(但评论不会丢),可以从movabletype.org进行下载这些缺省模板。
plug-ins: Blacklist需要升级到2.x,重新上传。
MT3.x的主要改进:
comments编辑功能:所有评论必须通过授权才能发布,对于防止spam这点还是非常必要的。
MovableType+TWiki是一对经典的基于Perl的企业级内容管理方案,能应付较高的访问量;
WordPress+MediaWiki则是另外一组基于PHP的组合拳:有着非常平滑的学习曲线,非常适合中小型项目;隐约能够感觉到WordPress的成熟度也越来越高了,最近发现而新建的blog网站使用WP系统的非常多,而且很多blogger都在考虑迁移中。
在实际的使用过程中,我也能感受到MT的很多问题,现将MT和WP的优缺点对比如下:
1 安装:程序分别部署在cgi-bin 和 发布目录下,比较难于维护。相比之下:WordPress的安装显得清晰很多;
2 调试:基于Perl,在虚拟主机不提供日志的情况下,MT的安装过程出现问题后非常难调试;
3 浏览机制:相对于于小型网站:在访问量不大的情况下:WP可以提供比MT更方便的类聚和扩展浏览模式;在SEO方面:WP利用path_info机制也能达到和MT一样的效果。
WordPress的安装(需要有MySQL数据库支持)
1 下载:最新版本http://wordpress.org/download/
2 修改配置文件:wp-config-sample.php
define('DB_NAME', 'db name'); // The name of the database
define('DB_USER', 'db username'); // Your MySQL username
define('DB_PASSWORD', 'db password'); // ...and password
define('DB_HOST', 'localhost'); // 99% chance you won't need to change this value
另存成 wp-config.php
3 在虎翼网上:由于不能支持phpversion() 函数:需要将 wp-settings.php 文件中的16,17行改成:
if ( !('4.3.2' >= '4.1') )
die( 'Your server is running PHP version ' . '4.3.2' . ' but WordPress requires at least 4.1' );
或者干脆删除这2行:如果能保证服务器端PHP版本在4.1以上
4 上传文件:按照 http://www.example.com/wp-admin/install.php 的提示进行安装。
从MT迁移:
1 利用MT的import/export模块:
建议在IE下导出,在FIREFOX下会将html标记 < 转义成 <lt; 在导入到WP以后反而无法正常显示原先的内容了。
2 将导出文件存成 import.txt 上传到 wp-admin目录下:修改import-mt.php 的2行,将 'import.txt'文件名加入,上传。
注释:这个文件格式是Unix下的,在Windows下修改可能会出错,共享改好后的文件如下:Download file
3 访问: www.example.com/wp-admin/import-mt.php 按提示操作即可;
感觉最近2年MT没做别的,几乎大部分改进都是围绕anti spam了。Spam问题的确已经是困扰很多movabletype用户的主要问题,比如前2天pronet上一封邮件的标题是这样的:“spam spam spam, I DO NOT like spam”。在旧版的MT中我主要依靠mt-blacklist和SpamLookup这2个插件进行SPAM的处理。mt-blacklist已经积累了4万多次被block的记录。我自己的BLOG仍然以每天几十封spam的速度遭受轰炸,国庆假期回来,SpamLookup中已经积累了几百封pendding的垃圾信待确认。昨天晚上终于下决心将后台blog系统整体升级了一把,其实MT 3.2今8月底就发布了。但是看到了一些升级失败的例子,其中新的垃圾留言识别和管理机制是大部分用户都最看重的功能。
升级成功后的留言管理界面:
新版本的3.2中对于comment spam和trackback spam都增加了一定的改进。
建硕的中文blog恢复了:王建硕: 关于《创业公司的欲望》的评论,我这里怎么没有收到呢?我查看了一下:原来是升级后的MT3.2中缺省只有index.xml(RSS 2.0)和atom.xml 2种格式了,新安装MT后,原来那个index.rdf已经不更新了。
建硕可能是从本地缓存文件和DBM数据库中恢复安装的,仍然使用index.rdf订阅,只能收到旧的FEED。
用上MT以后就会上瘾:3.2后的第一个发布版本3.31不仅对个人免费了,而且增加了对tag的支持,很多朋友应该可以升级了。
不过19日安装以后我发现一个问题:留言中的中文都变成了"???"。今天再这里找到了解决方法,就是在mt-config.cgi中增加一行配置:
MailEncoding utf-8
安装MT3.31后的一个小问题(解决办法) (Yang Kang)。
但这个设置目前在MT的官方网站上没有相关说明:只是在代码库中有相关的代码,不知道杨康是怎么找到的。
升级方法1 直接覆盖原来的程序,然后使用mt-upgrade.cgi升级
升级方法2 创建一个新目录:
解包后创建一个mt-config.cgi
新的配置文件简化了很多:
CGIPath http://www.chedong.com/cgi-bin/mt/
StaticWebPath http://www.chedong.com/blog
ObjectDriver DBI::mysql
Database DBNAME
DBUser DBUSER
DBPassword DBPASSWORD
DBHost DBHOST
DBSocket /var/lib/mysql/mysql.sock
MailEncoding UTF-8
插件和语言包:我还有一个相关贴插件在使用中
relatedkeyword.pl 位于 /mt/plugins/
ThinkJam提供的MT中文包:
主要是:zh_cn.pm 位于 /mt/lib/MT/L10N/
而静态文件如果不是发布在cgi-bin/mt-static目录下,则要手工从 mt-static/复制到静态文件的发布路径下。
MT昨天发布了一个安全更新:建议用3.2版本的也升级到3.33
从3.32升级的过程:
下载:wget http://www.sixapart.com/movabletype/downloads/MT-3.33-patches/MT-3.32-patch-en.zip
解包: unzip MT-3.32-patch-en.zip
Archive: MT-3.32-patch-en.zip
creating: MT-3.32-patch-en/
creating: MT-3.32-patch-en/plugins/
creating: MT-3.32-patch-en/plugins/feeds-app-lite/
creating: MT-3.32-patch-en/plugins/feeds-app-lite/lib/
creating: MT-3.32-patch-en/plugins/feeds-app-lite/lib/MT/
creating: MT-3.32-patch-en/plugins/feeds-app-lite/lib/MT/App/
inflating: MT-3.32-patch-en/plugins/feeds-app-lite/lib/MT/App/FeedsWidget.pm
inflating: MT-3.32-patch-en/plugins/feeds-app-lite/mt-feeds.pl
creating: MT-3.32-patch-en/plugins/nofollow/
inflating: MT-3.32-patch-en/plugins/nofollow/nofollow.pl
creating: MT-3.32-patch-en/lib/
creating: MT-3.32-patch-en/lib/MT/
inflating: MT-3.32-patch-en/lib/MT/App.pm
inflating: MT-3.32-patch-en/lib/MT/Log.pm
inflating: MT-3.32-patch-en/lib/MT/Sanitize.pm
creating: MT-3.32-patch-en/lib/MT/App/
inflating: MT-3.32-patch-en/lib/MT/App/CMS.pm
inflating: MT-3.32-patch-en/lib/MT/App/Search.pm
inflating: MT-3.32-patch-en/lib/MT.pm
creating: MT-3.32-patch-en/php/
creating: MT-3.32-patch-en/php/lib/
inflating: MT-3.32-patch-en/php/lib/sanitize_lib.php
inflating: MT-3.32-patch-en/php/mt.php
复制到MT安装目录下:sudo cp -R * /home/path/to/cgi-bin/mt/
登录后看到:
Version 3.33 Copyright © 2001-2006 Six Apart. All Rights Reserved.
说明更新成功了。
MT3.33发布后,批量刷新了几个网站的缺省模板,发现以前需要我对模板手工修改的很多地方已经是缺省模板的设置了:
1 首页每篇文章标题增加了指向内容页的链接:原先只有文章下面有一个“全文”;
2 内容页的标题格式修改:由原来的:“[网志名称] - [文章名称]”变成了“[文章名称] ([网志名称])”,内容标题比网站名更重要;
3 内容页分成了左右两栏模式:可以在右栏中更方便的增加更多链接模块实现站内信息的关联和导航,;
已经几个月收不到各种TrackBack Ping了,应该是升级到MT3.3以后出现的。今天查了一下Trackback功能罢工原因 - flypig.org:超出了每小时和每天的trackback有次数上限,而缺省配置文件中没有表明相应选项(缺省的没小时和每天的trackback ping的上限是10和50);
OneHourMaxPings 10
OneDayMaxPings 50
每天上千的垃圾trackback很快将这个限额填满了(我的blog上目前有这个限制后平均每天只收到50多个垃圾ping),但正常的TRACKBACK随后也就进不来了……
所以在mt-config.cgi文件中,增大以下2个参数的上线就能解决了,比如:
OneHourMaxPings 5000
OneDayMaxPings 20000
MT能否改进一下TrackBack ping limit的统计机制呢?被归入spam的trackback不记入quota呢?
blog系统有一个很有用的功能就是邮件发送留言通知:但是发送到GMail邮箱的通知信十有八九都会被标记为垃圾邮件。原因就是SPF:Sender Policy Framework (SPF) 要做发送人校验,而MT设置的发信人是留言者的邮件地址,而退信地址是MT系统所在服务器的邮箱。
Received-SPF: neutral (google.com: 60.195.249.163 is neither permitted nor denied by domain of apache@localhost.localdomain)
我的WEB服务器上没有任何邮件系统。所以无法通过SPF校验,有严格的SPF校验这也是GMail相对Spam比较少的原因。
如何解决呢:
1 增加邮件系统,设置MX记录等,需要学不少东西;
2 简单的就是先发到不支持SPF校验的邮件系统上,然后再转发给GMail,这时候的退信地址已经转发邮箱了:
Received-SPF: pass (google.com: domain of #####@yeah.net designates 60.12.227.137 as permitted sender)
最近从服务器日志中经常发现MT的错误日志:
Name "Locale::Maketext::Lexicon" used only once: possible typo at
.../extlib/Locale/Maketext.pm line 653.,....
解决方法:
删除 mt/extlib/目录下的I18N/ 和 Locale/ 目录即可;
原因:
服务器上已经升级到Perl 5.10.x了: 很多国际化字符集方面的支持直接使用Perl内置的支持包即可。
[chedong@titans ~/logs/chedong.com/http]$ perl -v
This is perl, v5.10.0 built for x86_64-linux-gnu-thread-multiCopyright 1987-2007, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
按此阅读全文 "MT上“Name "Locale::Maketext::Lexicon" used only once:” 问题的解决: 改用Perl内置函数库" »