# [geloest] mod_perl->anstatt scripte auszufuehren->download

## Kai Gillmann

halloechen,

ich hab eben mod_perl installiert, die Informationen von http://gentoo-wiki.com/Apache_Modules_mod_perl befolgt, aber ich kann aus meinem /home/*/Website verzeichnis keine .pl skripte ausfuehren, stattdessen bietet mir firefox an sie downzuloaden und ich hab keinen plan warum. Ansonsten funktioniert Perl wunderbar.

Was mach ich falsch? Was fuer Informationen ausser die .conf braucht ihr?

Vielen vielen Dank fuer Hilfe

Kai

```

<IfDefine PERL>

  <IfModule !mod_perl.c>

    LoadModule perl_module    modules/mod_perl.so

  </IfModule>

</IfDefine>

<IfModule mod_perl.c>

    #PerlTrace all

    PerlRequire "/etc/apache2/modules.d/apache2-mod_perl-startup.pl"

    #Provide two aliases to the same cgi-bin directory,

    #to see the effects of the 2 different mod_perl modes

    #for Apache2::Registry Mode

    Alias /perl/ /var/www/localhost/perl/

    #for Apache2::Perlrun Mode

#   Alias /cgi-perl/ /var/www/localhost/perl/

    <IfModule mod_access.c>

        <Location /perl-status>

            SetHandler perl-script

            PerlResponseHandler Apache2::Status

            Order deny,allow

            Deny from all

            Allow from 127.0.0.1

        </Location>

    </IfModule>

    PerlModule ModPerl::Registry

    #set Apache::Registry Mode for /perl Alias

    # To set subdirectories to use perl set the following 

    # and comment the orignial:

    # <Location ~ "^/perl/.*\.pl$">

    <Location  "^/perl/*.pl>

        SetHandler perl-script

        PerlResponseHandler ModPerl::Registry

        Options -Indexes ExecCGI

        PerlSendHeader On

    </Location>

    #set Apache::PerlRun Mode for /cgi-perl Alias

#    <Location /cgi-perl/*.pl>

#        SetHandler perl-script

#        PerlResponseHandler ModPerl::PerlRun

#        Options -Indexes ExecCGI

#        PerlSendHeader On

#    </Location>

    <Files ~ "\.pl$">

        SetHandler perl-script

        PerlHandler ModPerl::PerlRun

        Options ExecCGI

        PerlSendHeader On

    </Files>

</ifModule>
```

Last edited by Kai Gillmann on Fri Aug 03, 2007 6:18 pm; edited 2 times in total

----------

## ian!

Räume doch mal die Config auf, dann ist sie auch nicht so Fehleranfällig:

```
<IfDefine PERL>

  <IfModule !mod_perl.c>

    LoadModule perl_module    modules/mod_perl.so

  </IfModule>

</IfDefine>

PerlRequire "/etc/apache2/modules.d/apache2-mod_perl-startup.pl"

PerlModule ModPerl::Registry

<Files ~ "\.pl$">

    SetHandler perl-script

    PerlHandler ModPerl::PerlRun

    Options ExecCGI

    PerlSendHeader On

</Files>
```

Sollte reichen. Dann den Apachen neustarten.

----------

## Kai Gillmann

Hab ihn mal mit deiner Config gefuettert, funktioniert einwandfrei aber wenn ich nen perl skript ausfuehren moechte wie vorher kann ich es nur runterladen   :Mad: 

----------

## XMath

Namd,

das weisst auf einen Fehler in der Config hin. 

Schau dir mal die log-Datei in /var/log... an. Da steht mehr dazu.   :Wink: 

Ich hab z.B. letzten einfach mal ein "," vergessen.

----------

## Kai Gillmann

Hi.

Danke fuer den Tipp, ich hab zwar in die logs geschaut aber nur nach Fehlern von apache gesucht.

beim zweiten blick fand ich einen eintrag

```
[Mon Jul 30 21:20:30 2007] [error] [client 127.0.0.1] malformed header from script. Bad header=hello: perltest.pl, referer: http://...
```

Dass ich headers selber senden muss haette ich mir bei der einstellung

```
PerlSendHeader On
```

 in der perl.conf selber denken koennen. zumindest denke ich mir dass dieser dafuer ist.

ausserdem waere es logisch gewesen daran zu denken, immerhin sendet php sie auch selber.

aber es funktioniert und vielen dank und schoenes wochenende

kai

----------

