DYNAMIC PUBLISHING 终于搞定了

rebuild时间果然大大减少了,真是历尽千辛万苦啊,赶紧记录,省得忘了。


哎,好好想想。
先是.htaccess的问题,打开单篇归档动态发布后,只有main index可以正常访问,其余的全是404(现在明白了,动态发布的浏览的页全是不存在于硬盘上的,以前存在的一改动态,MT就给+上个.static),这个问题是apache的config文件问题,MY所在目录被设成了Allowoverride None了,所以MT生成的.htaccess根本没有用。:(
还有修改了一个module的加载,不知道有没有关系,就是mod_rewrite默认没有被load。
呵呵,又想起来解决这个问题google到了一篇挺有意思的文章,老外写的“白话”讲解动态发布原理的文章,挺有意思的,记录:http://philringnalda.com/blog/2004/09/mts_completely_searchfriendly_dynamic_urls.php,这家伙真的挺有意思。
第一个问题解决了,所有请求都被转到mtview.php上了,可是还是不对,总是显示page not found,下面还跟个PHP错误:quickcode插件没有被实现,这个查了一下资料,意思是改成动态发布以后,以前的perl插件就全用不了了,必须用相应的PHP插件(如果有的话)。百思不得其解,尝试跟踪了一下mtview.php的代码,刚看了一点就不行了。后来无意间看了一下apache的error log发现里面有很多类似这样的error:
[Thu Feb 17 11:05:15 2005] [error] [client 221.198.72.175] \x07Character set ‘#33’ is not a compiled character set and is not specified in the ‘C:\\mysql\\\\share\\charsets\\Index’
怀疑问题可能是这里,字符集错误,导致mtview.php在数据库中找不到客户端request的page,于是google,呵呵,同样的错误还真不少,大致有以下几种说法:1.胡说八道的,驴唇不对马嘴。2.说是PHP的bug,php官方上好像也有相关讨论,不过我确定造成这个error的不是他们所说的php4ts.dll,因为我发现如果在mt.cgi里面执行有读数据库的操作时也会造成这个error。3.说是apache和perl的问题,组件版本太低,DBD::mysql需要升级,我的可是最新的!4.mysql问题,这个我仔细看了一下mysql的官方manual,发现我下载的最新的4.1对charset这方面的变化很大,定义文件的扩展名和文件格式全都变了,后来针对这个问题尝试了很多修改方法,全都未果,最后实在没办法,又下载了一次mysql 4.0,重新安装,嘿嘿,发现这回apache不在出那个error了,果然是mysql的版本太新造成的:(。
本以为动态发布这样就搞定了,结果一试还是不行,还是not found,这下郁闷了,google了半天,一点线索也没有,郁闷当中,打开new entri准备大骂一通,后来发现新写的entri居然可以正常访问,没错,是动态的,访问的文件根本不存在于硬盘上,奇怪了,后来想了一想,结果恍然大悟,是quickcode插件造成的,开始提示那个错误我就把quickcode.pl插件给删除了,mt里也更新了相应的设置,本以为这样就不会提示那个错误了,后来搞那个数据库的问题,也就没注意这个,现在所有旧entri(有quickcode时候写的)都不能正常访问,都是提示not found后面是quick code not implement,这样看光删除quickcode.pl是不够的,进数据库(呵呵,小插曲,由于mysql我又去down了最新的EMS MysqlManager,这个我曾经最喜欢的mysql客户端管理软件,发现又漂亮了很多,真是happy),查看entri记录,对比了一下新entri和以前从db-file导入的entri发现entri_convert_break这一列的值不同,旧的里面还是__quickcode__指示这个entri用了quickcode转换,而新的就是0,问题应该就是这里了,于是一条UPDATE过去,所有entri全更新成0,再回来访问,哈哈,正常了……
高兴得是动态发布真的减少了很多rebuild的时间,这功能有点像aspx的样子,第一次请求会稍微慢一些,php去准备要的东西,以后就快了。
还有一点小小的遗憾,由于没有quickcode插件了(目前还没找到相应的PHP Plugin),以前用这个插件转换的有UBB的entri全都不能正常显示了……

博主友情提示:

如在您的评论中需要提及如QQ号、微信号、电子邮件地址或其他隐私敏感信息,欢迎通过>>博主专用加密工具v2<<加密后发布,原文只有博主可以看到。