exe als serverscript?

wolf

Lieutenant
Registriert
Nov. 2002
Beiträge
675
also ich wusste jetzt nicht so richtig was ich in den betreff schreiben sollte, aber frage wollte ich folgendes:
kann ich bei meinem heimserver unter win2000 mit apache auch win32 consolen-apps als scripte laufen lassen?
der grund ist einfach, dass ich mich ein bisschen in c++ eingearbeitet hab und keine lust hab, mich komplett auf perl oder vbscript umzuschulen??

ich hab mir gedacht, dass das doch bei perl so funkt, dass ein benutzer remote das script ausführt und die ausgaben des scripts auf das standard out werden doch dann an den client übertragen, oder??
wenn das so wäre dann könnte ich doch mit einer visual c++-consolen-anwendung auch dasselbe machen wie mit dem perl-script.
gibts ne möglichkeit, exe-dateien unter apache als scripte (oder server-sided-apps???) laufen zu lassen???
 
doch, es geht, aber nur unter iis, und dann kommt die meldung dass das cgi einen fehler hat und keinen kmpletten http-header ausgibt!!
unter der fehlermeldung steht dann das was ich mit print oder cout<< (iostream.h!!!!) habe ausgeben lassen.

gibts da nicht so einen befehl, der automatisch einen http-header hinzufügt??
 
Original erstellt von wolf
doch, es geht, aber nur unter iis, und dann kommt die meldung dass das cgi einen fehler hat und keinen kmpletten http-header ausgibt!!
unter der fehlermeldung steht dann das was ich mit print oder cout<< (iostream.h!!!!) habe ausgeben lassen.

gibts da nicht so einen befehl, der automatisch einen http-header hinzufügt??

yo, ich meinte apache..
da ich kein c++ profi bin, wüsste ich nicht wie man da einen header erzeugen kann
 
apache ist ein http-server-programm!!
 
ich hab das rätsel gelöst!!!

Code:
// server_sided_test1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream.h>


int main()
{
	cout<< "Content-type: text/html\r\n\r\n";
	cout<< "<html><head><title>testpage</title></head><body><hr><h1>geschafft</h1><hr></body></html>";

	return 0;
}

die zeile:
cout<< "Content-type: text/html\r\n\r\n";

fügt der ausgabe den http-header an, das war alles was gefehlt hat!!!!!
 
das is echt cool, und wie machst du es, dass kein datei download beim öffnen der datei startet ?
 
bei apache kannst du in den cgi-einstellungen die endungen für die scripts angeben, die werden dann eben ausgeführt anstatt gesendet zu werden!!!
Code:
AddHandler cgi-script .cgi .pl .exe
 
mh cool, das unterstützt doch aber kein anbieter der welt oder ? wäre doch nur was für sich lokal..oder?
 
jip, nur für deinen eigenen server!!!(glaub ich zumidest, weil das doch ziemlich gefährlich für den anbieter sein kann, eine exe mit vollen rechten laufen zu lassen!!
zumal die warscheinlich eh linux verwenden!!
 
camelus schrieb:
mh cool, das unterstützt doch aber kein anbieter der welt oder ? wäre doch nur was für sich lokal..oder?
Offiziell nicht, habe aber bereits festgestellt das es bei einigen namhaften Providern doch geht.
Am besten mit nem gcc compilieren und dein ausfuehrbares file mit der endung .cgi versehen.
:wq
 
:p
lustig meinen alten threat nochmal hier oben zu sehen!
 
Yo, hoi.

Für den Apache gilt zu beachten, dass du zwei Header mitsenden musst: Status und Content-Type.

Den Content-Type hast du ja schon korrekt gesetzt, der Status entspreicht der Response-Zeile ohne die HTTP-Version, also im Normalfall:
Code:
Status: 200 OK
Content-Type: text/plain

Hello, World!

Du kannst übrigens auch einzelne Dateien als CGI-"Scripts" eintragen und andere z.B. zum DL anbieten. Dazu musst du in der .htaccess die Programme, die als CGI ausgeführt werden sollen wie folgt kennzeichnen:
Code:
<Files "meine_cgi-win.exe">
ForceType application/x-httpd-cgi
</Files>
 
Zuletzt bearbeitet:
Zurück
Oben