Przeglądaj źródła

Update opencart installer to move system/storage folder

Robert Zollner 6 lat temu
rodzic
commit
8a3453022f

+ 5 - 0
install/deb/templates/web/nginx/php-fpm/opencart.stpl

@@ -37,6 +37,11 @@ server {
         rewrite ^/(.+)$ /index.php?_route_=$1 last;
     }
 
+    location /storage/ {
+        deny    all;
+        return  404;
+    }
+
     location /vstats/ {
         alias   %home%/%user%/web/%domain%/stats/;
         include %home%/%user%/web/%domain%/stats/auth.conf*;

+ 5 - 0
install/deb/templates/web/nginx/php-fpm/opencart.tpl

@@ -31,6 +31,11 @@ server {
         rewrite ^/(.+)$ /index.php?_route_=$1 last;
     }
 
+    location /storage/ {
+        deny    all;
+        return  404;
+    }
+
     location /vstats/ {
         alias   %home%/%user%/web/%domain%/stats/;
         include %home%/%user%/web/%domain%/stats/auth.conf*;

+ 8 - 0
web/src/app/WebApp/Installers/OpencartSetup.php

@@ -29,6 +29,7 @@ class OpencartSetup extends BaseSetup {
 
         $this->appcontext->runUser('v-copy-fs-file',[$this->getDocRoot("config-dist.php"), $this->getDocRoot("config.php")]);
         $this->appcontext->runUser('v-copy-fs-file',[$this->getDocRoot("admin/config-dist.php"), $this->getDocRoot("admin/config.php")]);
+        $this->appcontext->runUser('v-copy-fs-file',[$this->getDocRoot(".htaccess.txt"), $this->getDocRoot(".htaccess")]);
         $this->appcontext->runUser('v-run-cli-cmd', [
             "/usr/bin/php",
             $this->getDocRoot("/install/cli_install.php"),
@@ -41,6 +42,13 @@ class OpencartSetup extends BaseSetup {
             "--email "       . $options['opencart_account_email'],
             "--http_server " . "http://" . $this->domain . "/"], $status);
 
+        // After install, 'storage' folder must be moved to a location where the web server is not allowed to serve file
+        // - Opencart Nginx template and Apache ".htaccess" forbids acces to /storage folder
+        $this->appcontext->runUser('v-move-fs-directory', [$this->getDocRoot("system/storage"), $this->getDocRoot()], $result);
+        $this->appcontext->runUser('v-run-cli-cmd', [ "sed", "-i", "s/'storage\//'..\/storage\// ", $this->getDocRoot("config.php") ], $status);
+        $this->appcontext->runUser('v-run-cli-cmd', [ "sed", "-i", "s/'storage\//'..\/storage\// ", $this->getDocRoot("admin/config.php") ], $status);
+        $this->appcontext->runUser('v-run-cli-cmd', [ "sed", "-i", "s/\^system\/storage\//^\/storage\// ", $this->getDocRoot(".htaccess") ], $status);
+
         $this->appcontext->runUser('v-change-fs-file-permission',[$this->getDocRoot("config.php"), '640']);
         $this->appcontext->runUser('v-change-fs-file-permission',[$this->getDocRoot("admin/config.php"), '640']);