[GastForen Archiv Perl und CGI Problem mit <!--#exec cmd

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

Problem mit
Anonym
Beiträge gesamt: 22827

24. Sep 2004, 10:05
Beitrag # 1 von 5
Bewertung:
(646 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

ich sags gleich ich hab keine Ahnung von Perl. Muss aber ein Perlscript wieder zum laufen bekommen. Das Script funktioniert soweit. Wenn ich perl counter.pl aufrufe erhalte ich die richtige Ausgabe, mein Problem aber ist die Webseite die das Script aufruft. Es stellt sich für mich so dar, dass der Befehl:

<!--#exec cmd="/www/htdocs/firmen/name_der_Firma/cgi-bin/counter.pl"--> Zugriffe

irgendwie ignoriert wird. Ich find aber keinerlei Fehlermeldungen in den Logs, die Seite wird auch aufgebaut, nur dass vor "Zugriffe" halt nichts steht. Die Seite und das Script funktionierten bereits auf einem alten Server, jetzt aber nicht mehr. Die Pfade haben sich zwar geändert, aber das habe ich angepasst. Hab ich irgendein Modul vergessen zu installieren? hat sich im Apache etwas geändert, dass dieses Problem verursachen könnte? Ich hab die installierten Module flüchtig verglichen, und es scheint nichts auf dem alten Server installiert gewesen zu sein, was jetzt nicht da wäre.

Wenn mir jemand weiter helfen könnte wäre ich Dankbar.

Gruss Torsten

X

Problem mit
SabineP
Beiträge gesamt: 7586

24. Sep 2004, 10:34
Beitrag # 2 von 5
Beitrag ID: #110851
Bewertung:
(644 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Torsten,

der Pfad zum Script sollte ausgehend vom root-Verzeichnis der Domin angegeben werden.

Ich nehme mal an, daß "htdocs" Dein Root-Verzeichnis ist (das Verzeichnis mit der Startseite index.html).

<!--#exec cgi="/firmen/name_der_Firma/cgi-bin/counter.pl" -->

oder

<!--#exec cmd="/firmen/name_der_Firma/cgi-bin/counter.pl" -->
exec cmd steht jedoch aus Sicherheitsgründen meistens nicht zur Verfügung.


Gruß Sabine


als Antwort auf: [#110841]
(Dieser Beitrag wurde von SabineP am 24. Sep 2004, 10:39 geändert)

Problem mit
Anonym
Beiträge gesamt: 22827

24. Sep 2004, 11:33
Beitrag # 3 von 5
Beitrag ID: #110870
Bewertung:
(644 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

ja /www/htdocs ist zumindest im Apache als DocumentRoot angegeben, aber für jeder Firma existiert ein Virtueller Host,

<VirtualHost 192.168.1.6>
ServerAdmin admins@name_der_firma.de
DocumentRoot /www/htdocs/firmen/name_der_firma/
ServerName http://www.name_der_firma.de
ScriptAlias /cgi-bin/ /www/htdocs/firmen/name_der_firma/cgi-bin/
LogFormat "%h %l %u %t "%r" %s %b "%{User-Agent}i" %{Referer}i"
CustomLog /var/log/httpd/firmen/name_der_firma-custom_log combined
TransferLog /var/log/httpd/firmen/name_der_firma-access_log
TransferLog /www/htdocs/firmen/name_der_firma/log/proetcon-access_log
ErrorLog /var/log/httpd/firmen/name_der_firma-error_log

<Directory /www/htdocs/firmen/name_der_firma/>
Allow from All
AllowOverride All
Order allow,deny
</Directory>

<Directory /www/htdocs/firmen/name_der_firma/cgi-bin/>
AllowOverride All
Options +ExecCGI
</Directory>
</VirtualHost>

so dass für jede Firma eigentlich der DocumentRoot /name_der_firma ist. Ich hab aber auch schon alles mögliches probiert:

<!--#exec cgi="/../cgi-bin/counter.pl" -->
<!--#exec cgi="/cgi-bin/counter.pl" -->

und jetzt auch nochmal:
<!--#exec cgi="/firmen/name_der_Firma/cgi-bin/counter.pl" -->

aber nichts funktioniert, vieleicht noch kurz zur Struktur:
die html-Seite die das Script aufruft liegt unter:
/name_der_Firma/DEUTSCH/menue_d.html
das script unter:
/name_der_Firma/cgi-bin/counter.pl

Wie gesagt auf dem alten Server funktionierte es mit der totalen Pfadangabe
<!--#exec cgi="/usr/local/httpd/htdocs/firmen/name_der_Firma/cgi-bin/counter.pl" -->
problemlos, die Apacheconfig ist auch gleich bis auf die Pfadangaben.

Ich hab schon alles mögliche probiert, auch schon Stunden im Netzt gesucht, und dutzende von Hinweisen ausbrobiert, habe das Script auch in .cgi umbenannt, die Webseite in .shtml aber nichts hat irgend etwas gepracht. Ich habe CGI::SSI nachinstalliert (auf dem alten funtktionierte aber auch ohne das). Nichts hat bis jetzt geholfen.

<b>exec cmd steht jedoch aus Sicherheitsgründen meistens nicht zur Verfügung</b> Wie ist das zu verstehen? Muss ich das extra erlauben? Wenn ja wie?

Gruss Torsten


als Antwort auf: [#110841]

Problem mit
SabineP
Beiträge gesamt: 7586

24. Sep 2004, 13:33
Beitrag # 4 von 5
Beitrag ID: #110933
Bewertung:
(644 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Thomas,

unterstützt Dein Webserver Server Side Includes (SSI)?

Hier einige Hinweise zur Konfiguration in der httpd.conf

http://httpd.apache.org/...mod/mod_include.html

In der Options-Zeile muß irgendwo Includes stehen:

Beispielzeile:
Options Indexes FollowSymLinks MultiViews ExecCGI Includes

Und die Dateiendung für SSI-Dateien muß festgelegt sein.

Beispiel für die Endung .shtml:

AddType text/html .shtml
AddHandler server-parsed .shtml


Ohne Server Side Includes kannst Du diesen Counter nicht einbinden.

Falls Dein Webserver SSI unterstützt müßte an der Stelle mit der Counterausgabe
eine Fehlermeldung in eckigen Klammern erscheinen [ an error .... ].

Gruß Sabine


als Antwort auf: [#110841]

Problem mit
Anonym
Beiträge gesamt: 22827

24. Sep 2004, 15:03
Beitrag # 5 von 5
Beitrag ID: #110976
Bewertung:
(644 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

danke, danke, danke!

Ich hatte die beiden Zeilen

AddType text/html .shtml
AddHandler server-parsed .shtml

irgendwie übersehen, die waren noch auskommentiert. Hab das geändert.

Aber das war noch nicht alles, die Zeilen standen, so wie oben auch im Configfile des alten Servers, dennoch funktionierte es dort auch, wenn die <!--exec Aufrufe in normalen .html Seiten standen. Auf dem neuen Server müssen sie .shtml heissen damit es funktioniert.

Nochmals Danke!

Gruss Torsten


als Antwort auf: [#110841]

X