index.pl im webroot wird nicht gefunden

Apache, Lighttpd, nginx, Cherokee
@lf
Posts: 8
Joined: 2009-02-20 01:32
 

index.pl im webroot wird nicht gefunden

Post by @lf »

Hallo,
auf meinem Server läuft Debian 4 mit Confixx 3.3.3 im Bundle.
Perldateien die direkt im Webroot liegen werden nicht gefunden.
bspw: /var/www/web2/html/index.pl

Liegen die Dateien eine Ebene tiefer, werden sie ausgeführt.
bspw: /var/www/web2/html/test/index.pl

Weiss vlt. jemand welcher Eintrag in welcher conf dafür verantwortlich ist ?
... oder lässt sich das in Confixx regeln ?
EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn
 

Re: index.pl im webroot wird nicht gefunden

Post by EdRoxter »

In Confixx gibt es bei den jeweiligen Web-Usern die Option "Perl/CGI außerhalb cgi-bin" (direkt auf der Startseite unten). Die sollte für deine Zwecke aktiviert sein.

Sie aktiviert für den jeweiligen VHost für das /html-Verzeichnis die Direktive
AddHandler cgi-script .pl .cgi
.

Du solltest übrigens dringend Confixx auf 3.3.4 aktualisieren und den HotFix1 einspielen, siehe
http://download1.swsoft.com/Confixx/Con ... otfix1.htm
@lf
Posts: 8
Joined: 2009-02-20 01:32
 

Re: index.pl im webroot wird nicht gefunden

Post by @lf »

Danke für den HotFix-Hinweis!

Die Option "Perl/CGI außerhalb cgi-bin" war und ist aktiviert. Da liegt der Hund leider nicht begraben.
Die Rechte sind auf 755.

Noch ne Idee?
EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn
 

Re: index.pl im webroot wird nicht gefunden

Post by EdRoxter »

Dann spezifizier bitte nochmal: Geht es darum, dass .pl-Skripte generell im Webroot nicht ausgeführt werden können, oder darum, dass index.pl nicht als DirectoryIndex erkannt wird, also so wie index.html oder index.php automatisch geöffnet wird, wenn nur bspw. http://www.deinedomain.de/ aufgerufen wird?
@lf
Posts: 8
Joined: 2009-02-20 01:32
 

Re: index.pl im webroot wird nicht gefunden

Post by @lf »

Hallo,
inzwischen hab ich den jungfräulichen Urzustand wieder herbeigeführt - sprich: Debian und Confixx frisch installiert.

.pl wird nun gefunden, allerdings öffnet sich ein "Speichern-Unter Dialog" - sowohl im Webroot, als auch unterhalb.

.php, beispielsweise, wird ohne Probleme ausgeführt.
EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn
 

Re: index.pl im webroot wird nicht gefunden

Post by EdRoxter »

Ist libapache2-mod-perl2 installiert und aktiviert? (/etc/apache2/mods-enabled/perl.load)
@lf
Posts: 8
Joined: 2009-02-20 01:32
 

Re: index.pl im webroot wird nicht gefunden

Post by @lf »

OK! Is klar!
libapache2-mod-perl2 hab ich "wieder" installiert.
Im Moment hab ich immer noch das gleiche Problem.

Vermute mal, jetzt fehlen noch die Einträge:

Code: Select all

AddHandler cgi-script .cgi .pl
und

Code: Select all

Options +ExecCGI
Allerdings weiss ich nicht, wo ich die einsetzen soll - Confixx überschreibt ja manche confs nach einer Änderung.


Oder bin ich aufm Holzweg?
EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn
 

Re: index.pl im webroot wird nicht gefunden

Post by EdRoxter »

Die beiden brauchst du nur, wenn du Perl außerhalb von cgi-bin benutzen willst - und genau in dem Fall setzt Confixx das automatisch in die entsprechende /etc/apache2/confixx-vhosts/webXX.conf. Also sowohl +ExecCGI als auch den AddHandler.

mod-cgi ist auch geladen und aktiviert? (/etc/apache2/mods-enabled/cgi.load)

Ist die Shebang korrekt?
@lf
Posts: 8
Joined: 2009-02-20 01:32
 

Re: index.pl im webroot wird nicht gefunden

Post by @lf »

mod-cgi ist in Ordnung.

Meinst Du mit Shebang die Syntax in der index.pl? Die ist OK, hab erstmal ein "Hallo Welt" drin.

Bin jetzt wieder an dem Punkt, dass .pl lediglich in Unterverzeichnissen gefunden und ausgeführt werden.
Im Webroot wird sie jedoch nicht gefunden.
EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn
 

Re: index.pl im webroot wird nicht gefunden

Post by EdRoxter »

Shebang ist die erste Zeile des Programms, die, pragmatisch gesagt, angibt, mit welchem Interpreter das Skript ausgeführt werden soll. Bei Perl ist es üblicherweise

Code: Select all

#!/usr/bin/perl
Was hast du in der Zwischenzeit noch gemacht, damit du diesen Punkt wieder erreichst?

Welche Fehlermeldung gibt der Server? 404 oder 500? Was sagen /var/log/apache2/access.log und error.log zu dem Zeitpunkt?

Poste doch bitte mal die /etc/apache2/confixx-vhosts/webX.conf des entsprechenden Web-Users.
@lf
Posts: 8
Joined: 2009-02-20 01:32
 

Re: index.pl im webroot wird nicht gefunden

Post by @lf »

Nix weiter - letzte Aktion war libapache2-mod-perl2 installiert.

Fehlermeldung: HTTP 500

Dieletzten Log-Einträge lauten:

access.log

Code: Select all

::1 - - [24/Feb/2009:09:00:19 +0100] "GET / HTTP/1.0" 302 282 "-" "Apache (internal dummy connection)"
error.log

Code: Select all

[Tue Feb 24 09:20:23 2009] [error] [client "hier steht meine IP"] suexec policy violation: see suexec log for more details
[Tue Feb 24 09:20:23 2009] [error] [client "hier steht meine IP"] Premature end of script headers: index.pl
susexec.log

Code: Select all

[2009-02-24 09:20:23]: target uid/gid (1149/1149) mismatch with directory (1149/33) or program (1149/1149)
[2009-02-24 09:20:35]: uid: (1149/web2) gid: (1149/1149) cmd: index.pl
Die web2.conf werd ich nicht komplett posten, hier der oberste Absatz:

Code: Select all

<Directory "/var/www/web2/html">
  Options -FollowSymLinks -SymLinksIfOwnerMatch
  Options +ExecCGI
  AddHandler cgi-script .cgi .pl
  <IfModule mod_access.c>
    Allow from all
  </IfModule>
  <IfModule mod_authz_host.c>
    Allow from all
  </IfModule>
  php_admin_flag engine on
</Directory>
User avatar
Joe User
Project Manager
Project Manager
Posts: 11185
Joined: 2003-02-27 01:00
Location: Hamburg
 

Re: index.pl im webroot wird nicht gefunden

Post by Joe User »

@lf wrote:

Code: Select all

[2009-02-24 09:20:23]: target uid/gid (1149/1149) mismatch with directory (1149/33) or program (1149/1149)
[2009-02-24 09:20:35]: uid: (1149/web2) gid: (1149/1149) cmd: index.pl
Liest Du die Logs auch mal selbst, oder suchst Du jemanden zum Vorlesen?
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
@lf
Posts: 8
Joined: 2009-02-20 01:32
 

Re: index.pl im webroot wird nicht gefunden

Post by @lf »

OK, das ist völliges Neuland für mich.
Hoffe ich muss mich jetzt nicht an suexec fummeln
Aber ich lern ja gerne dazu.

Es gibt also ein Rechte/Gruppen-Problem.

mein Webroot-Verzeichnis (html):
Gruppe: www-data
Eigentümer: web2
Rechte 0750

die index.pl:
Gruppe: web2
Eigentümer: web2
Rechte: 0755

Für mich sieht das so völlig in Ordnung aus. Vielleicht könnt ihr mir auf die Sprünge helfen.
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: index.pl im webroot wird nicht gefunden

Post by Roger Wilco »

Der Besitzer (und Gruppe) des Verzeichnisses müssen mit dem des Skripts übereinstimmen. Besagt übrigens auch die Meldung. Die UID/GID wird nicht umsonst darin angegeben.
@lf
Posts: 8
Joined: 2009-02-20 01:32
 

Re: index.pl im webroot wird nicht gefunden

Post by @lf »

Jou, das hab ich ja soweit verstanden.

Aber wo leg ich nu fest, dass das Webroot-Verzeichnis der Gruppe = Eigentümer gehört - und das sobald ein User mit Confixx erstellt wird?
Sonst muss ich ja jedesmal nochmal an den Accounts rumschrauben.
User avatar
daemotron
Administrator
Administrator
Posts: 2641
Joined: 2004-01-21 17:44
 

Re: index.pl im webroot wird nicht gefunden

Post by daemotron »

Eigentlich sollten die Rechte stimmen, wenn Du die Dateien per FTP mit dem jeweiligen Account hochgeladen hast (bis auf das +x für CGI-Skripte). Wenn Du per SSH, SCP oder sonstwie herumfuhrwerkt hast, musst Du Owner, Group und Berechtigungen natürlich noch anpassen. Was aber definitiv kaputt ist, ist das Skript:
@lf wrote:

Code: Select all

[Tue Feb 24 09:20:23 2009] [error] [client "hier steht meine IP"] Premature end of script headers: index.pl
Du hast keinen gültigen HTTP-Header in Deinem Skript erzeugt - mindestens ein

Code: Select all

print "Content-type: text/htmlnn";
muss in Deine Datei rein, und zwar vor jeder weiteren Ausgabe - sonst gibt es besagten Fehler, und der Webserver quittiert das mit einem 500er.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time