php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 29-08-2009, 19:03
pbundschuh
 Registrierter Benutzer
Links : Onlinestatus : pbundschuh ist offline
Registriert seit: Feb 2006
Beiträge: 7
pbundschuh ist zur Zeit noch ein unbeschriebenes Blatt
Standard Shellscript via PHP ausführen und Ausgabe in Echtzeit

Hallo zusammen,

ich möchte für eine Webapplikation einen One-Click-Installer programmieren.
Der User soll ein Formular mit ein paar Daten (Username, Passwort, Systemname, etc.) befüllen und das Formular dann abschicken. Daraufhin wird mittels PHP ein Shell-Script generiert, welches die Befehle für die Installation der Webapplikation enthalten.

Bis dahin funktioniert schon alles.

Jetzt soll noch folgedes passieren:
Das Shellscript muss natürlich noch ausgeführt werden. Die Ausgabe des Shellscripts (dort werden Befehle wie wget, mkdir, tar, etc. ausgeführt) soll z.B. in einem <div> dargestellt werden; am besten in Echtzeit...; wie auf einer Konsole.

Wie kann ich sowas darstellen? Gib es da evtl. schon fertige Code-Schnipsel?

Root-Zugriff auf die Maschine habe ich, sodass Änderunge an der Systemkonfiguration kein Problem sind.

Hoffe auf ein paar Tipps... Vielen Dank!

Grüße,

Philipp
Mit Zitat antworten
  #2 (permalink)  
Alt 30-08-2009, 02:20
bobafett
 Registrierter Benutzer
Links : Onlinestatus : bobafett ist offline
Registriert seit: Aug 2009
Beiträge: 8
bobafett befindet sich auf einem aufstrebenden Ast
Standard

Hallo pbundschuh,

ich hatte vor einiger Zeit eine ähnliche Umsetzung und habe es wie folgt gemacht:

Sobald ich das Shellscript gestartet habe, hole ich mir von diesem die zugewiesene PID (ProcessID), und speichere diese zwecks späterer Verwendung in die Datenbank. Das Script selbst führt n Prozesse aus, in meinem Fall das herunterladen und konvertieren von Bildern. Jeder erfolgreich beendete Schritt wird samt einiger Daten in der Datenbank anhand der PID festgehalten. Den aktuellen Stand eines Importprozess hole ich mir nun mittels AJAX und einem PHP Script, und gebe diese Informationen auf der Webseite aus. Da bei mir ein Job meistens 5-15 Sekunden benötigt, wird mittels AJAX alle 8 Sekunden das PHP Script neu geladen, und ich bekomme somit immer den aktuellen Stand Angezeigt. Echtzeit ist das nicht, eine andere Möglichkeit wüsste ich allerdings jetzt auch nicht.

Ein kleiner Tipp zu angestoßenen Shellscripten (falls du dies nicht schon beachtet hast): Manchmal kann es passieren, dass angestoßene Shellscripte sich aufhängen und dadurch nicht beendet werden. Dafür lasse ich alle 30 Minuten einen Job laufen, welcher die Aufgabe hat alle eingetragenen und noch nicht fertigen Prozesse anhand der PIDs aus der Datenbank gegen zu prüfen. Dabei wird anhand der PID auf dem Server und der zu konvertierenden Bildmenge -anhand dessen kann man eine durchschnittliche Mindestlaufzeit vom Shellscript berechnen- geprüft ob der Prozess noch läuft. Wenn der Prozess überfällig ist, wird er abgeschossen und in der Datenbank entsprechend markiert. Das ganze lässt sich natürlich auf dein vorhaben entsprechend anpassen.



cheers

Geändert von bobafett (30-08-2009 um 02:24 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 30-08-2009, 16:15
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Mit dem so genannten Long Polling sendest du erstmal das Grundgerüst der Seite, hältst die Verbindung aber offen. Der Browser zeigt die Seite schonmal an, lässt aber das Lade-Icon weiter rotieren. Wenn dann Daten aus der Prozesspipe verfügbar werden, sendest du weitere script-Elemente mit einem Funktionsaufruf drin, die dann clientseitig ausgeführt werden und das div aktualisieren.

Long Polling funktioniert in vielen Browsern auch mit AJAX, aber leider nicht im IE: der rückt den responseText erst raus, wenn er den Chunk Footer findet.

Ich will dir damit erstmal nur einen kurzen Überblick geben, deswegen bin ich nicht weiter ins Detail gegangen.

Edit: ich hab noch ne recht gute und detaillierte Beschreibung gefunden. Dort wird das was ich meine als "Page Streaming" und das was im IE nicht funktioniert als "Service Streaming" bezeichnet.

Gruß,

Anja

Geändert von AmicaNoctis (30-08-2009 um 16:23 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
keine Shellscript ausgaben in php mit passthru Picard PHP Developer Forum 4 20-08-2006 21:40
PHP mit Shellscript starten Page01 PHP Developer Forum 2 06-01-2006 16:13
Echtzeit in PHP Harry2k5 Apps und PHP Script Gesuche 2 27-07-2005 16:08
Ausgabe nach bestimmter Anzahl ausführen Zocker PHP Developer Forum 2 27-04-2004 14:27
Shellscript von php aus starten kressevadder PHP Developer Forum 4 14-06-2003 10:13

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:35 Uhr.