Executable uitvoeren op server via php

Status
Niet open voor verdere reacties.

radicalgamer

Gebruiker
Lid geworden
27 feb 2010
Berichten
595
Beste helpmij-er,

Ik werk momenteel aan een website, ook heb ik een programma (run.exe) wat een aantal aanpassingen maakt aan de php, waaronder het terugzetten van de orginele php bestanden zoals een soort back-up.
Nou wil ik dat bestand (run.exe) vanaf de website laten starten, en ja, server sided dus.
Voor zover, heb ik de volgende code:
PHP:
<?php 
echo 'Deze code werd uitgevoerd (1)';
exec("start C:\\xampp\\htdocs\\server\\serversession\\run.exe");


echo 'deze code werd ook uitgevoerd...(2)';
?>
De twee echo's heb ik erin om te weten of er iets mis gaat maar ook zonder gebeurt hetvolgende:
De pagina laad, zonder errors, run.exe word op de server gestart.
Staat ook in de processen-lijst, maar start niet...
Nou enkele seconden geeft de server Windows een melding dat run.exe gecrashed is en is beëindigd en of ik een rapport wil starten.
Na veel Googlen heb ik het idee dat het programma door CGI word geladen, wat niet de bedoeling is, het programma moet enkel worden gestart en zal dan zelf alles regelen en zichzelf beëindigen waarna een php pagina word teruggezet die bevestigd dat het werkte.
Dat dit via php ook kan weet ik, maar run.exe moet ook een aantal dingen uitvoeren op een server voor een programma van mij, dus php alleen is helaas geen optie...

Kortom: is er een stukje php waarmee op de server run.exe word gestart, en alleen gestart zonder CGI laden of dergelijke dingen?
run.exe is even een snel gemaakt test programma gemaakt in Gamemaker:o...
De echte word ook in Gamemaker gemaakt, en ja, dat is niet perfect voor een server programma. Dat weet ik, de code word constant (30 keer per seconde) herladen voordat deze doet wat de client wou.
Maar aangezien de server verbinding legt met andere Gamemaker servers van clients waarmee andere clients verbinden, hoeft de server (run.exe) gemmideld maar zo'n 20 verbindingen, mischien komen er ooit meer verbindingen maar dan kan ik een tweede server starten.
En voordat het toch gevraagt word, ja, de gamemaker run.exe maakt ook serials voor de software die ermee verbindt, die word via een alghoritme gemaakt wat gecodeerd is in GML (Gamemaker Language).
(Koppig :p)

Dus, ik zit nu weer een heleboel te typen...
Héél kort:
run.exe : moet worden gestart vanaf php pagina, niet laden in CGI of dergelijke, is stand-alone.
test.php : de php pagina.

Zoals altijd, weer hopeloos ingewikkeld uitgelegt... Hopeloos moeilijk en hopeloze server maar tot zover werkt alles, behalve dus het uitvoeren vanaf de php...

RadicalGamer
 
Laatst bewerkt:
Het makkelijkste is op de server het volgende batch scriptje laten lopen:
:start
run.cmd
del run.cmd
ping localhost -n 2
goto start

Het loopt dus de hele tijd, iedere keer probeert het run.cmd uit te voeren en te deleten. De ping localhost is om even een vertraging tussen in de loop te zetten (batch kent geen pause of sleep commando), anders krijg je wel erg veel leesoperaties op de schijf.

Dan de php code (php script moet in dezelfde map staan, of je past de code even aan):
$fid = fopen("run.cmd", "w");
fwrite($fid, "start test.exe");
fclose($fid);

Dit zou binnen 1 à 2 seconden na het openen van de php pagina test.exe moeten starten.

Succes :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan