Installationsfehler bei Punkt 22/28

Hallo,

ich würde so gern starten… Aber ich komm hier nicht weiter.

Installation sowohl als docker Installation getestet, als auch als Lokale Installation. Beide führen zum selben Fehler…

Bei (22/28) bricht mir die Installation in beiden Fällen ab.
Und zwar wenn ich den Befehl:

./psh.phar install 

ausführe.

Bei der Docker Installation habe ich genau darauf geachtet, vorher

./psh.phar docker:ssh

erfolgreich auszuführen. Ich befinde mich dann auch in der SSH Session…

System ist Ubuntu. Getestet mit Ubuntu 19.04 Server (Lokale Installation), Ubuntu 18.04 Server (Lokale Installation) und Ubuntu 18.04 mit GUI (Docker).

 

Fehlermeldung:

 

 

(22/28) Starting
> npm clean-install --prefix vendor/shopware/platform/src/Administration/Resources/administration/
	npm WARN prepare removing existing node_modules/ before installation
	
	> fsevents@1.2.4 install /app/vendor/shopware/platform/src/Administration/Resources/administration/node_modules/fsevents
	> node install
	
	
	> node-sass@4.12.0 install /app/vendor/shopware/platform/src/Administration/Resources/administration/node_modules/node-sass
	> node scripts/install.js
	
	Unable to save binary /app/platform/src/Administration/Resources/administration/node_modules/node-sass/vendor/linux-x64-67 : { Error: EACCES: permission denied, mkdir '/app/platform/src/Administration/Resources/administration/node_modules/node-sass/vendor'
	    at Object.mkdirSync (fs.js:773:3)
	    at sync (/app/platform/src/Administration/Resources/administration/node_modules/mkdirp/index.js:71:13)
	    at Function.sync (/app/platform/src/Administration/Resources/administration/node_modules/mkdirp/index.js:77:24)
	    at checkAndDownloadBinary (/app/platform/src/Administration/Resources/administration/node_modules/node-sass/scripts/install.js:114:11)
	    at Object. (/app/platform/src/Administration/Resources/administration/node_modules/node-sass/scripts/install.js:157:1)
	    at Module._compile (internal/modules/cjs/loader.js:816:30)
	    at Object.Module._extensions..js (internal/modules/cjs/loader.js:827:10)
	    at Module.load (internal/modules/cjs/loader.js:685:32)
	    at Function.Module._load (internal/modules/cjs/loader.js:620:12)
	    at Function.Module.runMain (internal/modules/cjs/loader.js:877:12)
	  errno: -13,
	  syscall: 'mkdir',
	  code: 'EACCES',
	  path:
	   '/app/platform/src/Administration/Resources/administration/node_modules/node-sass/vendor' }
	
	> node-sass@4.12.0 postinstall /app/vendor/shopware/platform/src/Administration/Resources/administration/node_modules/node-sass
	> node scripts/build.js
	
	Building: /usr/bin/node /app/platform/src/Administration/Resources/administration/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
	gyp info it worked if it ends with ok
	gyp verb cli [ '/usr/bin/node',
	gyp verb cli '/app/platform/src/Administration/Resources/administration/node_modules/node-gyp/bin/node-gyp.js',
	gyp verb cli 'rebuild',
	gyp verb cli '--verbose',
	gyp verb cli '--libsass_ext=',
	gyp verb cli '--libsass_cflags=',
	gyp verb cli '--libsass_ldflags=',
	gyp verb cli '--libsass_library=' ]
	gyp info using node-gyp@3.8.0
	gyp info using node@11.15.0 | linux | x64
	gyp verb command rebuild []
	gyp verb command clean []
	gyp verb clean removing "build" directory
	gyp verb command configure []
	gyp verb check python checking for Python executable "python2" in the PATH
	gyp verb `which` succeeded python2 /usr/bin/python2
	gyp verb check python version `/usr/bin/python2 -c "import sys; print "2.7.13
	gyp verb check python version .%s.%s" % sys.version_info[:3];"` returned: %j
	gyp verb get node dir no --target version specified, falling back to host node version: 11.15.0
	gyp verb command install ['11.15.0']
	gyp verb install input version string "11.15.0"
	gyp verb install installing version: 11.15.0
	gyp verb install --ensure was passed, so won't reinstall if already installed
	gyp WARN EACCES user "undefined" does not have permission to access the dev dir "/root/.node-gyp/11.15.0"
	gyp WARN EACCES attempting to reinstall using temporary dev dir "/app/vendor/shopware/platform/src/Administration/Resources/administration/node_modules/node-sass/.node-gyp"
	gyp verb command install ['--node_gyp_internal_noretry', '11.15.0']
	gyp verb install input version string "11.15.0"
	gyp verb install installing version: 11.15.0
	gyp verb install --ensure was passed, so won't reinstall if already installed
	gyp verb install version not already installed, continuing with install 11.15.0
	gyp verb ensuring nodedir is created /app/vendor/shopware/platform/src/Administration/Resources/administration/node_modules/node-sass/.node-gyp/11.15.0
	gyp WARN install got an error, rolling back install
	gyp verb command remove ['11.15.0']
	gyp verb remove using node-gyp dir: /app/vendor/shopware/platform/src/Administration/Resources/administration/node_modules/node-sass/.node-gyp
	gyp verb remove removing target version: 11.15.0
	gyp verb remove removing development files for version: 11.15.0
	gyp WARN install got an error, rolling back install
	gyp verb command remove ['11.15.0']
	gyp verb remove using node-gyp dir: /app/vendor/shopware/platform/src/Administration/Resources/administration/node_modules/node-sass/.node-gyp
	gyp verb remove removing target version: 11.15.0
	gyp verb remove removing development files for version: 11.15.0
	gyp ERR! configure error 
	gyp ERR! stack Error: EACCES: permission denied, mkdir '/app/vendor/shopware/platform/src/Administration/Resources/administration/node_modules/node-sass/.node-gyp'
	gyp ERR! System Linux 4.18.0-15-generic
	gyp ERR! command "/usr/bin/node" "/app/platform/src/Administration/Resources/administration/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
	gyp ERR! cwd /app/platform/src/Administration/Resources/administration/node_modules/node-sass
	gyp ERR! node -v v11.15.0
	gyp ERR! node-gyp -v v3.8.0
	gyp ERR! not ok 
	Build failed with error code: 1
	npm ERR! code ELIFECYCLE
	npm ERR! errno 1
	npm ERR! node-sass@4.12.0 postinstall: `node scripts/build.js`
	npm ERR! Exit status 1
	npm ERR! 
	npm ERR! Failed at the node-sass@4.12.0 postinstall script.
	npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
	
	npm ERR! A complete log of this run can be found in:
	npm ERR! /.npm/_logs/2019-05-25T21_25_41_813Z-debug.log
	
Execution aborted, a subcommand failed!

Kannst du mal das Script npm install script ergänzen mit --unsafe-perm ?

1 „Gefällt mir“

Ich habe das mal direkt mit dem npm Part probiert - und der lief dann scheinbar problemlos durch.

Also habe ich folgendes ausgeführt:

 npm config set unsafe-perm true

(und damit diese Einstellung in npm in der Docker Shell festgelegt).

 

Die erneut gestartete Installation (./psh.phar install)wurde damit scheinbar erfolgreich abgeschlossen.

Wenn ich jetzt im Browser auf der Linux Maschine die Seite abrufen möchte über (http://localhost:8000) erhalte ich allerdings die Meldung:

“The connection was reset”

 

Also irgendetwas haut da wirklich nicht hin.

Ich habe, nachdem ich verschiedene Kominationen auf dem dedizierten Rechner hier durchgespielt habe, und keine funktionierte,
stattdessen mal Ubuntu 18.04 in einer VM installiert. Auch hier wieder die selben Fehler…
Deshalb jetzt 3 einfache Fragen:

Welches System nutzt ihr (Virtual oder dediziert, Ubuntu oder anderes OS)?

 

Hat das überhaupt jemand mit Ubuntu 18 oder 19 zum Laufen bekommen, indem er sich an die Anleitung hielt (Docker Installation)?

Eine Step by Step Anleitung wäre sehr hilfreich,
am besten mit einem frisch aufgesetzten Ubuntu.
Ich würde sogar ein paar Euro dafür bezahlen.

 

Ubuntu 16.04 mit nginx und allen Abhängigkeiten läuft eigentlich problemlos. 

1 „Gefällt mir“

Deinem ersten Fehler entnehme ich, dass es ein Berechtigungsproblem ist:

Unable to save binary /app/platform/src/Administration/Resources/administration/node_modules/node-sass/vendor/linux-x64-67 : { Error: EACCES: permission denied, mkdir '/app/platform/src/Administration/Resources/administration/node_modules/node-sass/vendor'

Welchem User gehört der Ordner, indem die Platform liegt? Mit welchem Benutzer führst Du die Docker Befehle aus?

Viele Grüße

1 „Gefällt mir“

./psh.phar docker:ssh

@Jens_K schrieb:

Deinem ersten Fehler entnehme ich, dass es ein Berechtigungsproblem ist:

Unable to save binary /app/platform/src/Administration/Resources/administration/node_modules/node-sass/vendor/linux-x64-67 : { Error: EACCES: permission denied, mkdir ‚/app/platform/src/Administration/Resources/administration/node_modules/node-sass/vendor‘

Welchem User gehört der Ordner, indem die Platform liegt? Mit welchem Benutzer führst Du die Docker Befehle aus?

Viele Grüße

Ja, das war tatsächlich so. Die Berechtigung habe ich inzwischen angepasst. npm scheint da sehr sensibel zu sein. Damit kommt man zumindest bei der docker Installation bis zum Ende durch. Habe ich mit „chown -R $(whoami) development“ gelöst. Die Docker Installation läuft dann auch durch. Leider bekomme ich auf dem Gerät aber im Browser den Fehler „Connection Reset“. Soweit ich das jetzt verstanden habe, liegt es möglicherweise daran, dass der httpd Prozess im Docker Container läuft und gebunden ist an 127.0.0.1, statt an 0.0.0.0. Ich kenn mich mit Docker allerdings nicht wirklich aus, und habe keine Ahnung, wie ich das ändern soll…

-nachtrag-
Ich habe mich per

./psh.phar docker:ssh

 

in die Shell der Docker Umgebung eingeloggt. Wenn ich hier die Seite mit wget abrufen will, bekomme ich die Meldung „connetion refused“. Hier wird sie also abgewiesen, und nicht zurückgesetzt…

wget http://localhost:8000

Resolving localhost (localhost)... 127.0.0.1,::1

Connection to localhost (localhost)|127.0.0.1|:8000... failed: Connection refused.

Hier habe ich sicher auch ein Verständnis-Problem…

 


 

 

Auch mit der „händischen“ Installation ohne Docker bin ich einen Schritt weiter. Aber bei Ubuntu (18, 19) wird eine Kombination von nodejs und npm installiert, die nicht kompatibel ist. Ubuntu installiert über apt die Version 6.4.5 von npm. Das Shopware Installations-Script braucht wohl aber mindestens 6.5.x, weil im Script dieser Befehl vorkommt:

npm clean-install

Den gibt es erst ab 6.5.x. Das habe ich noch nicht richtig konfiguriert bekommen…

Hi,

deinstalliere mal NodeJS/NPM und versuche folgendes, dann sollte es passen für die Installation ohne Docker:

curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt install nodejs

Versionen nach Installation prüfen:
node -v
npm -v

VG

1 „Gefällt mir“

Hi alle zusammen,

ich habe es endlich geschafft!! :slight_smile:

Die Installation ohne Docker läuft jetzt bei mir auf einem Rechner im Netzwerk. Den Docker Part in einer virtuellen Umgebung habe ich noch nicht zum Laufen bekommen. Er ist mir gerade aber auch nicht wichtig.

Meine Hauptprobleme kurz zusammengefasst:

a) Berechtigungsprobleme
Unbedingt darauf achten, dass der Owner des Shopware Verzeichnisses (development) der normale User ist, und nicht root o.ä.
GIT legt die Dateien ggf. mit falschem User an.
Wenn das nicht hilft, auch die Dateirechte prüfen.

 

b) NPM
NPM muss unbedingt mindestens in Version 6.5.0 vorliegen. Sonst fehlt wie oben beschrieben ein Befehl.

Installieren wie von AIXPRO empfohlen.
Aber unbedingt darauf achten, dass die Pfade bei der Deinstallation von npm scheinbar nicht sauber aufgeräumt werden.
Ich hatte mich eine Ewigkeit damit abgemüht, und immer meinte npm -v zu mir, dass es noch die alte Version wäre.
Das Problem ist, das npm sich so verteilt installiert und man es teilweise von Hand löschen muss.
Nach der Neuinstallation von node musste ich danach außerdem noch die Shell neu starten (Befehl: bash).

 

c) Schlechte Internetverbindung
Es kommt vor, dass die Composer Installation bei einer schlechten Internet-Verbindung sehr sehr lange dauert oder sogar abbricht.
Leider schweigt sie sich auch darüber aus, ob sie noch am Leben ist. Ich kann nur sagen: Sie wird sich scheinbar schon melden, wenn es Probleme gibt.
Bis dahin einfach laufen lassen. Ggf. einfach in der Konsole mit df prüfen, ob sich auf der Festplatte etwas tut, o.ä.
Man kann den Punkt mit dem angezeigten Befehl übrigens auch von Hand starten und über den zusätzlichen Paramater -vvv um weitere Infos ergänzen.

 

d) Datenbank
Es werden insgesamt 3 Datenbanken benötigt. Es macht Sinn die gleich anzulegen, weil es extrem nervig ist, wenn das Installationsscript lange durchläuft, und man mehrfach von vorn anfangen muss, weil die Benutzerrechte in der Datenbank nicht stimmen…
Lösungen:
Gebt dem Datenbank-Benutzer entweder direkt volle Rechte (GRANT ALL PRIVILEGES ON *.* TO …). Alterantiv müsst ihr dem Benutzer Rechte für alle 3 Datenbanken geben:

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‘;

 

e) Anleitung
Ich habe gerade sehr viele Projekte die abzuschließen sind. Wenn bis dahin (Ende der Woche voraussichtlich) noch keine detaillierte Anleitung vorliegt, werde ich meine Anleitung aufarbeiten, und hier gern zur Verfügung stellen für Ubuntu 18.04.

Danke  Shyim, robjke, Jens_K und  AIXPRO für eure Unterstützung.

 

3 „Gefällt mir“

Eine Anleitung, mit der Du es geschaffst hast, würde mich auch interessieren.
Bei mir klappt es immer noch nicht (auch nicht mit den Hinweisen bzgl. Rechte, mein Benutzer ist der Owner des dev. Ordners)

Eine Ubuntu 18.04 Anleitung wäre echt toll. Ich scheitere seit heute morgen an Punkt 22/28.

Auf dem Notebook mit Windows läuft es allerdings gerade ohne Probleme durch.

 


Meine kurze Anleitung für das Problem (Ubuntu 18.04):

 

Rechte setzen:

sudo chown -R $(whoami) ~/.npm

sudo chown -R $(whoami) ~/.composer

sudo chown -R $(whoami) ~/_project_folder_

 

NPM aktualisieren (wenn nötig):

sudo npm install npm@latest -g

 

Starten (AKA benötigt man z.B. für Windows):

./psh.phar docker start  AKA docker-compose up --build -d

./psh.phar docker:ssh AKA docker exec -it <insert_id_here> bash</insert_id_here>

 

innerhalb des Containers dann:

./psh.phar install

 

Danach sollte auf localhost:8000 der Shop starten… wenn eine MySQL Auth.-Method Fehlermeldung kommt hilft die Container zu beenden. In der Docker-Compose das DB-Image von dem MySQL-Image auf das MariaDB-Image zu ändern und noch mal die Container neuzustarten und ein wieder install durchführen.

Dann sollte alles laufen und man kann sich unter localhost:8000/admin mit admin - shopware anmelden.

Bei mir läuft´s aber:

Die Links in der Storefront sehen so aus:

/development/public/http:/{$MEINE_IP_ADRESSE}/development/public/index.php/checkout/line-item/

Wie kann ich das ändern ?