Shopware 6 lokale Installation

Ich habe das alles so eingerichtet. Hat eine Ewigkeit gedauert bis ich mich da “durchgefuchst” hatte! Erst mal auch noch die falsche Mariadb (Version 10.1) installiert. Diese dann auf Version 10.4 upgedated! Zuletzt habe ich dann im PhpStorm im Apache-Root-Verzeichnis die folgenden Befehle ausgeführt:

 

git clone https://github.com/shopware/development.git

cd development

Händisch Ordner “platform” gelöscht

git clone https://github.com/shopware/platform.git

Virtual Host angelegt (nur im Apache innerhalb des WSL nicht in der Windows hosts-Datei)

bin/setup

 

Das lief alles einwandfrei durch aber im Frontend kann ich nur auf localhost zugreifen und sehe nur eine weiße Seite. Der Virtual Host scheint auch nicht zu funktionieren. Datenbank wurde unter Mariadb ebenfalls beim Bin-Setup nicht angelgt. Hast du noch einen Tipp für mich was ich hier falsch gemacht habe?

hm logfiles helfen meist… php-log/apache-log und shopware log in var/log

klingt für mich erstmal nach ner fehlerhaften apache config

evtl rechte problem? alles www-data (normal). mit apache hab ichs noch nicht verwendet - nur nginx (dort reicht dann mehr oder weniger die symfony config bisschen modifiziert). 

hast die dev console in chrome/edge mal angesehen? evtl dort fehler? rewrite modul nicht aktiv?

Das rewrite modul ist laut phpinfo aktiviert. Ich hatte es auch aktiv per " sudo a2enmod rewrite" aktiviert. Das Frontend öffnet immerhin mit Inhalt, jedoch ohne CSS und somit ohne Layout. Für den admin vermute ich aber auch hier irgendwo den Fehler beim URL-Rewrite, weil Shopware direkt nach der Installation nicht auf http://localhost/shopware615/admin sondern auf http://localhost/shopware615/public/admin springt. Dort kommt sogar der Login-Screen, welcher auch zumindest noch die eingegebenen Daten überprüft (es kommt die übliche Fehlermeldung bei falschen Zugangsdaten). Allerdings erscheint anschließend eine weiße Seite mit diesem Inhalt im Quelltext:

        Shopware Administration (c) shopware AG
    
    
            
        
        
        
        
        
        
        
    
    
    













    /*
        root-level domain configuration

        host: shopware.next
        port: 80
        scheme: http
        schemeAndHttpHost: http://shopware.next
        uri: http://shopware.next/admin
        basePath:
        pathInfo: /admin

        -----------------------------------------------

        sub-folder domain configuration

        host: localhost
        port: 80
        scheme: http
        schemeAndHttpHost: http://localhost
        uri: http://localhost/next/web/admin
        basePath: /next/web
        pathInfo: /admin
    */
    Shopware.Application.start({
        apiContext: {
            host: 'localhost',
            port: 80,
            scheme: 'http',
            schemeAndHttpHost: 'http://localhost',
            uri: 'http://localhost/shopware615/public/admin',
            basePath: '/shopware615/public',
            pathInfo: '/admin',
            liveVersionId: '0fa91ce3e96a4bc2be4bd9ce752c3425',
            systemLanguageId: '2fbb5fe2e29a4d70aa5854ce7ce3e20b'
        },
        appContext: {
            features: {"next733":false,"next1797":false,"next3722":false},
            firstRunWizard: true,
            systemCurrencyId: 'b7d2554b0ce847cd82f3ac9bd1c0dfca'
        }
    });

 

dein document-root-ordner ist falsch gesetzt.
bei shopware6 ist (wie bei jeder symfony anwendung) oder “root” ordner /public

sprich:
href="/shopware615/public/bundles/…
sollte in deiner html-ausgabe eigentlich so aussehen:
href="/bundles/…

du kannst shopware6 nicht ohne weiteres in einen unterordner kopieren und aufrufen

am besten du legst dir nen vhost an mit entsprechenden einstellungen.
die url kannst du ja in der windows hosts datei definieren

ach ja: die url muss dann auch in der shopware storefront definiert sein (musst ggf. in der db ändern - könnte evtl auch via konsole gehen - bin grade nicht sicher)

Ich empfehle euch Dockware.io

Das klappt sogar unter Windows.

Mit dem Vhost bin ich mir immer noch nicht im unklaren. Muss ich den nur in der windows hosts datei definieren oder auch in der /etc/apache2/sites-enabled/000-default.conf? Die Anpassungen in der Datenbank sind übrigens die Sales-Channel-Einträge in der Tabelle sales_channel_domain. Weitere URL-Einträge mit „public“ habe ich in der Datenbank nicht gefunden.

Ich habe jetzt folgenden Hosts-Eintrag unter WIndows und im Apache gesetzt:

 ServerName localhost 
 DocumentRoot /var/www/devroot/shopware615/public 

  
  Options Indexes FollowSymLinks MultiViews 
  AllowOverride All 
  Order allow,deny 
  allow from all 
  

 ErrorLog ${APACHE_LOG_DIR}/shopware-platform.error.log 
 CustomLog ${APACHE_LOG_DIR}/shopware-platform.access.log combined 
 LogLevel debug 

 

Der Aufruf von http://localhost:8080/ führt jedoch ins Leere. P.S. Die eckigen Klammern werden hier nur vom Forums-Editor maskiert!

Menschen die Technologien wie Vagrant oder Docker leugnen und mit Biegen und Brechen ihr eigenes Süppchen kochen, die liebe ich. Weniger Konkurrenz.  Thumb-Up

1 „Gefällt mir“

@Overtone: gugg hier mal rein - shopware ist im grunde eine symfony-anwendung - das müsste dir normal weiterhelfen. denke deine angabe ist vermutlich falsch

https://symfony.com/doc/4.4/setup/web_server_configuration.html

ach ja: /var/www/devroot/shopware615/public - dort kommst du aus windows nicht ohne weiteres hin - /mnt/c/ wäre die lokale c: platte

die nginx config sieht bei mir so aus:
/etc/nginx/sites-enabled/shopware6dev

server {

    listen 80;
    server_name shopware6dev.local;
    root /mnt/c/svn/shopware6dev/public;
    index index.php;

    access_log /var/log/nginx/shopware6dev-access.log;
    error_log /var/log/nginx/shopware6dev-error.log error;

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~* \.php$ {
        send_timeout 1800;
        fastcgi_read_timeout 1800;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi.conf;
        fastcgi_buffering off;
        set $path_info $fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
   }

}

@Moorleiche: vielen dank für den hilfreichen kommentar - dieser hat erhelblich zur lösung des problems beigetragen!

@Moorleiche schrieb:

Menschen die Technologien wie Vagrant oder Docker leugnen und mit Biegen und Brechen ihr eigenes Süppchen kochen, die liebe ich. Weniger Konkurrenz.  Thumb-Up

Ich finde den Kommentar gar nicht so unangebracht, da Moorleiche ja recht hat. Da doch entgegen vieler Meinungen im Web-Development und im gesamten Web-Umfeld alles schwieriger und komplexer statt einfacher wird filtert sich die „schwächere“ Konkurrenz immer mehr heraus. Ich habe aber auch nicht behauptet, dass es mit Vagrant oder Docker nicht möglich ist, sondern nur, dass es bei mir und unter Windows mit den Beschreibungen und Tutorials, welche man auch durchaus im Shopware-Forum und sogar im Shopware-Handbuch findet, „GARANTIERT“ nicht funktioniert. Alle Beschreibungen oder Tutorials die ich gefunden habe sind also entweder fehlerhaft oder unvollständig, so dass es mir nicht gelungen ist anhand dieser Anleitungen ein lauffähiges Shopware mit diesen Technologien umzusetzen. Sicherlich liegt es nur an diversen Einstellungen und Konfigurationen, es ist aber auch nicht jeder Entwickler ein Linux- oder Server-Experte.

@mamamia schrieb:

 

 

server_name shopware6dev.local;
root /mnt/c/svn/shopware6dev/public;

Vielen Dank für diesen Tipp. Klar war mein Pfad falsch gesetzt. Er muss natürlich wie von dir beschrieben mit /mnt/c/ beginnen. Jetzt erscheint IMMERHIN eine Shopware-Fehlermeldung beim Aufruf von „http://localhost“:

Unable to find a matching sales channel for the request: http://localhost/". Please make sure the domain mapping is correct.

Ein Aufruf von http://shopware615.dev (wurde bei mir so als ServerName gesetzt) bringt allerdings wieder eine weiße Seite. Sollte das denn jetzt nicht funktionieren?

 

In meiner Datenbanktabelle „sales_channel_domain“ steht bei den beiden Einträgen übrigens http://localhost/shopware615/ bzw. https://localhost/shopware615/. Ist das deiner Meinung nach korrekt? Bei nur http://localhost zeigt das Frontend nämlich wieder eine weiße Seite aber http://localhost/admin öffnet zumindest den Anmelde-Bildschirm, egal ob in meiner Datenbanktabelle „sales_channel_domain“ http://localhost/shopware615/ oder nur http://localhost/ steht. Nach dem Login erscheint jedoch wieder einmal nur eine weiße Seite!

Ich konnte jetzt tatsächlich ein neues Shopware mit den bisher durchgeführten Anpassungen direkt unter http://localhost installieren. Es lief auch super durch bis genau zum allerletzten Schritt des „First run wizards“ mit der Meldung „Anwendung wird neu gestartet“. Dieser befindet sich in einer Endlos-Schleife. Es gibt hier zwar diverse Threads zu diesem Problem aber keine Lösung. Ich könnte kot…!

 

Nachtrag: Ein Klick auf den "Zurück-Button an dieser Stelle brachte nach etwa 30 Minuten doch den Erfolg. Der Admin funktioniert jetzt. Allerdings ist kein Template vorhanden. Wieso ist bei der identischen Installation bei einem Live-Webserver bei meinem Provider ein Template nach der Installation vorhanden?

Ich habe es jetzt tatsächlich hin bekommen. Das Shopware-Standard-Theme erscheint übrigens erst nachdem man mit den bekannten Console-Befehlen ein eigenes Theme erzeugt hat. Dann nur noch das Theme dem Verkauskanal zuweisen, Cache leeren, Theme kompilieren und voila. Viiiiiielen Dank für eure Unterstützung.

Als Anmerkung: Schau dir mal das neue https://dockware.io/ an, Managed Shopware 6 Docker setups with dockware .

@Overtone schrieb:

@Moorleiche schrieb:

Menschen die Technologien wie Vagrant oder Docker leugnen und mit Biegen und Brechen ihr eigenes Süppchen kochen, die liebe ich. Weniger Konkurrenz.  Thumb-Up

Ich finde den Kommentar gar nicht so unangebracht, da Moorleiche ja recht hat. Da doch entgegen vieler Meinungen im Web-Development und im gesamten Web-Umfeld alles schwieriger und komplexer statt einfacher wird filtert sich die „schwächere“ Konkurrenz immer mehr heraus. Ich habe aber auch nicht behauptet, dass es mit Vagrant oder Docker nicht möglich ist, sondern nur, dass es bei mir und unter Windows mit den Beschreibungen und Tutorials, welche man auch durchaus im Shopware-Forum und sogar im Shopware-Handbuch findet, „GARANTIERT“ nicht funktioniert. Alle Beschreibungen oder Tutorials die ich gefunden habe sind also entweder fehlerhaft oder unvollständig, so dass es mir nicht gelungen ist anhand dieser Anleitungen ein lauffähiges Shopware mit diesen Technologien umzusetzen. Sicherlich liegt es nur an diversen Einstellungen und Konfigurationen, es ist aber auch nicht jeder Entwickler ein Linux- oder Server-Experte.

Wie vor mir geschrieben, unter Windows läuft dockware.io ohne Probleme. Bei Fragen einfach melden.

@mamamia schrieb:

ich verwende Windows Subsystem for Linux. bei mittlerweile allen meinen projekten - funktioniert ausgezeichnet
(mit nginx/mariadb/php-fpm )

meine projekte liegen in /mnt/c/projekte/shopware6dev - den ordner kann man in phpstorm öffnen und damit entwickeln.

ich glaube sogar gesehen zu haben dass phpstorm mittlerweile direkte wsl unterstützung hat (noch nicht getestet)

git geht natürlich auch - sowohl innerhalb wsl als auch mit phpstorm oder tortoise

pro-tipps:

  • in nginx muss man fastcgi_buffering off; setzen - sonst gibts tatsächlich ab und an problemchen
    - defender für den WSL app-ordner deaktivieren wg. performance
  • rechte auf www-data für von windows erstellte dateien ausserhalb wsl: diese config innerhalb debian:
    /etc/wsl.conf
    [automount]
    options = „metadata,uid=33,gid=33“

 

Ich wäre Dir sehr dankbar, wenn Du einmal den Schritt der Installation des Webservers näher erläutern würdest? 
Kommt Dein „nginx/mariadb/php-fpm“ auch von docker? oder hast du den in der wsl konsole manuell installiert? 

@ottscho schrieb:

Wie vor mir geschrieben, unter Windows läuft dockware.io ohne Probleme. Bei Fragen einfach melden.

 Hi, ich wollte auch mal dockware (Windows) ausprobieren, aber leider funktioniert das nicht so ganz.

Ich bekomme beim Download von Shopware ständig folgende Fehlermeldung:

docker cp shopware:/var/www/html/. ./src

open F:\dw_6\src\vendor\shopware\administration\Resources\app\administration\node_modules\.cache\terser-webpack-plugin\content-v2\sha512\07\9e\a1b36ed481d39979d838f30d1f4c7c87c3e9df390d7f8b2798e12bd5f65a4781c331a2a9e7b3117b37f326b80b6f52deaabf9075e97156a209134ae66ea2: Das System kann den angegebenen Pfad nicht finden.

Hat vielleicht jemand einen Tipp für mich?

Moin,

der Pfad ist zu lange. Ist ein Windows Problem.
Entweder die Zeichen / Pfadlänge erhöhen. Je nach Windows Version in den Einstellungen oder Registry.
Oder du legst einfach einen Order z.B: c:\p Statt dw_6
Das hatte bei mir schon ausgereicht unter Windows 10.

Anbei ein Screen. Pfad Probleme, “Gruppenrichtlinien bearbeiten” und langen Pfad aktivieren.

 

Viele Grüße

ottscho

@ottscho schrieb:

Moin,

der Pfad ist zu lange. Ist ein Windows Problem.
Entweder die Zeichen / Pfadlänge erhöhen. Je nach Windows Version in den Einstellungen oder Registry.
Oder du legst einfach einen Order z.B: c:\p Statt dw_6
Das hatte bei mir schon ausgereicht unter Windows 10.

Anbei ein Screen. Pfad Probleme, „Gruppenrichtlinien bearbeiten“ und langen Pfad aktivieren.

 

Viele Grüße

ottscho

Danke für den Tipp, hab mir schon gedacht, dass der Pfadname zu lang ist.
Leider funktioniert die Einstellung per GPO nicht. Weder über CMD noch PowerShell. Auch nach einem Neustart nicht.

Das Einzige was bisher geklappt hat war den Ordner mit maximal einem Zeichen direkt auf Laufwerksebene zu erstellen. Dann sind es genau 260 Zeichen.

Aber so richtig gefällt mir das nicht :frowning:

Wie hast du das hinbekommen? Bei mir läuft es unter Windows überhaupt nicht. Hast du da ne Anleitung?