Auf Windosw System Kommando an ein Programm (über Netzwerk?)

InFlame

Erfahrenes Mitglied
Hallo,

ich kann ein Programm mit Hilfe der Kommando Zeile Steuern:
c:programm.exe [wastuich]befehl

Jetzt möchte ich mit Hilfe von PHP ein (kleines) Interface erstellen.
Allerdings läuft der Webserver auf unserem (hoho) Server, das Programm allerdings bei mir aufm Rechner.
Ist es irgendwie möglich, das ganze übers Netzwerk laufen zu lassen?
Habe per Suchen gelesen, dass man z.B. die Rechte für C: dem Apache geben kann, indem man den Document Root auf C: 'stellt' (Oder geht das auch "ungefährlicher"?) Wenn ich jetzt ein Netzwerklaufwerk hätte und darin das Programm freigeschlatet ist, würde das funktionieren? Oder geht das vielleicht konfortabler mithilfe des Netzwerknamen oder der IP?
Dass ich Befehle wie exec, system o.ä. brauche, weiß ich mitlerweile ;)
Nur ist eben die Frage, ob ich auch vom Server auf das Programm zugreifen kann, oder ob ich auf meinem Rechner einen Apache installieren muss.

Schonmal vielen Dank für die Hilfe.

IF
 
Hallo,

der Apache Server braucht irgendwie Zugriff auf das Programm auf deinem Rechner. Das kann man auf unterschiedliche Arten realisieren.

Der "einfachste" Weg ist es, einfach ein Netzlaufwerk zu haben in dem das Programm liegt und auf das der Apache Zugriff hat. Eine andere Variante wäre, eine Art Zwischenservice auf deinem Rechner zu haben, der auf Anfragen von einem bestimmten Port entgegen nimmt und sie verarbeitet (klassischer Webservice halt) ... usw. :-)
 
Sir Robin hat gesagt.:
Der "einfachste" Weg ist es, einfach ein Netzlaufwerk zu haben in dem das Programm liegt und auf das der Apache Zugriff hat.
hmm... leider funktioniert es nicht.

Habe jetzt ein Netzwerklaufwerk verbunden mit dem Ordner der exe die ich brauche. Habe es somit versucht, in Apache einzubinden:
<Directory "H:/">
Options Indexes FollowSymLinks
</Directory>

gebe ich da jetzt statt H:/ C:/ ein, startet Apache. Aber so wie es oben steht leider nicht :(
Weiß jemand warum?
 
öhm, da hast du was falsch verstanden. Du musst einfach nur auf dem Rechner, auf dem der Apache hat, irgendwie dafür sorgen, dass er Zugriff auf das Netzlaufwerk hat. Dazu reicht es schon, das Netzlaufwerk irgendwo hin gemountet zu haben, und darauf Zugriffsrechte zu haben. An der Apache-Config musst du da nichts ändern.

Du legst ein Netzlaufwerk an, mountest das auf deinem Apacherechner, sorgst dafür das die Freigabe durch Apache benutzt werden kann (dazu müssen nur die Userrechte stimmen) und schon kannst du mit PHP darauf zugreifen (davon ausgehend das PHP als Modul drin ist ... wenn es als CGI drin ist, muss der CGI Prozess die entsprechenden Rechte haben). Dann reicht schon ein simpler Aufruft von:

PHP:
<?php

exec('/mounts/netzlaufwerk/programm.exe');

?>

Wenn natürlich das Apachesystem ein Linux ist, dann wirds nicht so viel mit *.exe - Dateien anfangen können ;)
 
Also, wie im Titel schon geschrieben, ist der Server ein Windows System. XP Prof um genau zu sein. Bei mir läuft ebenfalls XP... Somit is da ja nichts mit mounten, außer eben "Netzwerklaufwerk verbinden" ;)
Und da dachte ich halt, dass ich das Laufwerk für Apache "frei geben" muss... wenn nicht in der config von Apache: Wo dann?
nur mit exec('H:/...') komm ich ja nicht weit, da Apache H: ja nicht kennt.
:confused:
 
Zuletzt bearbeitet:
Apache muss H: auch nicht kennen, das System darunter muss es kennen, da es sich dabei um einen absoluten Pfad handelt. Es ist dabei eben nur wichtig, das Apache Rechte auf dieses Verzeichnis hat, wenn also Apache unter dem Benutzer "apache" läuft, muss eben dieser Benutzer auch Zugriff auf das Verzeichnis haben.

Wenn der Server natürlich als Admin läuft, dann ist das eh egal (das ist ja ohnehin zu vermuten wenn man XP Pro als Server einsetzt ;))
 
Danke für deine Hilfe, jetzt ist mir allerdings eingefallen, dass es so gar nicht funktionieren kann.... denn ich möchte, dass er an die bei mir gestartet exe ein kommando schickt... wenn ich das jetzt aufm Server eingebe, dann startet er logischerweise die exe...
Jemand eine Idee, wie ich das machen kann?
 
Hab jetzt mal auf meinem Rechner Apache installiert und es versucht. Netterweise funktioniert es sogar... werde es also damit belassen, dass bei mir der Apache mitläuft... was solls...
Außer es kennt noch jemand eine möglichkeit?
 
Zurück