Shopware 6 mit Object Storage verbinden

Shopware 6 mit Object Storage verbinden

Mit Shopware 6 und Object Storage bieten wir Ihnen eine flexible und kostengünstige Lösung für die Speicherung Ihrer statischen Dateien. Eine besonders praktische Funktion besteht darin, dass die Bilder Ihres Shopware-Shops direkt in Ihrem Object Storage gespeichert werden können. Dadurch belegen die Shopdaten keinen Speicherplatz auf dem Server. Um dies zu ermöglichen, müssen Sie einmalig alle Shop-Dateien in Ihren Bucket verschieben und eine Verbindung zwischen Ihrem Object Storage und Shopware herstellen. Eine Anleitung dazu finden Sie auf dieser Seite. Bei weiteren Fragen steht Ihnen unser Support gerne zur Verfügung.

Wichtige Vorbereitung

Hostingpaket (booSSD-Pakete): Loggen Sie sich bitte im Kundencenter ein: cp.timmehosting.de
Managed vServer, Managed Server & Cloud: Loggen Sie sich bitte über Ihr Server Control Panel ein.


Shell-Benutzer Anlegen

Um die Verbindung zwischen Object Storage und Shopware 6 herzustellen, müssen Sie auf die Kommandozeile Ihres Servers zugreifen. Dafür benötigen Sie einen Shell-Benutzer. Sollten Sie diesen schon angelegt haben, können Sie sofort mit der Anleitung starten. Ansonsten müssen Sie zuerst einen Shell-Benutzer anlegen (Anleitung für das Anlegen eines Shell-Benutzers). Hier die Kurzanleitung:

  • Loggen Sie sich ein (siehe Hinweis)
  • 1. Wählen Sie im Hauptmenü den Punkt "Webseite" aus.
  • 2. Gehen Sie im linken Untermenü auf "Shell-Benutzer".
  • 3. Klicken Sie auf den grünen Button "Neuen Shell Benutzer hinzufügen".
  • Es öffnet sich ein Formular, das ausgefüllt werden muss.
  • Hilfe zum Formular erhalten Sie unter der Anleitung (siehe Link).
  • Bestätigen Sie Ihre Formulareingaben mit einem Klick auf den grünen Button "Speichern".

Ergebnis: Ein Shell-Benutzer ist angelegt.


Klicken Sie auf das Bild, um es zu vergrößern.

Shopware 6 und Object Storage verbinden

Shopware 6 erwartet, dass Sie alle Dateien vorab manuell in den Object Storage kopieren, alle weiteren dazukommenden Dateien werden nach der Einrichtung von Shopware selbst in den Object Storage kopiert.

Außerdem muss Ihr Object Storage für einen öffentlichen Zugriff konfiguriert sein. Dies können Sie in unserem Kundencenter über Mein Konto - Meine Object Storages - Object Storage auswählen - Policy: public einstellen, sofern dies nicht bereits der Fall ist.

Für den initialen Transfer können Sie beispielsweise rclone verwenden, wie wir es in dieser Anleitung tun.


1

Damit jeder die Daten aus dem Object Storage im Online-Shop sehen kann, müssen die Dateien öffentlich zugänglich sein. Stellen Sie dafür die Storage Policy auf "public".

  • Loggen Sie sich im Kundencenter cp.timmehosting.de ein.
  • Wählen Sie im Hauptmenü "Mein Konto".
  • Gehen Sie im linken Untermenü den Punkt "Meine Object Storages" aus.
  • Sie sehen eine Liste aller Buckets unter Ihrem Kundenkonto.
  • Wählen Sie das entsprechende Bucket aus.
  • Ändern Sie hier die Storage "Policy" per Dropdown auf "public" (siehe Screen).
  • Bestätigen Sie die Änderung mit einem Klick auf den grünen Button "Speichern".

Ergebnis: Storage policy wurde auf "public" gestellt.


Klicken Sie auf das Bild, um es zu vergrößern.

2

Damit rclone verwendet werden kann, muss zuerst eine Konfigurationsdatei mit den Zugangsdaten des Object Storages angelegt werden. Hierzu legen Sie die Datei /var/www/meinedomain.de/private/rclone.conf an und füllen diese wie folgt:

[ObjectStorage]
type = s3
provider = Minio
env_auth =
access_key_id = [Ihr Access-Key]
secret_access_key = [Ihr Secret-Key]
endpoint = https://os1.meinecloud.io
acl =

Ergebnis: Die Konfigurationsdatei mit den Zugangsdaten des Object Storages wurde angelegt.



3

Nachdem der Object Storage nun für rclone hinterlegt wurde, führen Sie den eigentlichen Transfer der Daten aus:

cd /var/www/meinedomain.de/web
rclone --config=../private/rclone.conf sync -I public/ ObjectStorage:[IhrBucket im Format `bXXXXX`]

Ergebnis: Die config.php ist angepasst und hochgeladen



4

Nun müssen Sie Shopware nur noch über zwei Konfigurationsdateien mitteilen, welche Inhalte in den Object Storage kopiert werden sollen.

Hierzu legen Sie die Datei: /var/www/meinedomain.de/web/config/packages/z-shopware.yaml an und hinterlegen in dieser den folgenden Inhalt:

shopware:
filesystem:
    public:
        url: "https://%env(WHITELABEL_DOMAIN)%/%env(OS_BUCKET)%/"
        type: "amazon-s3"
        visibility: "public"
        config:
            bucket: "%env(OS_BUCKET)%"
            region: "eu-central-1"
            endpoint: "https://%env(OS_DOMAIN)%"
            use_path_style_endpoint: true
            root: ""
            credentials:
                key: "%env(OS_ACCESS_KEY_ID)%"
                secret: "%env(OS_SECRET_ACCESS_KEY)%"

    theme:
        url: "https://%env(WHITELABEL_DOMAIN)%/%env(OS_BUCKET)%/"
        type: "amazon-s3"
        visibility: "public" # On private adapters need this to be private
        config:
            bucket: "%env(OS_BUCKET)%"
            region: "eu-central-1"
            endpoint: "https://%env(OS_DOMAIN)%"
            use_path_style_endpoint: true
            root: ""
            credentials:
                key: "%env(OS_ACCESS_KEY_ID)%"
                secret: "%env(OS_SECRET_ACCESS_KEY)%"

    asset:
        url: "https://%env(WHITELABEL_DOMAIN)%/%env(OS_BUCKET)%/"
        type: "amazon-s3"
        visibility: "public" # On private adapters need this to be private
        config:
            bucket: "%env(OS_BUCKET)%"
            region: "eu-central-1"
            endpoint: "https://%env(OS_DOMAIN)%"
            use_path_style_endpoint: true
            root: ""
            credentials:
                key: "%env(OS_ACCESS_KEY_ID)%"
                secret: "%env(OS_SECRET_ACCESS_KEY)%"

    sitemap:
        url: "https://%env(WHITELABEL_DOMAIN)%/%env(OS_BUCKET)%/"
        type: "amazon-s3"
        visibility: "public" # On private adapters need this to be private
        config:
            bucket: "%env(OS_BUCKET)%"
            region: "eu-central-1"
            endpoint: "https://%env(OS_DOMAIN)%"
            use_path_style_endpoint: true
            root: ""
            credentials:
                key: "%env(OS_ACCESS_KEY_ID)%"
                secret: "%env(OS_SECRET_ACCESS_KEY)%"

cdn:
    url: "https://%env(WHITELABEL_DOMAIN)%/%env(OS_BUCKET)%/"
    strategy: "md5"

Hinweis: Falls diese Datei bei Ihnen bereits existiert und Sie in dieser bereits Inhalte hinterlegt haben, müssen Sie auf eine einheitliche Einrückung achten!

Ergebnis: Die z-shopware.yaml wurde angelegt.



4a

Falls Sie einzelne Abschnitte nicht in den Object Storage verschieben möchten, können Sie für diese auch ein lokales Dateisystem angeben, wie zum Beispiel:

    [...]
    sitemap:
        type: "local"
        config:
            root: "%kernel.project_dir%/[IhrGewünschterPfad]"
    [...]

Hinweis: Neben den dort genannten Abschnitten gibt es noch temp und private, welche auf den Standardwert gesetzt werden, wenn sie in der "z-shopware.yaml" nicht enthalten sind. Falls diese explizit angegeben werden, sollten diese nicht in den Object Storage verschoben werden, da dieser auf public steht. Alternativ können Sie für private noch einen zweiten Object Storage buchen, den Sie dann global auf private stellen.



5

Nun müssen Sie nur noch in der .env-Datei von Shopware die Zugangsdaten zu Ihrem Object Storage hinterlegen:

# This file is a "template" of which env vars need to be defined for your application
# Copy this file to .env file for development, create environment variables when deploying to production
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration

###> symfony/framework-bundle ###
APP_ENV="prod"
[...]
OS_ACCESS_KEY_ID="[IhrAccessKey]"
OS_SECRET_ACCESS_KEY="[IhrSecret]"
OS_DOMAIN="os1.meinecloud.io"
# Diese Domain kann auf eine eigene Domain gesetzt werden, wenn dies gewünscht ist.
WHITELABEL_DOMAIN="os1.meinecloud.io"
OS_BUCKET="[IhrBucket]"
OS_CONFIG_FILE="/var/www/meinedomain.de/private/awsconfig"

Hinweis: Der letzte Eintrag ist hier notwendig, da Shopware ohne diesen in einem Verzeichnis, auf das die Website keinen Zugriff hat, nach der AWS Config sucht, was zu Warnungen in den Logdateien Ihrer Webseite führen würde.

Ergebnis: Die Zugangsdaten zum Object Storage wurden hinterlegt.


Shopware Cache löschen und Theme kompilieren

Damit die Anpassungen aktiv werden, müssen Sie abschließend noch die Shopware Caches leeren und das Theme neu kompilieren. Sie können dies entweder direkt über die Konsole ausführen, indem Sie Schritt 6 der nachfolgenden Anleitung folgen. Oder Sie führen die Tasks über Ihre Shopware-Administration mit den Schritten 7a bis 8b aus.


6

Wenn Sie die Cache-Löschung und Theme-Generierung über Ihre Konsole ausführen möchten, melden Sie sich per SSH an der Konsole an.

  • Wechseln Sie in Ihr Document Root, zum Beispiel über
cd /var/www/meinedomain.de/web/ 

Hinweis: Ersetzen Sie "meinedomain.de" durch Ihre Domain.

  • Geben Sie nacheinander folgende Konsolenbefehle ein:
php bin/console cache:clear
php bin/console theme:compile

Ergebnis: Ihr Shopware Cache wurde über die Konsole gelöscht und das Theme neu kompiliert.



7a

Wenn Sie dies über Ihre Shopware-Administration ausführen möchten, loggen Sie sich zunächst in Ihre Administration ein.

Für die Cache-Löschung gehen Sie wie folgt vor:

  • Wählen Sie im Hauptmenü Ihrer Administration den Punkt "Einstellungen" aus.
  • Wählen Sie im Untermenü nun die Option "System".
  • Es stehen Ihnen verschiedene Icons zur Bearbeitung zur Verfügung.
  • Wählen Sie das Icon "Caches & Indizes" aus.

Ergebnis: Sie gelangen in das Bearbeitungsfenster zur Cache-Löschung.



7b

  • Klicken Sie auf die Schaltfläche "Caches leeren".

Ergebnis: Sie haben den Cache Ihres Shops in der Administration gelöscht.



8a

Nun müssen Sie in Ihrer Shopware-Administration noch das Theme neu generieren.

  • Navigieren Sie dafür im Hauptmenü zum Bereich "Verkaufskanäle" und wählen Sie dort Ihr Design aus, in unserem Beispiel "Demo".
  • Ihnen stehen nun die Reiter "Allgemein", "Theme" und "Analytics" zur Auswahl zur Verfügung. Wählen Sie den Reiter "Theme" aus.
  • Klicken Sie oben rechts auf den Button "Theme bearbeiten".
  • Ohne Änderungen vorzunehmen, klicken Sie auf den blauen Button "Speichern".

Ergebnis: Es öffnet sich das Popup-Fenster "Theme speichern".



8b

  • Klicken Sie auf die blaue Schaltfläche "Speichern", um Ihr Theme zu speichern.

Ergebnis: Ihr Theme wurde in der Shopware-Administration aktualisiert.


Optional: Eigene Subdomain für Object Storage verwenden


9

  • Legen Sie hierfür in ISPConfig über "Webseiten" - "Neue Webseite hinzufügen" eine neue Webseite an und tragen Sie die gewünschte Subdomain ein, beispielsweise "media.meinedomain.de". Deaktivieren Sie die Auto-Subdomain und schalten Sie PHP ab.
  • Wechseln Sie auf den Reiter "Umleitung". Stellen Sie den Weiterleitungstyp auf "proxy" und den Weiterleitungspfad auf "https://os1.meinecloud.io".
  • Anschließend wechseln Sie auf den Reiter "Optionen" und hinterlegen im Feld "Proxy-Direktiven" unsere Standard-Regeln per Klick auf unsere Vorlage unter dem Textfeld.
  • Nun sollten alle Medieninhalte über Ihre eigene Subdomain ausgeliefert werden.

Abschließende Bemerkung

Wenn Sie viele Änderungen an Ihren Artikeln und/oder Produktbildern durchführen, kann es sinnvoll sein, gelegentlich den Befehl php bin/console media:delete-unused auszuführen. Dieser entfernt alle Bilder aus der Shopware-Installation, die an keiner Stelle verwendet werden. Dieser Befehl sollte jedoch mit Vorsicht genutzt werden, da es hierbei passieren kann, dass Sie Inhalte löschen, die Sie noch benötigen!

Geschafft! Sie haben Shopware 6 mit Ihrem Object Storage verbunden.

Finden Sie den passenden Tarif

Unser Tarifberater hilft Ihnen dabei, das passende Paket zu finden. Bei Fragen berät Sie unser Sales-Team sehr gerne unter +49 (0) 4131 / 22 78 1-25 oder sales@timmehosting.de.

Bitte beachten Sie: Der Tarifberater dient nur der groben Orientierung. Ihr tatsächlicher Bedarf kann durch den Ressourcenbedarf Ihrer Anwendung(en), tageszeitabhängige/saisonale/aktionsbedingte Schwankungen des Besucheraufkommens, geplantes Wachstum und weitere Faktoren von der Empfehlung abweichen.

  • 1
  • 2
  • 3
  • 4
  • 5

Was möchten Sie hosten?

Möchten Sie einen oder mehrere Shops hosten? (Eine Multishop-Installation gilt als ein Shop.)

Möchten Sie eine oder mehrere Websites hosten? (Eine Multisite-Installation gilt als eine Website.)

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Artikel haben Sie insgesamt in Ihrem Shop/Ihren Shops (inkl. Varianten)?

Wieviele Artikel haben Sie insgesamt in Ihrem Shop/Ihren Shops (inkl. Varianten)?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wir empfehlen Ihnen folgende Lösungen:

ScaleServer oder Web Hosting

Zu den ScaleServer Paketen Zu den Web Hosting Paketen

Wir empfehlen Ihnen folgende Lösungen:

ScaleServer oder Shop Hosting

Zu den ScaleServer Paketen Zu den Shop Hosting Paketen

Wir empfehlen Ihnen folgende Lösungen:

Managed vServer oder ScaleServer

Zu den Managed vServer Paketen Zu den ScaleServer Paketen

Wir empfehlen Ihnen folgende Lösungen:

Managed Server oder ScaleServer

Zu den Managed Server Paketen Zu den ScaleServer Paketen

Wir empfehlen Ihnen unsere

Timme Cloud 2.0

Zur Timme Cloud 2.0