naturdrogerienaturdrogerie MemberComments: 228 Received thanks: 33 Member since: August 2018

@Shyim‍ Erst mal vielen Dank für die super genialen Friends of Shopware Plugins! Die machen gute Laune. :-)

Leider bin ich für den Purify-CSS-Teil des Performance-Plugins wohl zu doof. Wen ich das Command aufrufe, erhalte ich folgende Meldung auf der Server-Konsole:

In Process.php line 293:
                                   
  Unable to launch a new process.  
                                   

frosh:purify:css [<shopId>]

Ich gebe gerne zu: Meine Kenntnisse in Sachen Linux-Konsole, Packagemanagern usw. ist eher so "ich lerne gerade so viel, wie ich für ein Projekt brauche". Also habe ich sicher hier irgendwas nicht korrekt gemacht.

Ausgangssituation:

  • Shopware 5.5.7
  • Timme Magaged vServer (anscheinend kein PurifyCSS installiert)
  • NodeJS war installiert, npm aber nicht(!?). Zumindest ergab npm -v nix.

Also über nvm nachinstalliert. Dann ließ sich purify-css installieren. Hat wohl auch so weit geklappt, dass ich zu der Ausgabe oben gekommen bin. (Davor kam der Fehler, dass purify-css installiert werden soll.)

Über Hinweise wäre ich dankbar.

Wenn es auf dem Hosting selbst nicht läuft, muss ich wahrscheinlich diesen Teil lokal zum Laufen bekommen oder welche anderen Optionen gibt es?

Answers

  • ShyimShyim MemberComments: 730 Received thanks: 301 Member since: May 2015

    Funktioniert denn der Befehl node -v ?

  • naturdrogerienaturdrogerie MemberComments: 228 Received thanks: 33 Member since: August 2018

    Leider ja. (NodeJS war in Version 8.x installiert. Durch mein oben beschriebenes Vorgehen ist jetzt 10.15.3 verfügbar.)

  • ShyimShyim MemberComments: 730 Received thanks: 301 Member since: May 2015

    Du könntest hier mal die arguments dumpen und das händisch ausführen

    https://github.com/FriendsOfShopware/FroshPerformance/blob/master/Components/PurifyCss.php#L98

  • naturdrogerienaturdrogerie MemberComments: 228 Received thanks: 33 Member since: August 2018

    @Shyim‍ OK. Das probiere ich mal. Danke.

  • ChaosChaos MemberComments: 52 Received thanks: 0 Member since: July 2011

    Du könntest hier mal die arguments dumpen und das händisch ausführen

    https://github.com/FriendsOfShopware/FroshPerformance/blob/master/Components/PurifyCss.php#L98

    Hallo Shyim wie meinst du das genau mit händisch ausführen?

    Ich stehe genau vor dem gleichen Problem: 

    
    [root@s01 htdocs]# sudo php bin/console frosh:purify:css
    array(11) {
      [0]=>
      string(9) "/bin/node"
      [1]=>
      string(14) "/bin/purifycss"
      [2]=>
      string(99) "/var/www/vhosts/xxxxxxxx.de/httpdocs/htdocs/web/cache/1557923673_b5a0abdaa85e99a3f2c6d975292fd707.css"
      [3]=>
      string(56) "/var/www/vhosts/xxxxxxxx.de/httpdocs/htdocs/themes/**/*.js"
      [4]=>
      string(57) "/var/www/vhosts/xxxxxxxx.de/httpdocs/htdocs/themes/**/*.tpl"
      [5]=>
      string(56) "/var/www/vhosts/xxxxxxxx.de/httpdocs/htdocs/custom/**/*.js"
      [6]=>
      string(57) "/var/www/vhosts/xxxxxxxx.de/httpdocs/htdocs/custom/**/*.tpl"
      [7]=>
      string(74) "/var/www/vhosts/xxxxxxxx.de/httpdocs/htdocs/engine/Shopware/Plugins/**/*.tpl"
      [8]=>
      string(73) "/var/www/vhosts/xxxxxxxx.de/httpdocs/htdocs/engine/Shopware/Plugins/**/*.js"
      [9]=>
      string(2) "-m"
      [10]=>
      string(2) "-o"
    }
    
    In Process.php line 293:
    
      Unable to launch a new process.
    
    
    frosh:purify:css [<shopId>]
    

    Kann es sein, dass mein Server die Methode proc_open nicht erlaubt welche benötigt wird um den Prozess zu starten?

  • NahtlosShopNahtlosShop MemberComments: 47 Received thanks: 6 Member since: May 2018

    Moin,

     

    du bist doch schon als root in der Console unterwegs und gibst dem Script ein sudo mit ?

     

     

  • ChaosChaos MemberComments: 52 Received thanks: 0 edited May 16 Member since: July 2011
     

    Moin,

     

    du bist doch schon als root in der Console unterwegs und gibst dem Script ein sudo mit ?

    Moin, genau das ist richtig. 

  • NahtlosShopNahtlosShop MemberComments: 47 Received thanks: 6 Member since: May 2018

    Ist falsch.

     

    Man sollte nicht als root in der Console werkeln. Denn die Console ist mächtig, sehr mächtig.

    Und als su, brauchst du dem Script kein sudo geben.

     

    Hast du überhaupt einen user angelegt ?

  • ChaosChaos MemberComments: 52 Received thanks: 0 Member since: July 2011

    Davon mal abgesehen, der Benutzer root wird ja nicht die Ursache für das Problem sein. Hast du einen lösungsorientierten Ansatz für das Problem?

  • NextMikeNextMike MemberComments: 2269 Received thanks: 360 Member since: December 2014

    der Benutzer root wird ja nicht die Ursache für das Problem sein

    getestet? 

  • ChaosChaos MemberComments: 52 Received thanks: 0 Member since: July 2011

    der Benutzer root wird ja nicht die Ursache für das Problem sein

    getestet? 

    Ja 

  • ShyimShyim MemberComments: 730 Received thanks: 301 Member since: May 2015

    Habt ihr mal in die php einstellungen der cli geschaut ob Prozesse ausgeführt werden dürfen?

  • ShyimShyim MemberComments: 730 Received thanks: 301 Member since: May 2015

    Ansonsten wäre es cool, wenn möglich und erwünscht, dass ihr mir Zugangsdaten via PN zusendet und ich mir das mal anschaue. 

  • ChaosChaos MemberComments: 52 Received thanks: 0 Member since: July 2011

    Habt ihr mal in die php einstellungen der cli geschaut ob Prozesse ausgeführt werden dürfen?

    Ich habe mir die Einstellungen angesehen und mit dem Webhoster Rücksprache gehalten, es ist per default nicht disabled und müsste somit funktionieren.

  • ChaosChaos MemberComments: 52 Received thanks: 0 edited May 20 Member since: July 2011
    In Process.php line 293:
    
      Unable to launch a new process.

    Mir ist aufgefallen, dass die Fehlermeldung aus einer Datei stammt die aus dem Viison DHL Adpater ist:

    ...\engine\Shopware\Plugins\Community\Backend\ViisonDHL\vendor\symfony\process\Process.php

    Irgendwie kommen sich die beiden Plugins ins Gehege. Zum Test habe ich den DHL Adpater deaktiviert, dann funktioniert das PurifyCSS problemlos.

    Die einsparungen sind bei mir jedoch sehr gering:

    [OK] Purified css from 1.28M to 1.23M

    Ich habe jetzt den Cache im Shop geleert und neu aufgewärmt, konnte aber bei Google Pagespeed keine signifikatnte Reduzierung der Ladezeit feststellen. Mir kommt es aber auch so vor, als wenn da noch etwas gehen müsste weil die ausgelieferte CSS Datei von 429KB vorher auf 433KB nachher gestiegen ist! Dabei nannte Google z.B. für die Startseite als Einsparpotential 333KB.

  • ShyimShyim MemberComments: 730 Received thanks: 301 Member since: May 2015

    Symfony Process ist schon im Standard von Shopware drin. Das ein Plugin mitbringt nur Inkompatibilität rein.

  • ShyimShyim MemberComments: 730 Received thanks: 301 Member since: May 2015

    Könntest du folge Zeile im Plugin https://github.com/FriendsOfShopware/FroshPerformance/blob/master/Components/PurifyCss.php#L98 zu dies ändern und prüfen ob es dann geht?

    $process = new Process(implode(' ', $arguments));

  • ChaosChaos MemberComments: 52 Received thanks: 0 edited May 22 Member since: July 2011

    Könntest du folge Zeile im Plugin https://github.com/FriendsOfShopware/FroshPerformance/blob/master/Components/PurifyCss.php#L98 zu dies ändern und prüfen ob es dann geht?

    $process = new Process(implode(' ', $arguments));

    Damit läuft es 1a, auch wenn der DHL Adpater parallel installiert ist. Keine Konflikte mehr!

    Kannst du mir noch einen Tipp geben, wie mehr Dateigröße eingespart werden kann? Ich hab das PurifyCSS so verstanden, dass nur noch der CSS Code zurück gegeben wird, der für die aktuell geladene Seite im HTML auch angefragt wird. Demnach müsste ich deutlich mehr einsparen können, als das Script mir ausgibt:

    [OK] Purified css from 1.30M to 1.24M

    Daneben wundere ich mich, dass scheinbar auch JS Dateien mit inkludiert werden. Wird hier das gleiche Prinzip angewendet wie bei den CSS Dateien? Das wäre sehr cool :)

Sign In or Register to comment.