• Willkommen im Forum „Tintenzirkel - das Fantasyautor:innenforum“.
 

Scripte im CGI-Ordner: Error 404 obwohl Dateien vorhanden

Begonnen von Maja, 27. August 2013, 19:51:21

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

Maja

Ich wollte gerade die Bewernbung für den Zirkel wieder freischalten, bin aber auf ein Problem gestoßen: Das Formmailer-Script, mit dem bislang die Bewerbungen verschickt wurden, funktioniert nicht. Ich bekomme für alle Dateien, die im CGI-Ordner liegen, die Meldung "File Not Found", obwohl ich zigmal die Dateinamen überprüft habe und die Dateien wirklich vorhanden sind. Habe alles im ASCII-Modus neu hochgeladen, keine Besserung. Noch nicht mal eine "test.txt"-Datei wird angezeigt. Ich habe alle Updates für den Server eingespielt, darunter war auch eines für Apache, aber es tut sich nichts.

Da wir etwas an den Bewerbungsmodalitäten ändern, habe ich der Formmailer-Tabelle zwei Zeilen hinzugefügt und eine umbenannt, aber dachte erst, daran würde es liegen, aber auch mit einer Backupversion des alten Formulars bekomme ich diese Fehlermeldung. Dabei ist das Skript bis zur Deaktivieurng der Bewerbung immer ohne Probleme gelaufen, und ich habe nichts geändert, nur eine andere Startseite davorgeschaltet. Hat jemand eine Idee, was da schiefgelaufen ist und vor allem, wie ich das auf einem virutellen Server mit Pleskk wieder hinbekommen kann? Für alle Tipps bin ich sehr dankbar!
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

pink_paulchen

Ich tipp mal ins Blaue -
Dateiberechtigungen reichen?
Der Apache sucht nach dem Update trotzdem im richtigen Pfad?
Manchmal sinds ja die doofen Sachen...

Grummel

Oder das formmail.pl ist falsch nach dem Update. Irgendwo habe ich mal was von einem Korrekturscript nach Apache Update gelesen?!
"Kaffee?"
"Ja, gerne."
"Wie möchtest du ihn?"
"Schütte ihn mir einfach ins Gesicht!"

Maja

Es handelt sich um /cgi-bin auf meinem Webserver, ein Unterverzeichnis zu tintenzirkel.de. Der Pfad hat sich nicht geändert, das Verzeichnis ist vorhanden, aber noch bevor irgendwelche inhaltlichen Probleme mit dem Perl-Script auftreten können, bekomme ich die Meldung, das Script wäre nicht vorhanden. Ich habe probeweise eine Datei http://www.tintenzirkel.de/cgi-bin/test.txt angelegt, und auch für diese gibt es eine 404er-Meldung.

Das Serverupdate hat nichts daran geändert (dafür tut es jetzt außerdem mein SMTP-Server nicht mehr. Heute ist echt der Wurm drin).
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

Grummel

Also egal wonach ich suche, ich stoße im I-Net überall auf diese Info.
http://www.webhostingtalk.com/showthread.php?t=1049861

Aber das hast du wahrscheinlich selber schon gefunden.  :-\
"Kaffee?"
"Ja, gerne."
"Wie möchtest du ihn?"
"Schütte ihn mir einfach ins Gesicht!"

Maja

#5
Gefunden ja. Verstanden, zugegeben, nein. Ich habe Shellzugriff und ansonsten eine Plesk-Oberfläche, und ich weiß nicht, wo und wie ich das einstellen muss. Ich fühle mich wie der letzte Dau.
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

Grummel

Und ich sitze im Hotel und hab keinen Zugriff auf meinen Server, sonst würde ich nachsehen. Für mich liest sich das so, dass es quasi sowas wie eine "Ausführungsbeschränkung" ist, die man auskommentieren kann. Nur wo genau dieses Script liegt, raffe ich auch nicht.
"Kaffee?"
"Ja, gerne."
"Wie möchtest du ihn?"
"Schütte ihn mir einfach ins Gesicht!"

Grummel

Ich kann eh nicht schlafen, hier nochmal auf Deutsch:
http://forum.ubuntuusers.de/topic/bekomme-mit-apache2-kein-cgi-zum-laufen/#post-3884247
Und was ganz anderes:
https://secure.metanet.ch/support/online-hilfe-faq?page=questions.php&questionid=298

Ich habe Plesk 10.5, aber auf einem Windows 2010 Server und da sieht das eh anders aus, weil ich den direkt Remote (ohne Plesk) misshandele. ;)
"Kaffee?"
"Ja, gerne."
"Wie möchtest du ihn?"
"Schütte ihn mir einfach ins Gesicht!"

Maja

#8
Danke! Damit weiß ich jetzt zumindest theoretisch, was ich tun muss. Nur an der praktischen Umsetzung knabbere ich gerade - sprich, welche Daten ich eintragen muss und wie die Datei nennen, damit das für den Tintenzirkel funktioniert.

Das hier ist meine /etc/apache2/sites-available/default



<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>


Was mache ich jetzt?
Boah, bin ich blöd...
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

Grummel

Kann nicht mal einer nach Oracle Datenbanken fragen? ;)

Wenn ich das richtig verstehe, findet dein Script nicht den richtigen Virtual Host. Vielleicht hilft dir das weiter. Und jetzt versuche ich zu schlafen. :)

http://wiki.ubuntuusers.de/Apache/Virtual_Hosts
"Kaffee?"
"Ja, gerne."
"Wie möchtest du ihn?"
"Schütte ihn mir einfach ins Gesicht!"

Volker

Zitat von: Maja am 27. August 2013, 23:57:13
Das hier ist meine /etc/apache2/sites-available/default

[...]
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch


Das "ScriptAlias" Kommando sorgt dafür, dass wenn http://www.tintenzirkel.de/cgi-bin/test.txt diese test.txt-Datei nicht in /var/www/cgi-bin/ gesucht wird, sondern in  /ust/lib/cgi-bin/.

Wenn Du CGIs in /var/www/cgi-bin/ platzieren willst, dann musst Du die ScriptAlias-Zeile löschen und in der nachfolgenden <Directory "/usr/lib/cgi-bin"> ersetzen durch
<Directory "/var/www/cgi-bin">

Latürnich musst Du dann auch noch prüfen, ob Du eventuell auch noch Skripte aus /usr/lib/cgi-bin brauchst - nicht dass Du Dir andere Funktionen wegklemmst...

Maja

#11
In /usr/lib/cgi-bin liegt das Mailman-Script, das nach meiner Einschätzung ziemlich wichtig ist. Ich hatte die Idee, anstatt den Pfad zu ändern, die Scripte in den vorhandenen Ordner hochzuladen - nach dem Motto, wenn der Apache sie da sucht, macht es ja Sinn, wenn sie auch da sind. Habe mit meiner bewährten test.txt angefangen und dacht, dann sollte der Link jetzt funzen, aber das tut er immer noch nicht. Ich stelle auch fest, dass ich in einem HTML-Formbefehl nicht auf /usr/blah/blah verweisen kann, weil das nicht innerhalb des Webspaces liegt. (PHP kann das, wieso nicht HTML? Ja, ich weiß. Trotzdem doof.)

Dann frage ich mich, ob man Perl-Dateien auch außerhalb von /cgi-bin ausführen kann, aber mit 755 kommt die Meldung, ich hätte nicht die Berechtigung, die Datei auszuführen. Muss ich die Berechtigungen ändern?

Was ich aber immer noch nicht verstehe, ist, wieso es plötzlich nicht mehr geht, nachdem es immer ohne Probleme funktioniert hat und ich nichts an meinem Webspace geändert habe. Ich hatte noch nicht mal Updates eingespíelt nach dem Motto "Never change a running system". Und auf einmal werden die Verzeichnisse nicht mehr erkannt? Wie kann das kommen?

Ich bin gerade drauf und dran, den Server zu kündigen und wieder auf iditiotensicheren Webspace umzusteigen. Vielleicht bin ich einfach zu doof für sowas.


EDIT
Ich habe im Plesk-Forum gelesen, man soll die apache2.conf erweitern um
<Directory "/Applications/httpdocs/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

Das tut es jetzt auch nicht, muss ich  vielleicht die Pfade noch entsprechend anpassen? Das Verzeichnis, in dem die Dateien tatsächlich liegen, ist /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/cgi-bin/

Ich habe beim Durchsuchen des Servers das hier gefunden:  /var/www/cgi-bin/cgi_wrapper/ - kann ich damit etwas anfangen? Es ist deine Datei darin, die aber keinen verständlichen Inhalt hat (nur ELF..) - trotzdem habe ich das Gefühl, die könnte ich brauchen...
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

Luna

#12
Ich lese das ganze erst jetzt ...
gebt mir mal einen Moment, um die http-conf zu lesen, die auf meinem Server liegt.

Aber im Grunde heißt Error 404 dass die Datei nicht gefunden wird (soweit klar)
und ich lese DocumentRoot /var/www
das heißt er müsste auf der Serverstruktur die Adresse
http://www.tintenzirkel.de/cgi-bin/test.txt
unter
/var/www/cgi-bin/test.txt
suchen.

Allerdings bin ich ein wenig verwundert, das der Rest noch funktioniert. Daher lasst mich mal etwas recherchieren.

EDIT: Was ich vergessen habe: Nach einer Änderung einer Apache-conf-datei muss der Apache meist neugestartet werden.
Dafür sollte apache2ctl restart ausreichen (falls ausreichend rechte vorhanden sind).

Maja

#13
Angelfilia hat das cgi-Problem gelöst. Es war eine Einstellung im Plesk, die sich mit einem Plesk-Autoupdate geändert hatte. Der Formmailer funktioniert jetzt.
Danke!
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

Moni

Cool! Ist doch toll, wenn wir soviele hilfreiche Nerds versammelt haben.  ;D
Deutsch ist die Sprache von Goethe, von Schiller...
und im weitesten Sinne auch von Dieter Bohlen[/i]
Stefan Quoos, WDR2-Moderator

»Gegenüber der Fähigkeit, die Arbeit eines einzigen Tages sinnvoll zu ordnen,
ist alles andere im Leben ein Kinderspiel.«[/i]
Johann Wol