Subdomain
Aus ShopleiterWiki
Installationsvariante – Subdomain
Gehen wir jetzt einfach mal davon aus, Sie besitzen bereits eine funktionsfähige Subdirectory oder eine andere Installation. Ergänzend zu Ihrem bestehenden Shop erweitern Sie diese Shop-Installation nun um eine eigene Subdomain namens shop.domain.tld. Falls Sie über genügend Rechte verfügen, legen Sie Ihre Subdomain selber an, ansonsten bestellen Sie Ihre neue Subdomain rechtzeitig beim Provider. Ist die Subdomain freigeschaltet, erstellen Sie im Backend eine neue Store View innerhalb Ihrer Website. Das Ziel ist diesmal, zwei Shops unter subdomain1.domain.tld und der neuen Adresse subdomain2.domain.tld einzurichten. Alternativ ist eine andere Lösung denkbar in der Form www.domain1.tld und als neue Adresse subdomain2.domain2.tld.
Sie benötigen hier wieder nur die beiden Dateien index.php und .htaccess aus dem Hauptverzeichnis Ihres Online-Shops. Legen Sie im Backend eine weitere Store View für den zusätzlichen Shop an und notieren Sie sich den Code, z. B. „tutorials_es“. Diesen benötigen Sie für die Konfiguration der index.php-Datei. In der .htaccess-Datei benötigen Sie in diesem Fall keinen RewriteBase-Eintrag.
// $mageFilename = 'app/Mage.php';
$mageFilename = '../../ <subdomain1>/httpdocs/app/Mage.php';
// Mage::run();
Mage::run('tutorials_es');
Listing 1.3: Subdomain Anpassungen in der index.php Datei
Die symbolischen Links im neu erstellten Subdomain-Verzeichnis /domain.tld/subdomains/<subdomain2>/httpdocs verweisen hierbei auf /<subdomain1>/httpdocs/. In Listing 1.4 stehen die einzelnen Befehle, mit denen Sie die symbolischen Links zum Hauptverzeichnis anlegen.
cd /domain.tld/subdomains/<subdomain2>/httpdocs/ ln -s ../../<subdomain1>/httpdocs/app/ ./app ln -s ../../<subdomain1>/httpdocs/js/ ./js ln -s ../../<subdomain1>/httpdocs/media/ ./media ln -s ../../<subdomain1>/httpdocs/skin/ ./skin ln -s ../../<subdomain1>/httpdocs/var/ ./var
Listing 1.4: Symbolische Links in der Subdomain setzen
In Abbildung 1.11 sehen Sie das fertige Ergebnis der Ordnerstruktur, dargestellt mit WinSCP3.
Öffnen Sie den Subdomain-Shop im Browser und testen Sie, ob alle Links auf die gewünschte Subdomain zeigen. Ist dies nicht der Fall, verweisen also einige Links auf die Hauptdomain, dann haben Sie vergessen, die Basis-URL (Base URL) umstellen. Um die erforderliche Änderung vorzunehmen, gehen Sie zu „System › Konfiguration › Web“ (System › Configuration › Web). Tragen Sie den Pfad zur Subdomain sowohl bei Ungesichert (Unsecure) als auch bei Sicher (Secure) ein, z. B. http://shop.domain.tld/.
Haben Sie in der index.php-Datei den Pfad zur Mage.php-Datei korrekt gesetzt und ist trotzdem der generelle Zugriff nicht möglich, dann stimmt womöglich der open_basedir-Pfad nicht. Die Fehlermeldung sieht in etwa so aus: „../httpdocs/ subdomain/app/Mage.php was not found“. Erstellen Sie dann im Verzeichnis /var/www/vhosts/<domain>/subdomains/<subdomain1>/conf eine vhost.conf-Datei mit folgendem Inhalt (Pfadangaben an Ihre Bedürfnisse anpassen):
<Directory /…/<domain>/subdomains/<subdomain1>/httpdocs>
<IfModule sapi_apache2.c>
php_admin_flag engine on
php_admin_flag safe_mode off
php_admin_value open_basedir
"/…/<domain1>/subdomains/<subdomain1>/httpdocs:
/…/<domain2>/subdomains/<subdomain2>/httpdocs:/tmp"
php_admin_value upload_tmp_dir
"/…/<domain1>/subdomains/<subdomain1>/tmp"
AllowOverride All
</IfModule>
<IfModule mod_php5.c>
php_admin_flag engine on
php_admin_flag safe_mode off
php_admin_value open_basedir
"/…/<domain1>/subdomains/<subdomain1>/httpdocs:
/…/<domain2>/subdomains/<subdomain2>/httpdocs:/tmp"
php_admin_value upload_tmp_dir
"/…/<domain1>/subdomains/<subdomain1>/tmp"
AllowOverride All
</IfModule>
</Directory>
Listing 1.5: Konfiguration von open_basedir und safe_mode
Im Anschluss daran aktivieren Sie die benötigte vhost.conf-Datei, indem Sie mit PuTTY die folgenden zwei Befehlszeilen aufrufen:
// vhost.conf Datei in Webserver einbinden
/usr/local/psa/admin/sbin/websrvmng -a -v
--vhost-name=<subdomain1>.<domain1>.de
// Neustart des Apache
/etc/init.d/apache2 restart
Listing 1.6: vhost.conf Datei in Webserver einbinden
Als Kontrollmöglichkeit finden Sie danach im Verzeichnis der Hauptdomain einen Eintrag in der http.include-Datei, der auf die neue Subdomain verweist. Der Verweis auf den VirtualHost sieht auszugsweise aus wie in Listing 1.7 angedeutet. Die IP-Adresse 123.123.123.123 verweist auf die Domain http://shop.domain.tld, deren Daten im DocumentRoot-Verzeichnis liegen.
<VirtualHost 123.123.123.123:80> ServerName shop.domain.tld:80 SuexecUserGroup ftp-domain psacln ServerAdmin "administrator@wallaby.de" DocumentRoot /…/subdomains/shop/httpdocs … … </VirtualHost>
Listing 1.7: VirtualHost Konfigurations-Eintrag in http.include-Datei
Sie können in der Store-Verwaltung pro Shop-Domain eine eigene root-Kategorie vergeben. Dadurch ist es leicht möglich, bei Bedarf auf verschiedene Produkt-Kataloge zuzugreifen und getrennte Shops aufzubauen für Highend- und Low-Price-Produkte. Einzelne Produkte machen Sie in mehreren root-Kategorien verfügbar, indem Sie bei Websites unter „Katalog › Produkte verwalten“ (Catalog › Manage Products) den Artikel für die entsprechende Website aktivieren.

