Shopware Plattform / 6 / Playground lokal ohne Docker

@dreischild‍ Ja, ich aktuell auch. Muss hier mehr am System rum schrauben und Fehler ausbügeln :smiley:

Aber ich schaue mal, vielleicht klappt es nachher. Versuche erstmal die MySQL Fehler beim Setup zu fixen. Bin ich aber wohl auch selber schuld, da ich mehrere Versionen installiert hab … Anyway: Ich gebe auf jeden Fall später mal bescheid, ob das alles funzt, oder net.

@dreischild‍ [@Michael Telgmann](http://forum.shopware.com/profile/17553/Michael Telgmann “Michael Telgmann”)‍  So, nachdem ich mein Datenbank Chaos gelöst habe, lief nun alles ohne Probleme durch. Ohne Docker, ohne Ubuntu.

Ich nutze Valet-Plus auf meinen OSX Rechner. Allerdings scheint es wohl ein Problem mit dem UTF coding zu geben.

Die Tabelle ist: utf8mb4

Im Frontend bekomme ich teilweise nur:

InvalidArgumentException

Malformed UTF-8 characters, possibly incorrectly encoded

So sieht die Datenbank aus:

Imgur

PS: Was ist den das default pw? admin, adminadmin oder password funktioniert nicht :slight_smile:
In der Doku finde ich dazu nichts. 

Passwort müsste shopware sein,

Viele Grüße

Andre

@AndreHerking schrieb:

Passwort müsste shopware sein,

Viele Grüße

Andre

Jap. Nach Login passiert allerdings nicht viel. Der Error ist:

Uncaught PHP Exception ErrorException: " Notice: Use of undefined constant PASSWORD_ARGON2I - assumed ‚PASSWORD_ARGON2I‘" at /Users/me/Desktop/code/shopware-dev/vendor/shopware/platform/src/Core/Framework/DataAbstractionLayer/Field/PasswordField.php line 24 

Habe dieses Thema gefunden: Critical: Argon2 algorithm not working in latest PHP 7.2 · Issue #237 · cloudfoundry/php-buildpack · GitHub

Ich nutze PHP 7.2.15. Hängt es hiermit evtl. zusammen? Wobei es ja laut issue eigentlich behoben ist.

Evtl muss ich es wohl nochmal mit –with-password-argon2 installieren. Mal schauen …

@Shopwareianer schrieb:

Ich nutze PHP 7.2.15. Hängt es hiermit evtl. zusammen?

Nutze ich auch, hab damit keine Probleme. Glaube ich also nicht.

Mein Setup ist php-7.2.15fpm, Apache, mariaDB 10.3.13

Ich hab mir ein einfaches script gemacht zum aufsetzen:

#!/bin/bash
rm -R /var/www/html/development
echo 'Alte Installation geloescht'
git clone https://github.com/shopware/development.git
echo 'neue Installation heruntergeladen'
cp /var/www/html/.psh.yaml.override development/
echo 'Konfiguration kopiert'
chmod 0777 -R /var/www/html/development
chown -R www-data:www-data /var/www/html/development
echo 'Verzeichnisrechte angepasst'
cd /var/www/html/development
composer install
echo 'Abhaengigkeiten aufgeloest'
./psh.phar install
echo 'Installation abgeschlossen'
./psh.phar storefront:install
./psh.phar storefront:prod
echo 'Storefront gebaut'

Habe selbst zwar ein Docker-Setup, hab das aber so auch schon auf einer einfachen Ubuntu-Maschine mit LAMP-Stack gemacht.

Ich benutze eine vorgefertigte yml.override um das vorzubereiten:

const:
  APP_ENV: "dev"
  APP_URL: "http://development"
  DB_HOST: "database"
  DB_PORT: "3306"
  DB_NAME: "next"
  DB_USER: "root"
  DB_PASSWORD: "root"

 

Ja, Sollte ja in PHP 7.2.X funktionieren und drin sein. Bekomme im Backend nach Login aber:  Foot-in-Mouth

Notice: Use of undefined constant PASSWORD_ARGON2I - assumed ‘PASSWORD_ARGON2I’

Oder hängt es vielleicht mit dem falschen Encoding der DB zusammen, sodass es falsch gespeichert wird? Welches wäre denn für die Datenbank korrekt? Denn die Datenbank speichert ja zum Teil nur Hyroglyphen wie oben im Bild zu sehen.  MySQL ist übrigens  5.7.22

Sicher, dass das nicht einfach binary Felder sind? Die kann PHPMyAdmin glaube noch nicht lesen. Adminer bspw. kann das. Mein aktuelles PHPMyAdmin zeigt aber dennoch keine Hyroglyphen an.

So sieht meine DB aus.

@Moritz Naczenski schrieb:

Sicher, dass das nicht einfach binary Felder sind? Die kann PHPMyAdmin glaube noch nicht lesen. Adminer bspw. kann das. Mein aktuelles PHPMyAdmin zeigt aber dennoch keine Hyroglyphen an.

image

So sieht meine DB aus.

Ich nutze Sequal Pro. Sowie ich das sehe speichert oder hat er alles als Hyroglyphen drin, was irgendwie mit einer ID zu tun hat. 

Kann mir aber eben den Fehler im Backend mit

Uncaught PHP Exception ErrorException: " Notice: Use of undefined constant PASSWORD_ARGON2I - assumed ‘PASSWORD_ARGON2I’" at /Users/me/Desktop/code/shopware-dev/vendor/shopware/platform/src/Core/Framework/DataAbstractionLayer/Field/PasswordField.php line 24 

nicht erklären …

Und im Frontend bzgl. des Endcodings bekomme ich eben den Fehler:

(1/1) InvalidArgumentException

Malformed UTF-8 characters, possibly incorrectly encoded

in JsonResponse.php line 152at JsonResponse->setData(false)in JsonResponse.php line 50at JsonResponse->__construct(array(‘errors’ => array(array(‘code’ => ‘0’, ‘status’ => ‘500’, ‘title’ => ‘Internal Server Error’, ‘detail’ => 'Notice: Use of undefined constant PASSWORD_ARGON2I … usw

Da muss also irgendwo was nicht stimmen - Im Setup. 

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍:

Bzgl. deines Scripts von oben:
Hast du hier ggf. eine komplette Aufstellung, welche Schritte du hier von einem komplett neuem Ubuntu 18.04 bis zu einer aufgesetzten Testumgebung machst? Also inkl. Hosteintrag, APT Get Installs etc.? Das sollte ja eigentlich durch eurern DEV Guide der Fall sein. Dies funktioniert nur leider nicht ganz.

@dreischild schrieb:

Bzgl. deines Scripts von oben:
Hast du hier ggf. eine komplette Aufstellung, welche Schritte du hier von einem komplett neuem Ubuntu 18.04 bis zu einer aufgesetzten Testumgebung machst? Also inkl. Hosteintrag, APT Get Installs etc.? Das sollte ja eigentlich durch eurern DEV Guide der Fall sein. Dies funktioniert nur leider nicht ganz.

Also mein  Docker-Setup ist kein Ubuntu.

Bei den anderen hab ich als Ausgangsbasis ein Standardsetup für SW5 genutzt und dann noch nodejs nachinstalliert. Also da ist nicht wirklich ein Unterschied. 

Im Prinzip also ein Standard LAMP-Setup + mysql_group_concat anpassen. Composer installieren und ein aktuelles nodejs. Da muss man nichts groß konfigurieren.

@Shopwareianer schrieb:

Ich nutze Sequal Pro. Sowie ich das sehe speichert oder hat er alles als Hyroglyphen drin, was irgendwie mit einer ID zu tun hat. 

Sicher, dass das Programm mit binary Feldern umgehen kann? Bspw. mysql workbench kann das auch nicht.

Die Felder haben halt keine „einfachen“ Daten. In PHPMyAdmin sehen die so aus:

 

@Moritz Naczenski schrieb:

@Shopwareianer schrieb:

Ich nutze Sequal Pro. Sowie ich das sehe speichert oder hat er alles als Hyroglyphen drin, was irgendwie mit einer ID zu tun hat. 

Sicher, dass das Programm mit binary Feldern umgehen kann? Bspw. mysql workbench kann das auch nicht.

Die Felder haben halt keine „einfachen“ Daten. In PHPMyAdmin sehen die so aus:

  image

Unabhängig davon ob Sequal Pro es korrekt anzeigen kann oder nicht, müsste ja das Backend funktionieren. Und auch im Frontend bekomme ich ja diesen Encoding Fehler - Irgendwas scheint da eben nicht zu stimmen … Ich weiß nur net was … :frowning:
Ob SP das kann, weiß ich gar net. Sehe ich gerade zum ersten mal den Fehler. Auch mit dem PW Hash :D 

Sollten die Datenbank und die Tabellen nicht ut8_unicode_ci sein? Oder unterstützt die zukünftige Version Multibyte?

Ich hatte mir auch unter Version 5 schon Staging- und Backup-Umgebungen falsch aufgesetzt, weil ich ut8mb4_unicode_ci statt ut8_unicode_ci verwendet hatte. (Die Verbindung darf ruhig ut8mb4_unicode_ci sein.)

@Shopwareianer schrieb:

@Moritz Naczenski schrieb:

@Shopwareianer schrieb:

Ich nutze Sequal Pro. Sowie ich das sehe speichert oder hat er alles als Hyroglyphen drin, was irgendwie mit einer ID zu tun hat. 

Sicher, dass das Programm mit binary Feldern umgehen kann? Bspw. mysql workbench kann das auch nicht.

Die Felder haben halt keine “einfachen” Daten. In PHPMyAdmin sehen die so aus:

  image

Unabhängig davon ob Sequal Pro es korrekt anzeigen kann oder nicht, müsste ja das Backend funktionieren. Und auch im Frontend bekomme ich ja diesen Encoding Fehler - Irgendwas scheint da eben nicht zu stimmen … Ich weiß nur net was … :(
Ob SP das kann, weiß ich gar net. Sehe ich gerade zum ersten mal den Fehler. Auch mit dem PW Hash :D 

Vielleicht liegt es am Encoding der Dateien?
Die Storefront zieht die Snippets auch aus JSON-Dateien, der Fehler kann also auch aus der Datei für die Textbausteine kommen, da dort die Umlaute falsch formatiert sind. Eigentlich sollte aber bei einem “git clone” da kein Problem entstehen.

Nachstellen kann ich das zumindest lokal nicht, das Setup was ich habe läuft schon mehrere Monate stabil. 

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍:

Okay. Ich muss einfach noch mal etwas testen. 
Macht es denn überhaupt Sinn jetzt schon mit der Geschichte zu starten? Ich habe gerade bspw. mal versucht eines der Beispiel-Plugins zu installieren. Auch dies geht leider nicht. Er meckert, dass er eine composer.json im Plugin-Ordner nicht laden kann, die im Beispiel überhaupt nicht vorgesehen ist. Wenn ich die Anlege geht es weiter mit den Fehlern

dreischild@dreischild:~/shopware-dev/custom/plugins/SwagExample$ ls -al
insgesamt 24
drwxr-xr-x 4 dreischild www-data 4096 Mär 20 12:50 .
drwxr-sr-x 3 dreischild www-data 4096 Mär 20 12:40 ..
-rw-r--r-- 1 dreischild dreischild 268 Mär 20 12:50 composer.json
drwxr-xr-x 2 dreischild www-data 4096 Dez 24 08:18 Controller
drwxr-xr-x 2 dreischild www-data 4096 Dez 24 10:17 Resources
-rw-r--r-- 1 dreischild www-data 130 Dez 21 10:43 SwagExample.php
dreischild@dreischild:~/shopware-dev/custom/plugins/SwagExample$ ../../../bin/console plugin:refresh

Shopware Plugin Service
=======================


In FieldExceptionStack.php line 22:
                                                                                    
  Mapping failed, got 1 failure(s). Array                                           
  (                                                                                 
      [/translations/20080911ffff4fffafffffff19830531/label] => Array               
          (                                                                         
              [validation-error-violation-error] => Array                           
                  (                                                                 
                      [0] => Array                                                  
                          (                                                         
                              [message] => This value should not be blank.          
                              [messageTemplate] => This value should not be blank.  
                              [parameters] => Array                                 
                                  (                                                 
                                      [{{ value }}] => null                         
                                  )                                                 
                                                                                    
                              [propertyPath] => label                               
                          )                                                         
                                                                                    
                  )                                                                 
                                                                                    
          )                                                                         
                                                                                    
  )                                                                                 

 

@dreischild schrieb:

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍:

Okay. Ich muss einfach noch mal etwas testen. 
Macht es denn überhaupt Sinn jetzt schon mit der Geschichte zu starten? Ich habe gerade bspw. mal versucht eines der Beispiel-Plugins zu installieren. Auch dies geht leider nicht. Er meckert, dass er eine composer.json im Plugin-Ordner nicht laden kann, die im Beispiel überhaupt nicht vorgesehen ist. Wenn ich die Anlege geht es weiter mit den Fehlern

Die Example Plugins sind anscheinend noch nicht aktuell, da ist vor kurzem das Plugin-System erweitert worden:  https://docs.shopware.com/en/shopware-platform-en/plugin-system/plugin-information?category=shopware-platform-en/plugin-system

Moin! Der Fehler mit ARGON2 kommt dann, wenn php ohne argon2 kompiliert wurde. Eigentlich sollte das bei PHP 7.2 standardmäßig so sein.

Das phpmyadmin und andere Clients die Daten nicht korrekt anzeigen musste wir leider auch schon feststellen. Es handelt sich bei den Feldern um UUIDs, welche binär abgespeichert wurden. Ich persönliche nutze https://www.adminer.org/, da klappt die Darstellung problemlos.

 

Aktuell ändert sich noch einiges, es kann daher vorkommen, das die Plugins nicht immer up to date sind.

1 Like

@Jens_K schrieb:

Moin! Der Fehler mit ARGON2 kommt dann, wenn php ohne argon2 kompiliert wurde. Eigentlich sollte das bei PHP 7.2 standardmäßig so sein.

Das phpmyadmin und andere Clients die Daten nicht korrekt anzeigen musste wir leider auch schon feststellen. Es handelt sich bei den Feldern um UUIDs, welche binär abgespeichert wurden. Ich persönliche nutze https://www.adminer.org/, da klappt die Darstellung problemlos.

 

Aktuell ändert sich noch einiges, es kann daher vorkommen, das die Plugins nicht immer up to date sind.

mh … Nutzt jemand von euch OSX mit Homebrew? Ich glaube auch, dass es bei PHP 7.2 bereits drin sein müsste. Habe es nun versucht 7.2 zu reinstallen mit --with-argon2. Bekomme dan allerdings: Error: invalid option: --with-argon2 

Argo2 ist widerrum installiert, aber anscheinend PHP damit nicht kompiliert:

brew install argon2

Warning: argon2 20171227 is already installed and up-to-date

Ich habe nichts dazu gefunden, da es mir komplett neu ist: Aber kann ich irgendwo sehen/testen, ob Argon2 installiert ist? Habe dazu nichts gefunden.

Mit Laravel bspw. klappt der Argon Hash. Vielleicht nutzt Laravel da auch irgendein weiteres Package, keine Ahnung.

Wenn ich bspw. password_hash(‘somepassword’, PASSWORD_ARGON2I, [‘memory_cost’ => 2048, ‘time_cost’ => 4, ‘threads’ => 3]); ausgeben lassen will, derselbe Fehler wie bei Shopware.

@dreischild schrieb:

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍:

Okay. Ich muss einfach noch mal etwas testen. 
Macht es denn überhaupt Sinn jetzt schon mit der Geschichte zu starten? Ich habe gerade bspw. mal versucht eines der Beispiel-Plugins zu installieren. Auch dies geht leider nicht. Er meckert, dass er eine composer.json im Plugin-Ordner nicht laden kann, die im Beispiel überhaupt nicht vorgesehen ist. Wenn ich die Anlege geht es weiter mit den Fehlern

Ein Kollege hatte noch ein Script für Ubuntu, was bei ihm funktioniert. Vielleicht hilft dir das:

set -e

export DEBIAN_FRONTEND=noninteractive
apt-get update
apt install -y php7.2 libapache2-mod-php php-cli
apt install -y mysql-server apache2
apt install -y composer nodejs npm chromium-browser default-jre-headless git
apt install -y php-gd php-intl php-iconv php-mbstring php-mysql php-xml php-zip php-json
 
/etc/init.d/mysql start 

mysql << EndOfMessage
CREATE USER 'app'@'localhost' IDENTIFIED BY 'app';
GRANT ALL PRIVILEGES ON shopware.* TO 'app'@'localhost';
GRANT ALL PRIVILEGES ON shopware_test.* TO 'app'@'localhost';
GRANT ALL PRIVILEGES ON shopware_e2e.* TO 'app'@'localhost';
FLUSH PRIVILEGES;
EndOfMessage

git clone https://github.com/shopware/development.git $HOME/shopware-dev
cd $HOME/shopware-dev

##todo: entspricht nicht manuellem setup
tee .psh.yaml.override << EndOfMessage
const:
  APP_ENV: "dev"
  APP_URL: "http://shopware.test:8000"
  DB_HOST: "localhost"
  DB_PORT: "3306"
  DB_NAME: "shopware"
  DB_USER: "app"
  DB_PASSWORD: "app"
  CHROME_BIN: "chromium-browser"
EndOfMessage

git clone --depth=1 https://github.com/shopware/platform.git
composer install
npm install -g npm
npm install in vendor/shopware/platform/src/Administration/Resources/administration/

./psh.phar init
./psh.phar administration:init
./psh.phar administration:build

usermod -a -G www-data $(whoami)
chgrp -R www-data $HOME/shopware-dev
find $HOME/shopware-dev -type d -exec chmod g+s '{}' \;
#chmod g+w -R $HOME/shopware-dev/{var,public/{media,thumbnail}}
chmod g+w -R $HOME/shopware-dev/var
#chmod g+w -R $HOME/shopware-dev/public/thumbnail
chmod g+w -R $HOME/shopware-dev/public/media


echo "127.0.0.1 shopware.test" | tee --append /etc/hosts
ln -s $HOME/shopware-dev /var/www/shopware.test

/etc/init.d/apache2 restart

echo "LISTEN 8000


    DocumentRoot "/var/www/shopware.test/public"
    ServerName shopware.test
    
        AllowOverride All
    
" > /etc/apache2/sites-available/shopware.test.conf

# enable shopware vhost
a2ensite shopware.test.conf
# disable default vhost
a2dissite 000-default.conf
# enable mod_rewrite
a2enmod rewrite
# restart apache (changed)
/etc/init.d/apache2 restart

curl http://shopware.test:8000/admin