天天看点

magento -- 如何禁用Magento的模块

当你创建一个新的magento项目用到很多第三方模块时,可能会遇到一些奇怪的问题,这些问题可能是某个模块造成,也有可能是某些模块共用时带来的(兼容问题)。为了检查是哪些模块带来的问题,暂时的禁用掉一些模块是很有用的方式。禁用模块有多种方式可选。

magento后台禁用模块

进入magento的后台,找到system > configuration > advanced > disable modules

output,在这里你可以很轻松的禁用掉一些模块。你也可以选择配置的生效范围(下拉框在页面的左上角),以做到在特定的商店(多店情况下)禁用特定的模块。这种方式适用于大多数情况,也是禁用模块的首选方式。

这里有一点疑惑,这个疑惑只能透过审视magento的初始化过程来解释:magento首先读取大量xml文件,并解析它们,然后才会知道需要使用哪个数据库。所以流程是先读取xml配置文件,再读取数据库里的配置。因为这种方式禁用模块的设置全部都存在数据库里面,所以就算在magento后台已经禁用了某些模块,那些模块的文件还是会在初始化的时候包含进来。

编辑xml文件

性能更好的方式(但不是更方便的方式,甚至有一点点困难)是直接在xml文件中禁用这些模块。在app/etc/modules目录下你可以找到一批xml文件,其中magento的核心模块只是配置于其中两个文件。大多数情况下,你能为每个第三方模块找到独立的xml配置文件。当你打开一个xml文件,比如说我们的magebridge扩展,你会看到如下代码:

<config>

<modules>

<jira_magebridge>

<active>true</active>

<codepool>community</codepool>

<depends>

<mage_api />

</depends>

</jira_magebridge>

</modules>

</config>

现在,修改active标签里的true为false,你就禁用了这个模块

<active>false</active> 

最后别忘了刷新magento的缓存。

禁用local模块

但是以上的方法也许还是不能解决你的问题,如果有些模块是放置在app/code/local目录下面,他也许会覆盖掉一些magento的核心文件,而不需要使用xml文件。为了避开这个问题,你需要暂时禁用所有local模块。

这个可以通过编辑app/etc/local.xml文件来实现,找到disable_local_modules标签,把值改成true

<disable_local_modules>false</disable_local_modules> 

这样也许能帮你找到问题所在,当然当系统发生严重问题的时候,你需要检查很多方面来找错,不过这至少是一个开始。

原文链接地址:http://www.yireo.com/tutorials/magento/magento-administration/381-disabling-magento-modules

ps:我自己找到这篇文章并不是为了查错,而是为了给magento提速,彻底禁用一些用不到的模块肯定对性能提升有帮助,像我自己的项目只针对国内市场,客户也是国内客户,所以凡是国内用不到的功能都可以用修改xml文件的方式彻底屏蔽掉,希望多少能提点速吧。