CGI/Perl und Co

Dieses Thema im Forum "Hardware" wurde erstellt von knoxi, 2. Januar 2003.

  1. knoxi

    knoxi New Member

    Hallo

    Kann mir jemand erklären wie man mit Jaguar Perl-scripte ausführt bzw.
    ist " /Library/WebServer/CGI-Executables" wirklich das CGI-Verzeichnis.
    Wenn ich einen Perlsource aus diesem Ordner ausführen will, bekomm ich leider
    immer ein "not found", egal wie ich den Pfad zum Server angebe.
    Bei Linux gebe ich ja auch nicht den gesamten Pfad an sondern localhost/cgi-.../;
    irgenwie check ich´s nicht ganz.

    please help, knoxi
     
  2. hakru

    hakru New Member

    >...ist " /Library/WebServer/CGI-Executables" wirklich das CGI-Verzeichnis.<

    Ja, ...zumindest, wenn Du den default-Wert in /etc/httpd/httpd.conf nicht geändert hast.
    Für lokales Testen kannst Du z.B. mit dem URL http://localhost/cgi-bin/deinScript.cgi die Datei "deinScript.cgi" ausführen lassen. Natürlich muss die Datei auch "ausführbar" sein (chmod ugo+x ...) ...

    hakru
     
  3. knoxi

    knoxi New Member

    <<wenn Du den default-Wert in /etc/httpd/httpd.conf nicht geändert hast.>>

    Bei mir gibt es kein httpd-Verzeichniss geschweige den ein httpd.conf !!!!!!!, bist du dir sicher das es beim mac auch so heist??
    Würde vielleicht auch erklären warum sich GIMP & Co nicht installieren läßt.

    <<Für lokales Testen kannst Du z.B. mit dem URL http://localhost/cgi-bin/deinScript.cgi die Datei "deinScript.cgi" ausführen lassen. Natürlich muss die Datei auch "ausführbar" sein (chmod ugo+x ...) >>

    Das ist selbstverständlich klar allerdings habe ich erwartet das es eine normalen "cgi-bin" Ordner wie bei linux gibt.

    danke erstmals
     
  4. hakru

    hakru New Member

    s bei der Apache-Installation auf MacOSX nicht. Stattdessen wird der Ordner "/Library/Webserver/CGI-Excecutables" in der "httpd.conf" per "ScriptAlias"-Directive zum Verzeichnis "cgi-bin" erklärt ...

    /etc/httpd/httpd.conf solltest Du auch haben - such nochmal danach im Terminal oder (als Admin-User) im Finder:
    Menü -> "Gehe zu" -> "Gehe zum Ordner" -> und im Dialogfenster dann den Pfad "/etc/httpd/" (ohne "") eingeben ...

    Wenn's noch nicht klappt, melde Dich einfach nochmal ...

    hakru
     
  5. knoxi

    knoxi New Member

    sehr gut, danke

    habe den httpd-Ordner leider nur über Befehl+f gesucht.

    knoxi
     
  6. hannibal

    hannibal New Member

    hallo,

    ich hab ähnliche Probleme. Ich kann zwar den cgi-Ordner ansteuern, aber wenn ich ein perl-Script ausführen lassen will bekomme ich immer eine "no permission" Fehlermeldung.
    Kann ich als Admin-User keine cgi's ausführen.
    Das glaub ich nicht.

    Grüße
     
  7. Achmed

    Achmed New Member

    Die scripte führst nicht der admin aus sondern der server. (Und der hat keine Adminrechte.)
    Also Benutzerrechte richtig setzen und bei den scipten den Pfad zu Perl richtig eintragen.
     
  8. hannibal

    hannibal New Member

    sorry, aber wo soll ich den die Benutzerrechte setzen, wenn ich ein pl durch den Server ausfürhren lassen will?
     
  9. hakru

    hakru New Member

    mit chmod (lies man chmod); es geht darum, das skript ausführbar zu machen - z.B.

    chmod ugo+x testfile.cgi

    würde den "testfile.cgi" für user (u), group(g) und others(o) ausführbar(x) machen ...

    hakru
     
  10. hannibal

    hannibal New Member

    du meinst, ich muß in jedes pl eine Zeile mit chmod oä. reinschreiben, damit sie ausführbar wird?
    Ich versuche gerade mit self-htm etwas zu lernen, in den Beispielen steht da aber nix davon und ich bekomme immer diesen vom apache:
    "Forbidden
    You don't have permission to access /cgi-bin/comments.pl on this server."

    Wenn ich aber Deine Zeile dazuschreibe, dann bekomme ich einen Syntaxfehler.
     
  11. hakru

    hakru New Member

    Die Ausführbarkeit wird nicht im cgi-Skript festgelegt, sondern via Unix-Befehl im Terminal. Beispiel: Dein Skript "test.cgi" liegt im Ordner "/Library/WebServer/CGI-Executables/" und soll ausführbar werden ...

    -----------------------------------------------------------
    In ein Terminalfenster den Befehl eingeben:

    chmod ugo+x /Library/WebServer/CGI-Executables/test.cgi

    ... das war's dann schon.

    hakru
     
  12. hannibal

    hannibal New Member

    sorry, aber darum geht es mir gar nicht.
    Es geht ja darum bei cgi, die Scripte vom html-Dokument aus aufzurufen.
    Und da wundere ich mich, das das nicht geht.
     
  13. hakru

    hakru New Member

    vielleicht geht es doch darum? Wenn Dein Skript "test.cgi" korrekt arbeitet, sollte es sich im Browser mit dem URL
    http://localhost/cgi-bin/test.cgi
    aufrufen lassen ... klappt das? Natürlich muss personal websharing laufen ...
    Wenn es zu Fehlermeldungen kommt, liegt's sehr wahrscheinlich entweder an der besprochenen Ausführbarkeit, oder an Eigentums-Rechten. Wie sehen denn die Rechte aus, wenn Du in das Verzeichnis /Library/Webserver/CGI-Executables navigierst und mit dem Befehl "ll" die File-Rechte anzeigen lässt?

    hakru
     
  14. hannibal

    hannibal New Member

    das script ist ok und mit bbedit zB ausfürhbar.
    der Pfad stimmt.
    Die Rechte von cgi-Executables (library/webserver?) sind: System
    die Rechte von test.pl in dem Orderner sind meine Userrechte.

    Wenn ich diese Fehlermeldung bekomme, dann bedeutet das, ich darf auf den Ordner nicht zugreifen.
    Das dieser Ordner Systemrechte hat ist ja logisch, weil er ja kein Userordner ist.
    Aber wo soll ich denn meine pl's sonst reinlelgen oder kann man nur als root einen Server betreigen.
    Das kanns ja nicht sein.
     
  15. hakru

    hakru New Member

    bei mir siehts im Verzeichnis /Library/Webserver so aus:
    ----------------------------------------------------------
    ...
    drwxrwxr-x 5 root admin 170 Feb 5 21:47 CGI-Executables
    drwxrwxr-x 3 root admin 102 Nov 1 09:41 Documents
    ...

    und es laufen 2 httpd-Prozesse (root, www), wenn ich mit "sudo apachectl start" oder im GUI den server starte ...

    hakru
     
  16. hannibal

    hannibal New Member

    hm, ich versuche ja gerade kampfhaft einen Einstieg in zB Perl oder Unix zu bekommen und scheitere zum wiederholten Male daran, daß die einfachsten Sachen nicht gehen und es kein Applehilfe gibt.
    *frust*

    Dein letztes Posting sagt mir leider gar nix, weil ich da gar nicht mit dem Terminal arbeite.
    Ich wollte eigentlich nur mal eben ausprobieren, ob ich ein .pl über ein html auf meinem eitgenen apache aufrufen kann.

    Ich weiß jetzt gar nicht genau, wie du an diese Zeilen:
    drwxrwxr usw gekommen bist.

    Aber grundsätzlich kann es ja nicht angehen, daß man (angeblich) seinen eigenen Server betreiben kann (alles eingebaut ins OS), aber dann keine Rechte hat auf den cgi-bin - Ordner.
    Ist doch irgendwie bescheuert.
    Ich müsste jetzt in den Apacheeinstellungen sehrwahrscheinlich ein anderes Verzeichnis als cgi-bin angeben, eins wo ich die Rechte habe.

    Du schreibst: "?oder im GUI den server starte:"
    Hast Du etwa eine Apache-GUI für die Einstellugen?
     
  17. hakru

    hakru New Member

    mit dem "GUI" meinte ich nur die SysPrefs "Sharing", über die man ja "personal websharing" (apache) eingschalten kann ... Sorry für die Verwirrung ;-)

    Das Programm "Terminal" (in Programme/Dienstprogramme) eröffnet Dir eine UNIX-Shell, die halt schon hilfreich ist, wenn man im System unterwegs ist. Mit der Forum-Suche hier findest Du sicher einige Tips zu Tutorials etc., um einen raschen Einstieg zu finden ...

    Wenn Du einfach mal das Terminal startest, geht ein Fenster auf, ein "Prompt" erscheint, und Du kannst dort Befehle eingeben (cd = "change directory", pwd = "print working directory" etc. etc.)

    mit dem Befehl (ohne die ""-Zeichen eingeben!)
    cd /Library/Webserver

    wechselst Du in das Webserver-Verzeichnis. Dann kannst Du mit dem Befehl

    ls -al

    (nicht die "eins" sondern der Buchstabe l )

    den Inhalt anzeigen lassen. Auch die Eigentümer, Rechte etc. an den Files sind angegeben
    d=directory
    r=read
    w=write
    x=execute
    ...

    hakru
     
  18. hannibal

    hannibal New Member

    ja, beim zweiten Lesen hab ich das mit der GUI auch kapiert.
    *verwirr*

    also mit dem Terminal hab ich natürlich auch schon das ein oder andere gemacht, aber es ist kein selbstverständliches Werkzeug für mich.

    das siehts also so aus:
    drwxrwxr-x 5 root admin 170 Jul 29 2002 .
    drwxrwxr-x 40 root admin 1360 Feb 4 22:52 ..
    -rw-rw-rw- 1 hannibal admin 6148 Apr 22 2002 .DS_Store
    drwxrwxr-x 8 root admin 272 Feb 5 22:38 CGI-Executables
    drwxrwxr-x 37 root admin 1258 Jul 29 2002 Documents

    Ich habe mich eben mal als root eingeloggt und hatte das selbe Problem mit der "Permission"

    dh. es ist die Apache-Eisntellung, die mir den Zugriff verweigert.
    Wenn ich mit einem Browser ein .pl aufrufen will, wo soll ich denn dann die "chmod"-Befehle eingeben???
     
  19. hakru

    hakru New Member

    na, das wird doch noch ... Wenn Du jetzt dein test.pl in /Library/Webserver/CGI-Executables abgelegt hast, dann geh' mal dahin mit "cd /Library/Webserver/CGI-Executables", dann kannst Du die Rechte setzen mit dem Befehl:

    chmod 755 test.pl

    (der chmod 755 setzt die Rechte wie folgt:
    user=rwx
    group=rx
    other=rx
    ... damit müsste es klappen ...

    hakru
     
  20. hannibal

    hannibal New Member

    ok, hab ich gemacht - mit durchschlagendem Erfolg:

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

    Also ist der Server hin?
    Den Fehler gibts auch bei einem print "hello world"
    Das vom System mitgelieferte "test-cgi" kann ich auch nicht aufrufen.

    Gruß hannibal
     

Diese Seite empfehlen