星期一, 四月 09, 2007

终于解决Drupal的一个大问题

      用过一段时间的Mambo之后觉得还是很多不爽之处,加上又老不出更新来弥补那两个重大缺陷,很没劲。就开始看drupal了,同样用的人很多,很小巧,还得过大奖,一直没去研究它。这两天开始看。

      目标是建立无公开注册的提供信息的页面,同时提供允许用户的个人主页功能,加上多语言。这个是drupal的特色功能吧,至少mambo没有。one codebase multi sites,可以SSO或者individual database等各种组合,前提就是one codebase。多语言的自动翻译那些看了一下,没什么需求。主要还是multi sites的功能需求。

      先简要介绍一下使用体验吧。用了几天,5.1版本,已经有web安装界面,前人的(4.x及以前)痛苦的安装经历就被我pass过去了。界面很简单,前后台统一的模式让我这种习惯了后台管理的人颇为不适应。主要的内容管理都有,还可以使用内容管理来建立简单的论坛和Blog,不过这个不在我的需求之列,我喜欢专业的。内容管理很有点奇怪,需要适应一下,编辑器就没有,只好自己装了一个TinyMCE,其余什么都没有装——主要目的就是使用内容管理来向匿名用户提供信息,模式就有点像http://appel.nasa.gov/这样的。随便看了一下这些功能之后就开始研究多站点了。这个也是无意中看到的功能,觉得很实用。

      原理很简单,就是访问的时候根据域名会自动查找配置文件。例如,www.mysite.com/sub1的配置文件就是sites/www.mysite.com.sub1文件夹里面,网站会自己去搜索配置。我看了中英文的几乎能找到的所有handbook,然后开始试验,也是噩梦的开始。三天来,无论我如何设置,始终是只能访问主站不能访问子站。配置文件都是以相同的方式读到的,为什么子站就一直显示page not found呢?我对照所有的教程来操作,都是告诉我只要复制文件夹就OK了,但是我怎么都弄不好。我在中英文的官网发帖,给排行榜的前几名用户发消息,都没有回音。几次想放弃了,但是只要开始了的东西我觉得能解决却没有解决的话就会很闹心,睡觉都睡不好的,干别的也进入不了状态。终于今晚在又一次无谓的尝试中,偶然搜索到另外一个人也存在我这样的问题。下面有人回复,很多方法,一个个尝试。突然间看到有人说要创建指向codebase的链接…………我似乎有点头绪了,猛然间突然醒悟,大喊一句shit,原来原理是根据域名来找配置文件,但是不会根据域名来找codebase。我的主站下面就没有那样的文件夹,当然什么都找不到了。要建立一个指向主站文件夹的链接就OK了。相当于还是访问相同的文件,但是根据传输过来的域名来解析对应的配置,有点像虚拟主机,嘿嘿。

      难道右键创建快捷方式?人家都是在linux下面用ln耶,貌似快捷方式不好使吧,用了用,的确不好使。细看那人的解决方案,原来是还有一个小工具Junction,用来在windows下建立跟linux下一样的链接,现在下载地址直接指向microsoft的网站,看来ms也觉得好,收藏了。

      我按照这个方法建立链接,然后访问,一切OK!天哪,三天就因为这个该死的链接……其实都怪那些教程没有解释清楚嘛~~~要是我写教程肯定会把这么重要的东西加上的,哈哈!