stefankittel
Goto Top

WebShop direkt in PHP aufrufen ohne Webserver

Hallo,

ich würde gerne einen Webshop direkt in PHP aufrufen ohne den Webserver zu benutzen.

Es handelt sich um einen Magento (PHP) der auf einem LAMP mit nginx und PHP-FPM läuft.
Aktuell gibt es ein Problem, dass eine bestimmte URL zu einem Absturz von PHP führt.
Also kein Fehlermeldung im PHP-Error-Log, sondern nur den Hinweis, dass PHP abgestürzt wäre (sigterm).
Im Test- und Entwicklungssystem tritt dies natürlich nicht auf.

jetzt habe ich die Hoffnung, dass wenn ich PHP mit der URL aufrufe ich vieleicht ein paar Hinweise bekomme.

wenn ich nun php index.php im richtigen Verzeichniss mit dem richtigen Benutzer aufrufe, bekomme ich eine Magento-404-Seite.
Ist ja auch richtig, da ich den Hostnamen und die URL nicht übergeben habe.

Aber wie kann ich die URL oder URI übergeben?

Dies hier funktioniert nicht (404)
REQUEST_URI='http://www.firma.de/catalog/product/view/id/123456/category/123/' php -f index.php

Hat da mal bitte Jemand einen Tipp für mich?
Ich habe bei Google nichts passendes gefunden.

Danke

Stefan

Content-Key: 345315

Url: https://administrator.de/contentid/345315

Printed on: April 25, 2024 at 07:04 o'clock

Member: falscher-sperrstatus
falscher-sperrstatus Aug 03, 2017 at 14:08:03 (UTC)
Goto Top
Dann würde ich mal den Server anschauen und nicht das Skript, wenn es auf den Testservern ging. Abgesehen davon habe ich in 10+ Jahren PHP Development, Einrichtung usw usf zwar schon genug 500er durch inkompatible Konfigurationen (PHP5/7, fehlende Module, Rechte usw usf) gesehen, aber noch nie, dass php durch ein Skript komplett abgeschossen wurde.

So far: Problem am Server beheben, oder beheben lassen.

Viele Grüße,

Christian
Member: StefanKittel
StefanKittel Aug 03, 2017 at 14:15:07 (UTC)
Goto Top
Das hier steht im syslog

kernel: [1354592.291364] php5-fpm[1273]: segfault at e67db3e8 ip 00000000006e01ed sp 00007ffe30ac0630 error 4 in php5-fpm[400000+7c9000]
Und Zeitgleich habe ich ein "Connection reset by peer" im nginx Log

Sowohl mit PHP-FPM als auch als Modul.

Die Server wurden von einer Magento-Fachfirma installiert und werden von denen gemanaged.
Außer diesem Fehler, der nur bei bestimmten URLs auftritt, gibt es seit 3 Jahren keine nenneswerten Fehler.

Wir gehen zu 99% von einem Code-Fehler auf kombiniert mir "unglücklichen Umständen" die zu diesem Absturzt führen.

Deshalb wollte ich den Aufruf ja mal ohne Web-Server machen.
Nach dem alten Prinzip, Stück für Stück testen.

Also zurück zur Frage: Wir kann ich PHP in der Shell eine URL übergeben.
Der Webserver macht ja auch nichts anderes. Aber ich finde keine Beispiele wie die Parameter aussehen müssen.

Stefan
Member: StefanKittel
StefanKittel Aug 03, 2017 at 14:38:28 (UTC)
Goto Top
Der direkt Aufruf ohne nginx und fpm soll der Nachweis sein dass nicht daran liegt.
Oder auch der Nachweis dass es daran liegt.

Wenn ich php direkt aufrufen kann und er die Seite erstellt, habe ich einen definitive Aussage zur Ursache und kann einiges ausschliessen.

Stefan
Member: falscher-sperrstatus
falscher-sperrstatus Aug 03, 2017 at 15:09:02 (UTC)
Goto Top
Hallo Stefan,

das ist ein bisschen so, wie "ich will herausfinden, wie sich der Reifen bei 150km/h verhält", ohne ihn an ein Auto oder ein ähnliches Instrument zu hängen.

Schieb den Code auf einen anderen Server und teste es dort, anders wird das nicht ordentlich klappen.

VG
Member: StefanKittel
StefanKittel Aug 03, 2017 at 15:14:07 (UTC)
Goto Top
Hallo,

ja und nein.
Ich habe ein Auto wo bei 150 immer mal wieder ein Reifen abfällt und ich will wissen ob es an den Reifen oder Auto liegt.

Magento auf einem anderen server funktioniert ohne fehler -> server doof
Magento auf einem identisch konfigurierten server zeigt die gleichen fehler -> konfiguration doof
Magento mit den original Demo-Daten zeigt keine Fehler -> magento doof
Anderes Produktiv-Magento zeigt keine Fehler -> magento doof

Der Fehler tritt nur in dieser Serverkonfiguration mit dieser Magento-Installation und nur mit bestimmten URLs auf.
Member: falscher-sperrstatus
falscher-sperrstatus Aug 03, 2017 at 15:18:34 (UTC)
Goto Top
Naja, dann hast du schon die Antwort: Passe die Konfiguration an. Hier scheint das Problem zu liegen. Da reicht schliesslich schon ein fehlender Befehl in den jeweiligen Konfigurationen.
Member: em-pie
em-pie Aug 03, 2017 at 16:21:53 (UTC)
Goto Top
Moin,

Hmm... direkt kann ich dir vermutlich nicht helfen, aber hast du es mal mit einem (PHP)-Debugger versucht?

Ich muss gestehen, genutzt habe ich solch Debugger bisher nicht, da ich nur wenig mit PHP bislang gearbeitet habe, aber auf Anhieb sieht der NetBeans-Debugger ganz brauchbar aus: https://netbeans.org/kb/docs/php/debugging.html

Ich weiss aber, dass ein Teil unserer (webentwickelnden) Partner "irgeendwas" mit NetBeans fabrizieren, im Rahmen von Tests o.Ä.
Teils aber auch, wenn die mit Java aktiv sind...

Aber Grundsätzlich könnte die das Thema "Debugger" ja evtl. weiterhelfen, wenn es der NetBeans nicht unbedingt direkt tut...
Wenn man nach Magento-Debugger sucht, findet man u.A. folgende beiden Links:
https://www.templatemonster.com/help/de/magento-how-to-use-the-path-hint ...
https://www.webguys.de/magento-1/turchen-09-magento-debuggen-mit-firegen ...

Gruß
em-pie
Member: StefanKittel
StefanKittel Aug 03, 2017 at 16:23:16 (UTC)
Goto Top
Hallo,

danke für den Tipp, aber der Fehler tritt nicht auf wenn man einen Debugger benutzt.
Hatte ich nicht erwähnt.

Stefan
Member: stefaan
stefaan Aug 03, 2017 at 16:36:53 (UTC)
Goto Top
Servus,

ev. einmal den php-Prozess mit strace begutachten?
Google einmal nach "php-fpm strace".

Grüße, Stefan