EXE-Datei ausführen

Alles, was den Apache betrifft, kann hier besprochen werden.

EXE-Datei ausführen

Postby dimpfelmooser » 28. March 2007 21:43

Hallo zusammen!

Wie bringe ich Apache dazu eine EXE-Datei auszuführen bzw. was muss in die httpd.conf?

Ich habe mir ein kleines C-Programm geschrieben, das einfach mal eine HTML-Seite ausgibt (incl. Content-type ....). Diese Datei habe ich nun im cgi-bin/ Verzeichnis meines Webservers abgelegt.
Das Problem ist nun offenbar dass Apache versucht diese Datei zu interpretieren anstatt diese auszuführen ...
--> IE sagt Fehler 500 - Internal Server Error, Firefox will die Datei "downloaden"

Ich bin im Netz auf die Direktiven "AddType" und "Action" gestossen - das brachte mich aber auch nicht weiter.

Meine momentane Test-/Entwicklungsumgebung ist Windows, sodass Fehlerquellen wie "fehlende Rechte" etc. hier eigentlich nicht existieren.

DANKE

Gruß
Dimpfelmooser
dimpfelmooser
 
Posts: 4
Joined: 28. March 2007 21:31

Postby DJ DHG » 28. March 2007 22:29

Moin Moin!

Für sowas kannst du auch eine Scriptsprache benutzen.

Beipsielsweise PHP

http://de2.php.net/manual/de/function.exec.php

mfg DJ DHG
User avatar
DJ DHG
AF Moderator
 
Posts: 2455
Joined: 27. December 2002 13:50
Location: Kiel

Postby Wiedmann » 28. March 2007 22:57

Wie bringe ich Apache dazu eine EXE-Datei auszuführen

Das kann der eigentlich automatisch. (Die Datei liegt doch im cgi-bin?)

Fehler 500

Was steht im "error.log"?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

error.log

Postby dimpfelmooser » 29. March 2007 10:53

Hallo - DANKE für eure Antworten


Im error.log steht folgendes:
    malformed header from script. Bad header=Content-type text/html: output.exe

Dementsprechend hab ich mal meine exe-Datei so umgebaut, dass diese z.B. folgendes ausgibt:

Code: Select all
Content-type application/binary
Content-Length: 96

<html><head><title>output.exe</title><body><p>ausgabe des programms output.exe</p></body></html>


Nun krieg ich folgende Fehlermeldung:
    malformed header from script. Bad header=Content-type application/binar: output.exe


Ich vermute mal mein exe-Programm ist schuld - nicht Apache ...
aber was muss man denn ausgeben, damit die Apache die exe-Datei auf dem Server ausführt?


DANKE

P.S.
Das man das auch mit Skriptsprachen (z.B. PHP) lösen kann ist mir schon klar ... aber ich will hald eine exe-Datei ;-)
    dimpfelmooser
     
    Posts: 4
    Joined: 28. March 2007 21:31

    Postby Wiedmann » 29. March 2007 12:53

    Code: Select all
    Content-type application/binary

    a) fehlt hier ein Doppelpunkt
    b) gibt es auch diesen Mime-Type so oder so nicht.
    c) und da das CGI ja HTML ausgeben soll, nimmt man den dazugehörigen Mime-Type.
    Wiedmann
    AF Moderator
     
    Posts: 17106
    Joined: 01. February 2004 12:38
    Location: Stuttgart / Germany

    exe-Datei

    Postby dimpfelmooser » 29. March 2007 13:48

    Hallo!

    Ohje da hat tatsächlich der Doppelpunkt gefehlt. Also hab ich das Programm abgeändert ...
      Content-type: text/html


    Nun wirft Apache zumindes keine Fehler mehr ... dennoch wird mir die Datei nur zum Download angeboten und nicht auf dem Server ausgeführt ...

    Meine http.conf sieht so aus:

    Code: Select all
    <IfModule alias_module>
        ScriptAlias /cgi-bin/ "C:/Programme/Apache Software Foundation/Apache2.2/cgi-bin/"

    </IfModule>

    <Directory "C:/Programme/Apache Software Foundation/Apache2.2/cgi-bin">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>

    DefaultType text/plain

    <IfModule mime_module>
        TypesConfig conf/mime.types

        AddType application/x-compress .Z
        AddType application/x-gzip .gz .tgz
       
       AddType application/x-httpd-php .php   

        AddHandler cgi-script .cgi .pl .exe .bat
    </IfModule>


    DANKE an ALLE die mir hier weiter helfen können!

    Gruß
    dimpfelmooser
     
    Posts: 4
    Joined: 28. March 2007 21:31

    Postby Wiedmann » 29. March 2007 14:43

    dennoch wird mir die Datei nur zum Download angeboten und nicht auf dem Server ausgeführt

    Sicher das die nicht ausgeführt wird? Schau dir mal das "Heruntergeladene" im Editor an.

    Meine http.conf sieht so aus:

    Wie gesagt. Wenn die Datei im cgi-bin liegt, muss man selbst nichts weiter an der Standardkonfig vom Apache ändern.

    Ansonsten hier mal eine auf jeden Fall funktionierende Version ("testcgi.cpp"):
    Code: Select all
    #include <stdio.h>

    int main(int argc, char* argv[])
    {
       printf("Content-Type: text/html\n\n");
       printf("<html><head><title>testcgi.exe</title><body><p>ausgabe des programms testcgi.exe</p></body></html>");
       
       return 0;
    }
    Wiedmann
    AF Moderator
     
    Posts: 17106
    Joined: 01. February 2004 12:38
    Location: Stuttgart / Germany

    DANKE

    Postby dimpfelmooser » 29. March 2007 18:35

    VIELEN DANK - Wiedmann

    Jetzt funktionierts.
    Hatte nach der Zeile Content-type keine 2 Zeilenumbrüche ...


    Gruß
    Dimpfelmooser
    dimpfelmooser
     
    Posts: 4
    Joined: 28. March 2007 21:31


    Return to Apache

    Who is online

    Users browsing this forum: No registered users and 4 guests