ubuntuusers.de

Perl unter Apache

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Christofer

Avatar von Christofer

Anmeldungsdatum:
2. Februar 2007

Beiträge: 185

Hallo Community,

Googeln half nicht wirklich. Auch das gute Wiki hier zu Apache nicht, denn zu dem Thema Perl mit Apache schweigt es sich aus.
Ich habe auf meinem Ubuntu Server 8.04 LTS Apache 2.2.8 sowie Perl 5.8.8 installiert. Ich brauche Perl für das Cronbackup des sehr guten Backuptools "mysqldumper".
Da er bisher die Perl-Dateien zum Download anbietet ist der Perl-Mod in Apache nicht installiert. So wie es aussieht braucht man für den Apache ein spezielles Modul.
Ein Blick in den Ordner /etc/apache2/mods-available zeigte das sich dort kein Modul für Perl befindet. Ein "aptitude show mod_perl" brachte nur das das Modul nicht existiert, welches dafür zuständig sein soll.
Es stellt sich also die Frage wie das Modul für den Ubuntu Server, Apache heißt und wie man das in der apache2.conf aktiviert.
Kann mir das jemand verraten?
Und wenn ja, wäre es hilfreich das Wiki um den Punkt Perl-Modul zu erweitern, ich denke das ist nicht so selten.

Danke!

philonous

Avatar von philonous

Anmeldungsdatum:
2. Januar 2007

Beiträge: 290

Wohnort: München

Hi,

unter Debian ist es das Paket

libapache2-mod-perl2 - Integration of perl with the Apache2 web server

Unter Ubuntu 8.04 scheint das auch so zu sein. http://packages.ubuntu.com/hardy/libapache2-mod-perl2

Ob du das Modul noch extra in der config aktivieren musst, weiß ich nicht. Ein Neustart des Server müsste aber - denk ich - bereits ausreichen.

Gruß,
Stefan

nschmid

Anmeldungsdatum:
26. Juni 2006

Beiträge: 44

Wohnort: Zürich

Willst du denn das Ganze mit mod_perl oder mit CGI bertreiben? Imo ist CGI wesentlich einfacher aber es halt recht schlechte performance.

Ansonsten wuerd ich mal PerlRun verwenden. Damit klappt es auch meist auf Anhieb.
http://perl.apache.org/docs/1.0/api/Apache/PerlRun.html

LG
Nathan

Christofer

(Themenstarter)
Avatar von Christofer

Anmeldungsdatum:
2. Februar 2007

Beiträge: 185

@philonous

ah ja, das Modul "libapache2-mod-perl2" ist schon mal korrekt. Eine Aktivierung scheint aber nötig zu sein.
Im Verzeichnis /etc/apache2/mods-enabled wird das Modul über die Datei "perl.load" geladen. Es fehlt aber anscheinend die Datei "perl.conf".
Für PHP sind dort beide Dateien vorhanden (php5.conf und php5.load). in der Datei php5.conf steht der aus apache 1.3/2.0.x bekannte Zweizeiler zur Aktivierung drin:

AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps

Ich nehme mal an für Perl funktioniert das analog zu PHP. Jetzt müsste man nur noch wissen was normalerweise in der Datei perl.conf drin steht, dann könnte es funktionieren.

@nschmid

Also der mod soll bis zu 400 % Leistungssteigerung gegenüber cgi bringen, also dann wäre es sinnvoll den zu nehmen. PerlRun wäre evtl. eine Alternative, aber es muss ja auch über die perl.conf gehen.

nschmid

Anmeldungsdatum:
26. Juni 2006

Beiträge: 44

Wohnort: Zürich

wo du das reinschreibst ist eigentlich ziemlich egal. Es braucht keine eigene Konfigurationsdatei: du kannst das auch bei den available sites konfigurieren.
Schau dir mal die mod_perl Dokumentation genau an. mod_perl ist nicht so plug and play wie mod_php oder mod_python. Die volle Performance kriegst du mit Apache::Registry aber da musst du dann deine Skripte entsprechend anpassen was nicht mal soooo einfach ist. Der Hauptunterschied ist dass die Skripte im RAM gehalten werden und so auch die Symbole die du da verwendest was dann zu "redefined symbol" Meldungen etc. führt. Siehe auch Apache::Symbol.

Bei bestehenden Skripten würde ich PerlRun nehmen. Neue anstatt mit CGI direkt mit den Apache Modulen entwickeln. Da kommt es halt drauf an was du willst.

LG
Nathan

Antworten |