| Autor |
Nachricht |
|
Verfasst am: 15.04.2003 [23:02]
|
|
FradeljukA
Themenersteller
Dabei seit: 05.03.2002
Beiträge: 66
|
Hallo!
Wie kann man dem Apache klar machen, dass er beispielsweise die Dateiendung .ovpl (programmspezifische Perl Version) mit einer perl.exe aus einem verzeichnis x öffnen soll?
Ich denke mal das geht irgendwie über das ScriptAlias /perl/ "C:/pfad/zum/programm/perl/"
AddType application/xxxxxx .ovpl
Action xxxxx "/perl/perl.exe
oder? Aber ich weis net was ich für die x einsetzten soll.
Über schnelle Hilfe wär ich sehr dankbar! Is nämlich irre wichtig!
thx Frank
|
|
Verfasst am: 15.04.2003 [23:16]
|
|
Robbes
Dabei seit: 02.03.2002
Beiträge: 2657
|
[tt]AddHandler cgi-script .ovpl[/tt] sollte reichen. Siehe dazu auch <a rel="nofollow" href="outbound.php?url=http://www.ricocheting.com/server/cgi.html"><a href="http://www.ricocheting.com/server/cgi.html" target="_blank">http://www.ricocheting.com/server/cgi.html</a></a>
|
|
Verfasst am: 15.04.2003 [23:18]
|
|
BuddahKekz
Dabei seit: 28.09.2002
Beiträge: 654
|
ists nicht relativ egal was da steht ?
kann doch auch hin application/perlistdoof _g_ wenn bei action das selbe steht...
ist ja nur intern fürn apache damit der weiss was er womit machen muss...
|
|
Verfasst am: 15.04.2003 [23:36]
|
|
joe
Dabei seit: 07.04.2002
Beiträge: 1225
|
Mit [TT]AddHandler[/TT] muß man allerdings ein bisschen aufpassen. Wenn man diese Direktive nicht innerhalb eines [TT]Directory[/TT]-Blocks benutzt, dann gilt sie global. Sprich: alle Dateien mit der festgelegten Extension werden ausgeführt - unabhängig davon, in welchem Verzeichnis sie liegen. Das wäre ggf. natürlich ne ernstzunehmende Sicherheitslücke.
Die Alternative wäre [TT]ScriptAlias[/TT]. Damit beschränkt man das Ausführen von CGI-Programmen auf das festgelegte Verzeichnis - üblicherweise /cgi-bin (man kann natürlich auch mehrere Verzeichnisse festlegen). [TT]ScriptAlias[/TT] kümmert sich dann auch nicht um irgendwelche File-Extensions, sondern führt das beim Request angeforderte File einfach aus.
In beiden Fällen muß man innerhalb des CGI-Programms angeben, mit welchem Interpreter es ausgeführt werden soll (sofern es sich um ein Script handelt - Binaries werden natürlich direkt ausgeführt). In Perl-Scripts muß also die berühmte erste Zeile
[TT]#!/usr/bin/perl[/TT]
rein (natürlich auf die Gegebenheiten auf dem Server angepaßt - unter Windows also z.B. #!C:perlperl.exe).
Doku:
<a rel="nofollow" href="outbound.php?url=http://httpd.apache.org/docs/mod/mod_mime.html#addhandler"><a href="http://httpd.apache.org/docs/mod/mod_mime.html#addhandler" target="_blank">http://httpd.apache.org/docs/mod/mod_mime.html#addhandler</a></a>
<a rel="nofollow" href="outbound.php?url=http://httpd.apache.org/docs/mod/mod_alias.html#scriptalias"><a href="http://httpd.apache.org/docs/mod/mod_alias.html#scriptalias" target="_blank">http://httpd.apache.org/docs/mod/mod_alias.html#scriptalias</a></a>
<a rel="nofollow" href="outbound.php?url=http://httpd.apache.org/docs/misc/FAQ-F.html#CGIoutsideScriptAlias"><a href="http://httpd.apache.org/docs/misc/FAQ-F.html#CGIoutsideScriptAlias" target="_blank">http://httpd.apache.org/docs/misc/FAQ-F.ht...sideScriptAlias</a></a>
cu
Joe
while(!asleep()) sheep++;
|
|
Verfasst am: 16.04.2003 [08:40]
|
|
FradeljukA
Themenersteller
Dabei seit: 05.03.2002
Beiträge: 66
|
ich hätte vielleicht noch erwähnen sollen, dass es sich um einem apache 2 (2.0.45) handelt. dieses [code:1:d09e6e29a9]#!/usr/bin/perl[/code:1:d09e6e29a9] finde ich in meiner httpd.conf net...
ich will das mal noch etwas genauer schildern! alle ausführbaren dateien liegen im verzeichnis:
c:/programm files/hp openview/nnm/www/cgi-bin/.
es handelt sich dabei um .exe und eben diese .ovpl dateien. die .exe gehen wunderbar...
ich hatte vorher einen iis laufen. dort konnte man unter "anwendungszuordnungen" die dateiendung .ovpl zu dem pfad c:/programm files/hp openview/nnm/bin/Perl/bin/perl.exe zuweisen...
momentan habe ich:
[code:1:d09e6e29a9]ScriptAlias /OvCgi/ "c:/programm files/hp openview/nnm/www/cgi-bin/"[/code:1:d09e6e29a9]
und
[code:1:d09e6e29a9]AddHandler cgi-script .ovpl[/code:1:d09e6e29a9]
eingetragen. aber es funzt net....
im browser kommt "Internal Server Error (Fehler 500)" und im error.log des apachen steht folgendes:
...[error] [client mei.ne.ip.ad] (OS 3) Das System kann den angegebenen Pfad nicht finden. : couldn't spwan child process: C:/Programm Files/HP OpenView/NNM/www/cgi-bin/freeIPaddr.ovpl
|
|
Verfasst am: 16.04.2003 [09:16]
|
|
FradeljukA
Themenersteller
Dabei seit: 05.03.2002
Beiträge: 66
|
ich nochmal...
also ich habe jetzt in einem script in der ersten zeile den korrekten pfad zu diesem perl-verzeichnis angegeben...
da stand: [code:1:3e630ade63]#!/opt/OV/bin/Perl/bin/perl[/code:1:3e630ade63] und ich hab das mal auf #!"C:/Programm Files...." geändert.
das geht jetzt... aber warum? udn warum ging das beim iis ohne das ich da was ändern musste?
geht das vielleicht auch einfacher?
thx für eure hilfe!
|
|
Verfasst am: 16.04.2003 [10:53]
|
|
Robbes
Dabei seit: 02.03.2002
Beiträge: 2657
|
<!--quoteo--><div class='quotetop'>ZITAT</div><div class='quotemain'><!--quotec-->[i]Original von FradeljukA [/i:c6432feed3]
das geht jetzt... aber warum?<!--QuoteEnd--></div><!--QuoteEEnd-->
Weil das der Standard-Weg ist CGI-Skripte mit ihren Anwendungen zu verknüpfen, wenn du da bspw. "C:/command.com" einträgst würde Apache versuchen das Skript von command.com ausführen zu lassen. Hintergrund des ganzen: Du kannst das Skript in jeder Sprache schreiben die dir gefällt, sofern die Shebang (so nennt man dieses #!bla) stimmt kann der Apache das ausführen.
<!--quoteo--><div class='quotetop'>ZITAT</div><div class='quotemain'><!--quotec-->udn warum ging das beim iis ohne das ich da was ändern musste?<!--QuoteEnd--></div><!--QuoteEEnd-->
Weil du beim IIS eine Dateiendung direkt mit einem Programm verknüpfst, im Gegensatz zum Prinzip beim Apache. Wobei du sowas beim Apache auch machen kannst, ich weiss nur grade nicht wie genau das noch ging *g*
|
|
Verfasst am: 16.04.2003 [11:52]
|
|
FradeljukA
Themenersteller
Dabei seit: 05.03.2002
Beiträge: 66
|
muss doch eigentlich so:
[code:1:fa5fb7c7bc]AddType application/fucking_perl .ovpl
Action application/fucking_perl "/pfad/zum/hpopenview/perl/"[/code:1:fa5fb7c7bc] gehen, oder?
aber das hab ich ja probiert und es kratzt meinen indianer ziemlich wenig.... ;(
es betrift ja auch nur die dateien, die im cgi-bin für den webzugriff sind. die anderen werden irgendwie direkt über das programm aufgerufen und da scheint es zu funktionieren...
also wenn ich hab das jetzt bei den paar dateien direkt geändert und die laufen. ist halt nur nicht die eleganteste lösung, weil das ja mein abschlußprojekt is...
|
|
Verfasst am: 16.04.2003 [12:35]
|
|
Robbes
Dabei seit: 02.03.2002
Beiträge: 2657
|
Ich hab mich mal schlau gemacht, so sollte es gehen:
[code:1:a2af7a040f]ScriptAlias /ovpl-perl/ "/pfad/zu/dem/teil/ohne/direkten/exe/verweis/"
AddType application/ovpl+perl .ovpl
Action application/ovlp+perl "/ovpl-perl/perl.exe"[/code:1:a2af7a040f]
Nicht den Apache-Neustart vergessen
|
|
Verfasst am: 16.04.2003 [12:53]
|
|
FradeljukA
Themenersteller
Dabei seit: 05.03.2002
Beiträge: 66
|
ja eben nicht... ;(
so hab ich's:
[code:1:a288cbca5e]ScriptAlias /ovpl-perl/ "C:/Programm Files/HP Openview/NNM/bin/Perl/bin/"
AddType application/ovpl+perl .ovpl
Action application/ovpl+perl "/ovpl-perl/perl.exe"[/code:1:a288cbca5e]
apache is neu gestartet und es kommen wieder die selben meldungen... setze ich wieder den richtigen pfad ind das .ovpl script gehts... *kopfschüttel*
|