Problem mit cgi-bin Verzeichnis

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem mit cgi-bin Verzeichnis

    Hallo,

    habe ein iBook mit Tiger installiert, welches ich als lokalen Server nutzen möchte.

    Um Webseiten zu testen benutze ich den Rechner als Entwicklungsumgebung um z.B. per Vhosts Seiten lokal zu testen. Hierfür benötige ich auch CGI.

    Ich habe mir in meinem Home Verzeichnis ein TestVerzeichnis für meine Webseiten anegelegt. In diesem habe ich ein cgi-bin Verzeichnis angelegt.

    in der httpd.conf habe ich folgende Einträge vorgenommen:

    Folgende Module sind geladen:


    LoadModule cgi_module libexec/httpd/mod_cgi.so
    AddModule mod_cgi.cFolgende Einträge sind gemacht:



    Options Indexes FollowSymLinks MultiViews ExecCGI +Includes

    ScriptAlias /cgi-bin/ "/Library/WebServer/CGI-Executables/"

    <Directory "/Library/WebServer/CGI-Executables">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>





    # To use CGI scripts:
    #
    AddHandler cgi-script .cgi .pl

    #
    # To use server-parsed HTML files
    #
    AddType text/html .shtml
    AddHandler server-parsed .shtml



    Damit müßte doch alles abgedeckt sein, oder?

    Trotzdem bekommen ich immer die Fehlermeldung:



    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.

    oder aber



    Not Found
    The requested URL /cgi-bin/ezmailer.pl was not found on this server.


    Auch bei der Rechtevergabe habe ich schon alles probiert, also die Dateien jeweils 755 und auch 777 gesetzt, leider ohne Erfolg.

    Per Terminaleingabe funzen die Skripte im übrigen. Und auch auf meinem Webspace funzen die Sachen ohne Probleme.

    Gehören tun die Skripte meinem Hauptuser auf dem Mac.

    Irgendwelche Ideen?
  • Erstmal... steht eventuell mehr in der /var/log/httpd/error_log ?
    Dann könntest Du auch mal ein "apachectl configtest" im Terminal absetzen um zu gucken ob in der httpd.conf eventuell doch etwas schiefgegangen ist.
    if (!exit(-1)) fprintf(stderr, "exit call failed. Program will continue\n");
  • RE: Problem mit cgi-bin Verzeichnis

    Mit dieser Einstellung
    --------------------------------------------------------------------------
    ScriptAlias /cgi-bin/ "/Library/WebServer/CGI-Executables/"

    <Directory "/Library/WebServer/CGI-Executables">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>
    --------------------------------------------------------------------------
    werden Skripte, die via
    /cgi-bin/
    aufgerufen werden, auf "/Library/WebServer/CGI-Executables/" umgelenkt.

    Also MÜSSEN die ausführbaren Elemente in:
    /Library/WebServer/CGI-Executables/
    abgelegt sein damit sie gefunden werden können.

    Das mit dem chmod +755 weisst Du ja schon.


    Gruss,

    Alain
  • Also MÜSSEN die ausführbaren Elemente in:
    /Library/WebServer/CGI-Executables/
    abgelegt sein damit sie gefunden werden können.



    Mittlerweile liegen diese in dem Verzeichnis /Library/WebServer/CGI-Executables/.
    Ausgeführt werden Sie aber trotzdem nicht.

    Und wie kann ich den Apache so konfigurieren, das die cgi`s direkt im cgi-bin Vrezeichnis ausgeführt werden?


    Danke für die Hilfe.

    Bossy
  • Original von bossy22
    Und wie kann ich den Apache so konfigurieren, das die cgi`s direkt im cgi-bin Vrezeichnis ausgeführt werden?

    Das sollten sie ja. Hast Du mal ins error_log geguckt?
    if (!exit(-1)) fprintf(stderr, "exit call failed. Program will continue\n");
  • http://meinServer.de/cgi-bin/bits

    Aus verschiedenen Gründen ist es wohl besser, wenn die ausführbaren Elemente im dafür vorgesehenen Ordner sind. Nichtsdestotrotz, alles dazu findest Du via Terminal:

    Quellcode

    1. man apachectl
    und natürlich auch hier: httpd.apache.org/

    Da es jetzt noch nicht funktioniert, wie sieht es denn nun mit dem ERROR log aus?


    Ich habe ein funktionierendes, wenn auch sinnloses Beispiel auf meinem Compi, das ich schnell beschreiben kann:
    Vielleicht nützt Dir das Beispiel ja etwas.

    1.

    Das folgende Shell-Skript ist im Verzeichnis
    "/Library/WebServer/CGI-Executables/" unter dem Namen "bits" abgelegt und einstmals mit "chmod 755 bits" ausführbar gemacht worden. "/Library/WebServer/CGI-Executables/bits" wiederum ruft ein Kommandozeilen-Tool (abgelegt unter "/Users/alain/bin/bits") mit den Argumenten 1,-1, 255 und 256 auf. Der Output des Kommandozeilen-Tool's sind die übergebenen Werte in binärer Form.

    Shell-Script

    1. #!/bin/sh
    2. set -f
    3. echo Content-type: text/plain
    4. echo
    5. /Users/rKey/bin/bits 1 -1 255 256

    2.

    In der "/private/etc/httpd/httpd.conf" sind diese cgi-Einträge freigeschaltet":

    LoadModule cgi_module libexec/httpd/mod_cgi.so
    AddModule mod_cgi.c


    Dann hier dieser Abschnitt, der auch gerade Deine Frage beantwortet, wie Du Deinen eigenen cgi Ordner benutzen kannst :) vermutlich müssen aber dennoch spezielle Zugriffsrechte des Ordner's für die Gruppe "www" gesetzt werden, damit das wirklich dann auch funktioniert?.

    #
    # ScriptAlias: This controls which directories contain server scripts.
    # ScriptAliases are essentially the same as Aliases, except that
    # documents in the realname directory are treated as applications and
    # run by the server when requested rather than as documents sent to the client.
    # The same rules about trailing "/" apply to ScriptAlias directives as to
    # Alias.
    #
    ScriptAlias /cgi-bin/ "/Library/WebServer/CGI-Executables/"

    #
    # "/Library/WebServer/CGI-Executables" should be changed to whatever your ScriptAliased
    # CGI directory exists, if you have that configured.
    #
    <Directory "/Library/WebServer/CGI-Executables">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>

    </IfModule>
    # End of aliases.

    4. ähem, und das braucht es nicht wirklich um cgi-bin zu aktivieren und ist bei mir auch nicht freigeschaltet.

    # If you want to use server side includes, or CGI outside
    # ScriptAliased directories, uncomment the following lines.
    #
    # To use CGI scripts:
    #
    #AddHandler cgi-script .cgi
    ---


    5.
    Mit diesen Einstellungen kann ich das shell-skript zB. mit "http://HOSTNAME/cgi-bin/bits" ausführen.

    Viel Spass noch