Schrift
[thread]3163[/thread]

mod_perl API nicht installiert?: Can't call method send_http_header



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Kai_Bartholome
 2005-10-29 05:34
#31206 #31206
User since
2005-10-29
5 Artikel
BenutzerIn
[default_avatar]
Hi,
habe mit einen neuen Virtuellen Server bei Hosteurope gemietet. Jetzt möchte ich dort natürlich auch CGI-Scripts ausführen, jedoch bekomme ich jedesmal wenn ichauf die mod_perl 1.x API zugreifen möchte folgende Fehlermeldung:
Can't call method "beliebige Funktion" on an undefined value.
Ein Beispielscript hierfür lautet:
Code: (dl )
1
2
3
my $r = shift;
$r->send_http_header('text/plain');
$r->print("mod_perl rules!\n");

In anderen Foren sagte man mir ich hätte mod_perl nicht installiert, was allerdings der Fall ist. Sowohl eine Anfrage an den Apache als auch der PHP Befehl
Code: (dl )
1
2
3
<?php
echo phpinfo(); //Siehe Absatz "Apache"
?>
geben mir aus, dass dieses Modul installiert ist. Und darin ist doch auch die API installiert, die mir diese Befehle zur Verfügung stellt, oder?
Ach so, die Apache 1.x-Configuration für PL Dateien:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
<Directory /home/httpd/vhosts/meinedomain.de/httpdocs>
<IfModule mod_perl.c>
<Files ~ (\.pl$)>
SetHandler perl-script
PerlHandler ModPerl::Registry
Options ExecCGI
allow from all
PerlSendHeader On
</Files>
</IfModule>
.........


Würde mich über Hilfe sehr freuen.
GwenDragon
 2005-10-29 13:42
#31207 #31207
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
1. Hast du kein perl_startup.pl Skript?

2.
Code: (dl )
1
2
3
4
5
6
7
<Files ~ (\.pl$)>
SetHandler perl-script
PerlHandler Apache::Registry
Options +ExecCGI
allow from all
PerlSendHeader On
</Files>
\n\n

<!--EDIT|GwenDragon|1130579562-->
Kai_Bartholome
 2005-10-29 20:24
#31208 #31208
User since
2005-10-29
5 Artikel
BenutzerIn
[default_avatar]
Doch hab ich. Was bewirkt genau das + vor dem Exec?

Was genau muss in dem startup stehen?
Mein Startup ist über 500 Zeilen lang, deswegen was genau wird benötigt. ??

Aber schonmal danke für die Info!
Probier ich sofort aus!
GwenDragon
 2005-10-29 20:32
#31209 #31209
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Hast du schon mal die Konfiguration per Shell mit apacheectrl getestet?

Was steht denn im Serverlog?
renee
 2005-10-30 13:19
#31210 #31210
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
das + fuegt die Option hinzu, ein - bewirkt das Gegenteil... Wird haeufig verwendet, wenn man die Grundeinstellung des uebergeordneten Ordners abaendern will...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Kai_Bartholome
 2005-10-30 17:03
#31211 #31211
User since
2005-10-29
5 Artikel
BenutzerIn
[default_avatar]
apache2ctl -l sagt mir:
Code: (dl )
1
2
3
4
5
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c

Ist denk ich nicht das was man braucht.
apache2ctl -l sagt mir:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
Server compiled with.....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLELISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D HTTPD_ROOT="/srv/www"
-D SUEXEC_BIN="usr/sbin/suexec2/
es folgend die Logfiles und serverconfigfiles

Auch net das was wirklich über Apache Api Auskunft gibt
Führe ich den Befehl apache2ctl -L >test.txt aus und schaue mir an was er ausgibt, so fällt auf, dass dort keinerlei Module auftauchen. Weder mod_perl noch andere. Soviel erstmal zum Apache.
Meine mod_perl-startup.pl (Sorry ist doch net solang hatte mich mit der serverstartdatei vertan *war schon seeehr spät*)
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$ENV{GATEWAY_INTERFACE} =~ /^CGI-Perl/ or die "GATEWAY_INTERFACE not Perl!";

use Apache2 ();

use lib qw(/srv/www/perl-lib);
use lib qw(/home/httpd/vhosts/nrw-live.de/httpdocs/perl-lib);

# enable if the mod_perl 1.0 compatibility is needed
# use Apache::compat ();

use ModPerl::Util (); #for CORE::GLOBAL::exit

use Apache::RequestRec ();
use Apache::RequestIO ();
use Apache::RequestUtil ();

use Apache::Server ();
use Apache::ServerUtil ();
use Apache::Connection ();
use Apache::Log ();

use APR::Table ();

use ModPerl::Registry ();

use Apache::Const -compile => ':common';
use APR::Const -compile => ':common';


Der Versuch mit dem +ExecGGI hat leider nich geklappt, weiterhin Interner Server Error. Apache-LogFile Infos finde ich nur die gleich Fehlermeldung wie obe beschrieben.
Im Error_LOG steht folgendes:
Code: (dl )
[Sun Oct 30 16:11:57 2005] [error] 7443: ModPerl::Registry: Can't locate object method "send_http_header" via package "Apache::RequestRec" at /home/httpd/vhosts/hiddendomain.bsp/httpdocs/test/hello.pl line 7.\n


Gruß Kai\n\n

<!--EDIT|Kai_Bartholome|1130685918-->
Kai_Bartholome
 2005-10-30 17:05
#31212 #31212
User since
2005-10-29
5 Artikel
BenutzerIn
[default_avatar]
Nachtrag von Kai Bartholome: Ich habe mal die startup.pl über die Command-Line ausgeführt, wie sie ja beim starten des Servers auch ausgeführt wird: Resultat:
Die Error-Routine greift und zeigt mir an:
Code: (dl )
GATEWAY_INTERFACE not Perl!"; @ line 2

Ist das die Lösung des Problems? Enfach nur die mod_perl startup ans laufen bringen? :(
Kai_Bartholome
 2005-10-30 17:16
#31213 #31213
User since
2005-10-29
5 Artikel
BenutzerIn
[default_avatar]
Habe gegoogelt. Folgendes dazu gefunden:
Quote
$ENV{GATEWAY_INTERFACE} =~ /^CGI-Perl/ or die "GATEWAY_INTERFACE not Perl!";
ersetzen durch:
$ENV{GATEWAY_INTERFACE} =~ /^CGI-Perl/ or die "GATEWAY_INTERFACE not
Perl!";

Dann solles laufen. A-Karte. Result: GATE_INTERFACE not Perl. Langsam bin ich mir nicht mehr sicher ob die Freaks von Hosteurope wirkllich Mod_Perl instlliert haben, bzw korrekt.
Obwohl sonst würde doch ein normaler "hello World" script in Perl auch net laufen oder?
Dubu
 2005-10-30 20:36
#31214 #31214
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Hast du jetzt eigentlich Apache 1.x oder 2.x? Oben schreibst du zwar von der Config fuer Apache 1, aber dann rufst du apache2ctl auf ...
GwenDragon
 2005-10-31 10:28
#31215 #31215
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Du solltest mal klären, ob ein Apache 1.x oder 2.x-Server läuft, ob du modperl für 1.x oder 2.x benutzt.
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2005-10-29 05:34.