Mehrere Shop hosten - welche Verzeichnisse nur einmal installieren

Liebe Community Gemeinde,

ich habe eine Hosting Frage, zunächst zum Hintergrund:
Wenn ich mehrer Shops (z.B. 3 Stück für 3 verschiedene Kunden) hosten möchte, dann muss ich ja nicht sämtliche Verzeichnisse und sämtliche Dateien redundant in den jeweiligen Kundenverzeichnissen haben, sondern kann diese per Symlink auf eine quasi “zentrale Installation” verweisen lassen. Vorteil: ein Update braucht hier nur einmal gemacht werden, ist aber sofort bei allen “Instanzen” da.

Meine Frage: Welche Verzeichnisse kann ich in die zentrale Installation packen? Z.B. “core”, “help”, …? Hat hier jemand Erfahrung?

Vielen Dank!

[QUOTE=ahaller;12100]Liebe Community Gemeinde,

ich habe eine Hosting Frage, zunächst zum Hintergrund:
Wenn ich mehrer Shops (z.B. 3 Stück für 3 verschiedene Kunden) hosten möchte, dann muss ich ja nicht sämtliche Verzeichnisse und sämtliche Dateien redundant in den jeweiligen Kundenverzeichnissen haben, sondern kann diese per Symlink auf eine quasi “zentrale Installation” verweisen lassen. Vorteil: ein Update braucht hier nur einmal gemacht werden, ist aber sofort bei allen “Instanzen” da.

Meine Frage: Welche Verzeichnisse kann ich in die zentrale Installation packen? Z.B. “core”, “help”, …? Hat hier jemand Erfahrung?

Vielen Dank![/QUOTE]
Erfahrung habe ich damit keine, aber in erster Näherung könnte man m.E. alle Verzeichnisse außer “out” und “export” zentral halten.

Die Daten im “shop-root”-Verzeichnis müssen auch lokal gehalten werden.

Aber geht das denn vom Shop Core her?

Immerhin müssen die Shoppfade ja in der config.inc konfiguriert werden. Und wenn ich dort den Pfad auf ein anderes Verzeichnis eintrage leitet der Shop ja auch die Frontend Ausgabe auf das Verzeichnis um.

Und genau auf die Pfade greift der Shop ja auch über die Systemvariablen zurück (basepath etc)

Für das was der Thread Ersteller vorhat wäre doch ein Mall-Shop besser geeignet oder nicht??

@ avenger: Vielen Dank für Deine schnelle Antwort! Ich hatte mir schon Verzeichnisse ausgeguckt: “core”,“help”,“modules” und “views” habe ich nicht mitkopiert, sondern per Symlink “erstellt”. Meine Frage war: ob das reicht/ in Ordnung ist, …?

@ Michael: Es gibt keine Mall-Version der Community Edition, oder liege ich da falsch? Andernfalls wäre das natürlich DIE Lösung!

Nein, die Mallfunktion ist nur in der Enterprise integriert.

@roland76: Vielen Dank für den Hinweis. Aber vielleicht weißt Du auch noch eine Antwort auf die ursprüngliche Frage? Vielen Dank schon einmal!

Versuche es mal mit dieser config.inc.php.

Symlink solle dann nur noch für das Modul-Verzeichnis notwendig sein.

… muss natürlich noch angepasst und durchgeprüft werden.


<?php
/**
 *    This file is part of OXID eShop Community Edition.
 *
 *    OXID eShop Community Edition is free software: you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation, either version 3 of the License, or
 *    (at your option) any later version.
 *
 *    OXID eShop Community Edition is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with OXID eShop Community Edition.  If not, see <http://www.gnu.org/licenses/>.
 *
 * @link http://www.oxid-esales.com
 * @package main
 * @copyright (C) OXID eSales AG 2003-2009
 * @version OXID eShop CE
 */


    /** @name database information */

        $this->sShopDir     = 'pfad/nach/oxid';
        $this->sCompileDir  = 'pfad/anch/oxid/tmp';
    switch($_SERVER['HTTP_HOST']){
    	case 'www.domain1.de':
		$this->dbHost = 'dbhost1'; // database host name
		$this->dbName = 'dbname1'; // database name
		$this->dbUser = 'dbuser1'; // database user name
		$this->dbPwd  = 'dbpassword'; // database user password
		$this->dbType = 'mysql';
    		$this->sTheme = 'default';
    		$this->sShopURL = 'http://www.domain1.de';
    		$this->sSSLShopURL  = null;
    		$this->sAdminSSLURL = null;
    		$this->sCookieDomain = null;
    		break;
    	case 'www.domain2.de':
		$this->dbHost = 'dbhost2'; // database host name
		$this->dbName = 'dbname2'; // database name
		$this->dbUser = 'dbuser2'; // database user name
		$this->dbPwd  = 'dbpassword2'; // database user password
		$this->dbType = 'mysql';
    		$this->sTheme = 'basic_label';
    		$this->sShopURL = 'http://www.domain2.de';
    		$this->sSSLShopURL  = null;
    		$this->sAdminSSLURL = null;
    		$this->sCookieDomain = null;
    		break;
	//usw.
    }
    // utf mode in shop 0 - off, 1 - on
    $this->iUtfMode  = '1';

    //File type whitelist for file upload
    $this->aAllowedUploadTypes = array('jpg', 'gif', 'png', 'pdf', 'mp3', 'avi', 'mpg', 'mpeg', 'doc', 'xls', 'ppt');

    // timezone information
    date_default_timezone_set('Europe/Berlin');

    // Search engine friendly URL processor
    // After changing this value, you should rename oxid.php file as well
    // Always leave .php extension here unless you know what you are doing
    $this->sOXIDPHP = "oxid.php";

    //  enable debug mode for template development or bugfixing
    // -1 = Logger Messages internal use only
    //  0 = off
    //  1 = smarty
    //  2 = SQL
    //  3 = SQL + smarty
    //  4 = SQL + smarty + shoptemplate data
    //  5 = Delivery Cost calculation info
    //  6 = SMTP Debug Messages
    //  7 = oxDbDebug SQL parser
    $this->iDebug = 0;

    // Log all modifications performed in Admin
    $this->blLogChangesInAdmin = 0;

    $this->sAdminEmail = '';

    // Use browser cookies to store session id (no sid parameter in URL)
    $this->blSessionUseCookies = 1;

    // in case session must be started on first user page visit (not only on
    // session required action) set this option value 1
    $this->blForceSessionStart = 0;

    // uncomment the following line if you want euro sign leave unchanged in output
    // the default is to convert euro sign symbol to html entity
    // $this->blSkipEuroReplace = true;


    // List of all Search-Engine Robots
    $this->aRobots = array(
                        'googlebot',
                        'ultraseek',
                        'crawl',
                        'spider',
                        'fireball',
                        'robot',
                        'spider',
                        'robot',
                        'slurp',
                        'fast',
                        'altavista',
                        'teoma',
                        );

    // Deactivate Static URL's for these Robots
    $this->aRobotsExcept = array();

    // Only for former templates: Fixed Shop Width
    $this->blFixedWidthLayout = 1;

    // set this parameter when your shop runs on different subdomains in ssl/non ssl mode
    // e.g. if you setup "ssl.shop.com"/"www.shop.com" - config value should be ".shop.com"
//     $this->sCookieDomain = null;



[QUOTE=Michael Fritsch;12117]Aber geht das denn vom Shop Core her?

Immerhin müssen die Shoppfade ja in der config.inc konfiguriert werden. Und wenn ich dort den Pfad auf ein anderes Verzeichnis eintrage leitet der Shop ja auch die Frontend Ausgabe auf das Verzeichnis um.[/QUOTE]
Deshalb müssen ja die Dateien der “shop-root” (u.a. config.inc , .htaccess) auch lokal gehalten werden.

Ebenso das “[B]tmp[/B]”-Verzeichnis, in dem ja die compilierten/gecachten Smarty-Dateien liegen.