Opencart - 如何在public_html之外移动vqmod文件夹?

时间:2016-04-05 19:23:11

标签: php security opencart vqmod

对于某些安全问题,我需要将vqmod文件夹放在public_html之外,我应该如何完成这项工作以保持vqmod的工作?

1 个答案:

答案 0 :(得分:0)

我还想将vqmod放在其他地方,似乎可以付出一些努力。假设vqmod目录和public_html(其余部分,如catalog,admin,index.php等)位于同一顶级目录中,您可以更新这样的配置中的定义(首先必须将$ oc_path指向wherever)您拥有的顶级目录): config.php:

define('DIR_VQMOD',       $oc_path . 'vqmod/');
define('DIR_APPLICATION', $oc_path . 'public_html/catalog/');
...

admin / config.php:

define('DIR_VQMOD',       $oc_path . 'vqmod/');
define('DIR_APPLICATION', $oc_path . 'public_html/admin/');
...

然后修改这样的索引:

index.php:

require_once(DIR_VQMOD . 'vqmod.php');

admin / index.php:

require_once(DIR_VQMOD . 'vqmod.php');

然后在函数_parseMods:

中修改第622行的vqmod.php

替换为:$fullPath = $this->_vqmod->path($fileToMod);

由此:$fullPath = $this->_vqmod->path('public_html/' . $fileToMod);

和函数modCheck中的第91行:

替换为:$sourcePath = $this->path($sourceFile);

由此:$sourcePath = $this->path('public_html/' . $sourceFile);

至少在我的OpenCart版本(1.5.5.1)和vqmod(2.3.2)中,这对我没有任何问题。你当然需要删除一些缓存。我删除了所有缓存的内容:vqmod/vqcache/*, vqmod/mods.cache, public_html/system/cache/*

我用htdocs而不是public_html测试了这个。 Underscore对vqmod路径有特殊意义,所以我不确定它是否适用它,你可能需要使用不带_的路径。