Joomla是个很知名的CMS系统,国内也不缺少joomla方面的高手,不过在开始joomla的项目时,往往会忽略了一些细节问题,甚至以后项目上线后维护难度加大,又或者是存在安全问题,所以我们应该先定制好一些准备事项,应用于每个joomla项目上,来避免一些常见问题。按照我目前的经验,列一下以下需要准备的事项。
1. 保证joomla版本为最新版
这个很容易办到,因为joomla2.5可以在线升级,它会提示你是否有官方更新,而且升级过程很简单
2. 安装好备份组件akeeba
Akeeba一直都是joomla平台上最优秀的全站备份与迁移组件。Joomla很多配置需要后台操作,而操作都会记录到数据库上,所以需要时常备份好数据库,避免因为操作失误造成的损失。代码文件也应该使用版本控制工具,如GIT, SVN。
3. 准备好白模板
如果你要自己制作模板而不是使用第三方模板的话,你最好准备好一套干净的白模板,例如http://blank.vc/,在白模板的基础上做可以省很多功夫。T3模板引擎也有提供白模板,如果项目需要实现多平台自适合并且你也不介意学习复杂的框架,T3也是个不错的选择。joomla内置的模板没用的话可以删了它,不过atomic模板是值得关注的,它其实也是一个自适应白模板,而且结构非常简单,所以也可以参考使用它。
4. 安装好安全性组件并删除版本信息文件
要安装好jsecure和admintools,jsecure基本上我是必装的,它可以修改后台地址,防止后台被暴力破解。最好一开始就安装好,往往项目到上线时都会忘记了。要把根目录下README.txt等跟版本有关的文件删除,因为这些文件会暴露你的joomla版本号,如果以后某个版本存在安全漏洞,而你刚好就是那个有漏洞的版本,黑客们可以通过扫描你的版本信息文件马上就找到你。最近有很多旧的joomla站点被入侵,其实也是因为这方面安全性没有做好。
5. 安装jQueryIntegrator插件
这是一个引用jQuery的插件,虽然joomla默认的javascript库是mootools,但因为mootools的可用资源比jQuery少得多,所以很多组件都会引入jQuery来实现自己的效果。这就很容易造成一个页面被加载几个版本的jQuery的问题,jQuery之间版本互相冲突,脚本冲突信息一大堆,这实在是joomla项目最常见的事。解决方案就是用插件引入一个jQuery,其它组件都把jQuery引入的选项去掉,始终保持只引入一个jQuery。也许有些高人觉得在模板里直接写jQuery调用就可以,的确是那样,但很容易出现脚本载入顺序混乱问题。用插件引入jQuery可以保证jQuery在足够前的位置被载入,而又不会影响mootools的载入。
另外值得注意的,可要小心使用同时兼容joomla1.5与2.5的展示性组件(即在前台可以看到的),因为joomla1.5与2.5其实差异非常大,特别是mootools的使用方式。2.5的组件mootools可以闭包调用,但1.5里的mootools就不行,不是闭包调用就更容易与jQuery发生冲突,除非你非常熟识mootools,能把组件里所有脚本都做成闭包,否则你将来会十分头痛。
6. 在项目开发过程中,尽量不要修改内置组件的代码
Joomla2.5支持在线升级,不过升级程序不会理会你的代码有没有修改,直接把最新的代码替换原来的。不过joomla的组件内扩展能力又比较差,有时候还是不得不修改内置组件。Joomla没有drupal那么强大的重写功能,不过模板还是支持重写的,如果只是模板上的小改动,可以把组件的视图模板目录tmpl里的文件放到模板的html目录下,这是利用了模板的重写机制,并且升级不会影响模板。
7. 要了解项目需求,关闭所有非需求范围内的功能
joomla组件很多,而且组件功能一大堆,有很多功能不在需求范围内,所以安装好组件应该花点时间调下配置,只开启满足需求的功能。给客户使用的管理员帐号,也应该是只有他需要的功能就可以。不要认为所有功能开放给客户会更好,因为客户找你做项目,你就要保证你给客户做的功能都是完好的,但组件总是会有BUG的,你并不能确定你使用的组件是否所有功能都完好,万一你开放了个功能但存在BUG,客户要求你去解决也无可厚非的。