Für einige Sicherheitsprobleme muss ich setzen vqmod
Ordner außerhalb public_html
, Wie soll ich diesen Job zu halten vqmod
arbeiten?Opencart - Wie vqmod Ordner außerhalb von public_html verschieben?
Antwort
Ich wollte auch vqmod woanders hinstellen und es scheint mit etwas Aufwand möglich zu sein. Angenommen, dass vqmod-Verzeichnis und public_html (wo ist der Rest, wie Katalog, admin, index.php usw.) im selben Verzeichnis der obersten Ebene sind, können Sie Definitionen in Konfigurationen wie dieser aktualisieren (zuerst müssen Sie $ oc_path auf wo auch immer verweisen Top-Level-Verzeichnis, das Sie haben): 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/');
...
dann ändern Indizes wie folgt aus:
index.php:
require_once(DIR_VQMOD . 'vqmod.php');
admin/index.php:
require_once(DIR_VQMOD . 'vqmod.php');
dann ändern vqmod.php um die Linie 622 in Funktion _parseMods:
ersetzen diese: $fullPath = $this->_vqmod->path($fileToMod);
durch diese: $fullPath = $this->_vqmod->path('public_html/' . $fileToMod);
und um Linie 91 in Funktion modCheck:
diese ersetzen: $sourcePath = $this->path($sourceFile);
durch diese: $sourcePath = $this->path('public_html/' . $sourceFile);
Dies funktioniert für mich ohne Probleme zumindest mit meiner Version von OpenCart (1.5.5.1) und vqmod (2.3.2). Sie müssen sicherlich einige Caches löschen. Ich habe alle zwischengespeicherten Sachen in gelöscht: vqmod/vqcache/*, vqmod/mods.cache, public_html/system/cache/*
.
Ich habe dies mit htdocs anstelle von public_html getestet. Underscore hat eine besondere Bedeutung mit vqmod-Pfaden, daher bin ich mir nicht sicher, ob es damit funktioniert, Sie müssen möglicherweise den Pfad ohne _ verwenden.