[gelöst] mod_fcgid und perl

Apache, Lighttpd, nginx, Cherokee
borlander
Posts: 4
Joined: 2009-07-05 18:12

[gelöst] mod_fcgid und perl

Post by borlander » 2009-07-06 22:04

Hallo,

ich habe bis jetzt mod_fcgid mit PHP5 unter ubuntu 9.04 erfolgreich ans laufen gebracht. Will nun auch Perl Skripte ans laufen bringen. Dafür habe ich mal ganz naiv das gleiche für Perl gemacht

Aapche VHOST config:

Code: Select all

...
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
SuexecUserGroup "itjungs" "kunden"
AddHandler fcgid-script .php .pl
FCGIWrapper /var/www/virtual/domain.de/cgi-bin/php-fcgi-wrapper.bash .php
FCGIWrapper /var/www/virtual/domain.de/cgi-bin/perl-fcgi-wrapper.bash .pl

Alias /fcgi-bin/ /var/www/virtual/domain.de/cgi-bin/
<Location /fcgi-bin/>
        SetHandler fcgi-script
        Options +ExecCGI
</Location>
...


Der Wrapper

Code: Select all

#!/bin/sh
exec /usr/bin/perl


Mein test Perl Skript was ich in /var/www/virtual/domain.de/htdocs erstellt habe

Code: Select all

 #!/usr/bin/perl -w

use FCGI;
use strict;

my $Text = "Hallo Welt";

print "Content-type: text/htmlnn";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "n";
print "<html><head><title>Hallo Welt</title></head><body>n";
print "<h1>$Text</h1>n";
print "</body></html>n";


Wenn ich die test.pl im Browser ausführe, dann bekomme ich einen 500 Internal Server Error

Meine Error log spuckt dann folgendes aus.

Code: Select all

[Sat Jun 27 09:49:58 2009] [notice] mod_fcgid: call /var/www/virtual/domain.de/htdocs/test.pl with wrapper /var/www/virtual/domain.de/cgi-bin/php5-default/perl-fcgi-wrapper.bash
[Sat Jun 27 09:49:58 2009] [warn] (104)Connection reset by peer: mod_fcgid: read data from fastcgi server error.
[Sat Jun 27 09:49:58 2009] [error] [client 192.168.1.133] Premature end of script headers: test.pl
[Sat Jun 27 09:50:01 2009] [notice] mod_fcgid: process /var/www/virtual/domain.de/htdocs/test.pl(2307) exit(communication error), terminated by calling exit(), return code: 0


In meiner Suexec log sind keine Fehler

fcgid kann doch Perl?
Last edited by borlander on 2009-07-11 12:08, edited 1 time in total.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: mod_fcgid und perl

Post by Roger Wilco » 2009-07-06 23:37

Der Standard Perl-Interpreter unterstützt kein FastCGI und dein Skript ist ein normales CGI-Skript. Das klappt so nicht, wie du es dir vorstellst.

Lies (und verstehe) http://search.cpan.org/~skimo/FCGI-0.67/FCGI.PL.

borlander
Posts: 4
Joined: 2009-07-05 18:12

Re: mod_fcgid und perl

Post by borlander » 2009-07-08 20:21

OHH Sorry - das hatte ich auch schon versucht und vergessen zu erwähnen. Gleicher Fehler.

Code: Select all

use FCGI;

    my $count = 0;
    my $request = FCGI::Request();

    while($request->Accept() >= 0) {
        print("Content-type: text/htmlrnrn", ++$count);
    }

dotme
Posts: 150
Joined: 2004-12-15 16:48

Re: mod_fcgid und perl

Post by dotme » 2009-07-09 10:14

Dein Wrapper-Skript ist falsch und überflüssig. Der blanke Perl-Interpreter versteht es nicht das FastCGI-Protokoll zu sprechen und kann so auch auf keinen Fall ermitteln welches Skript ausgeführt werden soll. Wenn Du den Wrapper weglässt und das zweite Skript verwendest, könntest Du schon einen Schritt weiter sein.
Ansonsten BTW wieso willst Du unbedingt FastCGI für Perl-Skripte einsetzen?

borlander
Posts: 4
Joined: 2009-07-05 18:12

Re: mod_fcgid und perl

Post by borlander » 2009-07-11 11:07

Ich habe mich bei PHP für fcgid aufgrund der Performance und die Möglichkeit scripte mit suexec auszuführen entschieden.
Da ich schon fcgid einsetze, dachte ich das ich es auch für Perl einsetzen könnte. Wie müsste den dafür die Konfiguration aussehen? Bei Perl ist mich auch die Performance nicht so wichtig.

Bei fcgid und suexec muss ich doch einen wrapper nutzen, damit die userrechte stimmen?
Wenn ich mod_perl benutzte, kann ich suexec nicht benutzen?

Was gibt es für Möglichkeiten?

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: mod_fcgid und perl

Post by Roger Wilco » 2009-07-11 11:27

borlander wrote:Bei fcgid und suexec muss ich doch einen wrapper nutzen, damit die userrechte stimmen?

Das ist eine Besonderheit von PHP. Bei anderen Skripten sollte es ausreichen, wenn auf das Skript die korrekten Rechte gesetzt sind und das Skript selbst FastCGI unterstützt.

borlander
Posts: 4
Joined: 2009-07-05 18:12

Re: mod_fcgid und perl

Post by borlander » 2009-07-11 12:08

Einfacher gehts ja wohl kaum.

einfach FCGIWrapper weg lassen und alles läuft.

Ohh man wie peinlich. Vielen Dank