PHP-Command-Ersatz auf FreeBSD....
MichaelR
- php
0 Tom0 MichaelR
Hallo,
um Notepad.exe mittels PHP auf einem Windows-Server aufzurufen nutze ich folgendes:
//start Notepad.exe minimized in the background:
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("notepad.exe "".$__FilePath.""", 1, false);
Allerdings weiß ich nicht (und hab' auch weder bei Google noch sonst wo brauchbare Infos dazu gefunden) wie ich das umsetzen muss, damit auf einem Server mit FreeBSD ebenfalls ein Texteditor gestaret wird???
Bin um jeden Rat dankbar!
Grüße,
Michael
Hello,
um Notepad.exe mittels PHP auf einem Windows-Server aufzurufen nutze ich folgendes:
//start Notepad.exe minimized in the background:
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("notepad.exe "".$__FilePath.""", 1, false);Allerdings weiß ich nicht (und hab' auch weder bei Google noch sonst wo brauchbare Infos dazu gefunden) wie ich das umsetzen muss, damit auf einem Server mit FreeBSD ebenfalls ein Texteditor gestaret wird???
Hat der FreeBSD-Server denn einen EXE-Loader? Das würde mich aber wundern.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi Tom,
//start Notepad.exe minimized in the background:
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("notepad.exe "".$__FilePath.""", 1, false);Allerdings weiß ich nicht (und hab' auch weder bei Google noch sonst wo brauchbare Infos dazu gefunden) wie ich das umsetzen muss, damit auf einem Server mit FreeBSD ebenfalls ein Texteditor gestaret wird???
Hat der FreeBSD-Server denn einen EXE-Loader? Das würde mich aber wundern.
Ja, das weiß ich auch nicht. Es muss ja nicht "Notepad.exe" sein (das wird's wahrscheinlich gar nicht für FreeBSD geben), sondern irgendein Texteditor...
Hab' ja geschrieben, es sollte ein Ersatz für obigen sein, egal wie der Aussicht, aber es wäre gut wenn ich per PHP einen Texteditor starten könnte...
Grüße,
Michael
hallo,
Hat der FreeBSD-Server denn einen EXE-Loader? Das würde mich aber wundern.
Ja, das weiß ich auch nicht. Es muss ja nicht "Notepad.exe" sein (das wird's wahrscheinlich gar nicht für FreeBSD geben), sondern irgendein Texteditor...
Es gibt in FreeBSD natürlich kein "Notepad.exe". Editoren allerdings gibts wie Sand am Meer. Sie können grundsätzlich über Shellbefehle aufgerufen werden. Der Konsolenbefehl für kate (einen relativ beliebten KDE-Editor) lautet zum Beispiel "kate %u".
Dein Problem besteht darin, einen solchen Konsolenbefehl ausführbar zu machen. Die Rechteverteilung dürfte die größte Hürde für dein Vorhaben sein. Wenn du unbedingt ein Programm starten lassen willst, wärs wahrscheinlich sinnvoller, das nicht mit PHP, sondern mit einem Shellscript, das als CGI-Programm läuft, zu probieren.
Zu fragen ist, wie sinnvoll das ist. Die Voraussetzung, daß jemand, der deine Seite aufruft, tatsächlich grade FreeBSD fährt, ist gering. Den X-Server wird er in der Regel bereits laufen haben, da es nur wenige Browser gibt, die nicht auf einer grafischen Oberfläche laufen. Aber schon die Entscheidung, daß dann als grafische Oberfläche KDE benutzt wird, ist fraglich, es kann auch GNOME sein oder etwas anderes. Und woher willst du wissen, welchen Editor dein Besucher überhaupt installiert hat?
aber es wäre gut wenn ich per PHP einen Texteditor starten könnte...
Und wenn ich deine Seite besuche und so etwas gar nicht will?
Grüße aus Berlin
Christoph S.
Hello,
aber es wäre gut wenn ich per PHP einen Texteditor starten könnte...
Und wenn ich deine Seite besuche und so etwas gar nicht will?
Was interessiert den Seitenbesucher an seinem Client, ob am Server ein Texteditor gestartet wird?
Ich verstehe Euch beide jetzt nicht mehr. Habe ich da was verpasst?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
hallo Tom,
Was interessiert den Seitenbesucher an seinem Client, ob am Server ein Texteditor gestartet wird?
Der im Ausgangsposting dargestellte "WSript"-Befehl gehört zum "Scripting Host" unter Windows. Es gibt ein paar Freeware-CMS-Konstrukte, die damit zu arbeiten versuchen - er kann auch mit Javascript aufgerufen werden, wenn die Sicherheitseinstellungen des IE das zulassen.
Ich glaube, es geht nicht darum, daß sich auf dem Server(-Rechner) ein Editor öffnet - du hättest jedesmal, wenn jemand auf die Seite klickert, ein neues Editor-Fenster und wüßtest gar nicht gleich, was dir da passiert. Es steht ja nix drin ...
Sondern es geht wohl mehr darum, daß tatsächlich beim Client ein Editor aufgeht. Wozu eigentlich?
Grüße aus Berlin
Christoph S.
Hello Christoph,
Was interessiert den Seitenbesucher an seinem Client, ob am Server ein Texteditor gestartet wird?
Der im Ausgangsposting dargestellte "WSript"-Befehl gehört zum "Scripting Host" unter Windows. Es gibt ein paar Freeware-CMS-Konstrukte, die damit zu arbeiten versuchen - er kann auch mit Javascript aufgerufen werden, wenn die Sicherheitseinstellungen des IE das zulassen.
Ich glaube, es geht nicht darum, daß sich auf dem Server(-Rechner) ein Editor öffnet - du hättest jedesmal, wenn jemand auf die Seite klickert, ein neues Editor-Fenster und wüßtest gar nicht gleich, was dir da passiert. Es steht ja nix drin ...
Sondern es geht wohl mehr darum, daß tatsächlich beim Client ein Editor aufgeht. Wozu eigentlich?
MIR ist der Unterschied zwischen Server-Masschine und Client-Maschine oder Host mit Server und Client schon klar, aber im OP war das nicht mehr auszumachen, worum es eigentlich geht und Du hast auch nicht wirklich zu einer Klarstellung beigetragen.
Also nochmals rückgefragt:
Soll der Textedidor später auf der Komsole der Servermaschine oder doch eher beim Seitenbesucher auf dem Client geöffnet werden? Bei zweiterem nützt ein PHP-Befehl gar nichts mehr, da über HTTP am Client nur der "Browser-Server" angesprochen wird und es uns ka llen ein Dorn im Auge ist, wenn der eigenständig andere Prozesse starten dürfte.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo,
[url:http://forum.de.selfhtml.org/?t=87430&m=519818]
[...]
Also nochmals rückgefragt:
Soll der Textedidor später auf der Komsole der Servermaschine oder doch eher beim Seitenbesucher auf dem Client geöffnet werden? Bei zweiterem nützt ein PHP-Befehl gar nichts mehr, da über HTTP am Client nur der "Browser-Server" angesprochen wird und es uns ka llen ein Dorn im Auge ist, wenn der eigenständig andere Prozesse starten dürfte.
??? Wenn Du mir sagen könntest ob mit "new COM('notepad.exe', ...)" das Notepad.exe am Server oder am Client gestartet wird, könnte ich Dir auch sagen was mir genügen würde ... Du siehst meine pure Verwirrung...
Grüße,
Micahel
Hallo ihr beiden,
danke erstmal für die Antworten.
Ich glaube ich hab ein paar Dinge beim Verständnis mit den Unterschieden von Servern mit Windows bzw. mit FreeBSD durcheinander gebracht - und das hat sich vermutlich auch auf mein Posting durchgeschlagen :|
Situation:
Ich schreibe ein umfangreiches PHP-Projekt für einen bestimmten abgrenzbaren Nutzerkreis (bzw. arbeite gerade an der 2. Version des Vorgängerprojektes).
Das Projekt läuft bei mir während der Entwicklung auf einem lokalen Server mit WindowsME/PHP/etc.
Wenn die Umbauarbeiten fertig sind, wird das Projekt auf einem Server mit FreeBSD/PHP/etc. laufen. Das war bereits in den letzten 1,5 Jahren so und das wird sich auch nicht ändern.
Es gibt eine aufrufbare Funktion in dem Projekt, die bestimmte Benutzerdaten generiert und diese sollen dann in einem Texteditor ausgegeben werden (ich könnte zwar auch die Daten einfach an den Browser schicken, das will ich aber aus einigen Gründen nicht).
Auf meinem Windows-Server läuft das so:
1. Daten in temporäre Text-Datei speichern.
2. über den COM-Befehl Notepad.exe öffnen und die temp. Datei laden lassen.
3. Nutzer sieht Notepad.exe mit geladener Datei
[4. weitere Nutzeraktonen mit Notepad ...]
Auf dem FreeBSD-Server sollte es so ähnlich laufen, wäre zumindest gut, wenn's ginge.
Außerdem, kann ich davon ausgehen, dass die Mehrzahl der Nutzer mit einem Client in Form von Windows arbeitet; seltener dann Macs.
Das Problem nochmal: auf meinem Entwicklungs-Server kann ich via COM Notepad.exe starten; der COM-Befehl funktioniert aber auf FreeBSD (lt. Doku von PHP) nicht ...
Nachtrag: die Nutzung von COM ist neu für mich und daher bin ich da noch nicht so fit :) - aber der COM-Befehl stellt nach meinem bisherigen Verständnis doch eine Verbindung zum Client her und startet auf dem Client das Programm (hier: Notepad); oder??
Viele Grüße, Danke,
Michael