Bugzilla installieren?

shor

Active Member
Hallo!

Ich würde gerne Bugzilla installieren :) Hab mir das entsprechende tar gezogen, entpackt und in /var/www/htdocs reingelinkt. Danach per
Code:
./checksetup.pl --check-modules
gecheckt, welche Module er den noch gerne hätte und schön die benötigten Perl-Module per pkg_add (bzw. über das perl Kommando, wenn es kein package gab) installiert. Wenn ich jetzt auf die Seite gehe bekomme ich einen "Internal Server Error". Das error_log orakelt folgendes:

Code:
[Tue Oct 14 12:26:28 2008] [error] (2)No such file or directory: exec of /htdocs/bugzilla/index.cgi failed
[Tue Oct 14 12:26:28 2008] [error] [client 47.11.08.15] Premature end of script headers: /htdocs/bugzilla/index.cgi

Ich habe ein bisschen recherchiert und denke es liegt wohl daran, dass der Apache chrooted ist und das sich wohl mit Perl beißt.
Deswegen habe ich folgendes Verzeichnis erstellt: /var/www/usr/local/libdata/perl5/ und habe da per cp -R alles aus /usr/local/libdata/perl5/site_perl/ reinkopiert.

Hat aber leider nicht geholfen :(

Wäre froh, wenn jemand ein paar Anhaltspunkte hat, was ich tun kann...

Gruß und Dankeschön,
shor
 
1. welche Version von OpenBSD?
2. schon mal ohne chroot probiert?
3. wie wärs mit mod_perl? das soll auch in chroot funktionieren ohne was da rumzukopieren.
 
Hallo zusammen!

Das ist OpenBSD4.3. Eigentlich wollte ich den chroot schon belassen, da er ja meines Wissens schon einen gewissen Sicherheitsgewinn darstellt.
Ich mach mich mal schlau bzgl. mod_perl!

Danke! Gruß,
shor
 
Es ging mir nicht darum, dass du apache ohne chroot laufen lässt, sondern darum, ob es überhaupt funktioniert, wenn chroot ausgeschaltet ist...
 
Hab ihn eben noch mal gecheckt - ich kann ihn aufrufen. Wenn es bei Dir nicht geht, dann hier einmal zusammengefasst die Befehle, um Perl im chroot ans Laufen zu bekommen:
Code:
# mkdir -p /var/www/usr/bin
# cp /usr/bin/perl /var/www/usr/bin/
# cp /usr/bin/perl5.* /var/www/usr/bin/
# cp /usr/lib/libssl.so.* /var/www/usr/lib
# cp /usr/lib/libcrypto.so.* /var/www/usr/lib
# cp /usr/lib/libperl.so.* /var/www/usr/lib/
# cp /usr/lib/libutil.so.* /var/www/usr/lib/
# cp /usr/lib/libm.so.* /var/www/usr/lib/
# cp /usr/lib/libc.so.* /var/www/usr/lib/
# cp /usr/libexec/ld.so /var/www/usr/libexec/
# mkdir -p /var/www/usr/share
# cp -R /usr/share/nls /var/www/usr/share
# mkdir -p /var/www/etc
# cp /etc/resolv.conf /var/www/etc/
# cp /etc/services /var/www/etc/
# mkdir -p /var/www/usr/libdata /var/www/usr/local
# cp -R /usr/lib/Apache /var/www/usr/lib/
# cp -R /usr/libdata/perl5 /var/www/usr/libdata/
# mkdir -p /var/www/usr/local/libdata
# cp -R /usr/local/libdata/perl5 /var/www/usr/local/libdata/
# mkdir -p /var/www/usr/share
# cp -R /usr/share/zoneinfo /var/www/usr/share/
Keine Gewähr, aber so in etwa hab ich's mal ans laufen bekommen. Hier noch ein kleines CGI Test-Skript - wenn Du damit die Verzeichnisse innerhalb der Chroot-Umgebung aufgelistet bekommst, hat alles funktioniert:
PHP:
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
opendir(DIRHANDLE, "/");
@filenames = readdir(DIRHANDLE);
foreach $file (@filenames) { print "$file\n"; }
closedir(DIRHANDLE);
P. S. bin mir nicht sicher, ob wirklich alle o. g. Dateien im chroot benötigt werden. Ein Teil davon war AFAIR nur dazu da, um die NET:: Module ans laufen zu bekommen.
 
Also prinzipiell würde ich die Lösung mit mod_perl bevorzugen (da es angeblich schneller ist), allerdings hat das nicht wirklich funktioniert:

Ich habe zuerst versucht per pkg_add mod_perl das package zu installieren. Wenn ich das Bugzilla check-Skript laufen lasse meldet er aber immer noch, dass mod_perl2 fehlt. Zugegeben, das package sieht auch nach mod_perl(1) aus.

Also habe ich versucht wie vom Bugzilla check-Skript vorgeschlagen mod_perl2 per perl -MCPAN -e 'install "mod_perl2"' zu installieren.
Das ganze legt dann auch fröhlich los bis zu dieser Stelle hier:
Code:
Please provide a full path to 'apxs' executable
(press Enter if you don't have it installed):  /usr/sbin/apxs


[  error] Unable to open /usr/lib/apache/include/ap_release.h: No such file or directory
[  error] Unable to determine server version, aborting.
[  error] Invalid MP_APXS specified?
Running make test
  Make had some problems, maybe interrupted? Won't test
Running make install
  Make had some problems, maybe interrupted? Won't install

Das file ap_release.h existiert auch tatsächlich nicht an dieser Stelle. Googeln hat mich auch nicht weitergebracht - Benutze ich evtl. die falsche Apache Version? (Habe die bei OpenBSD 4.3 standardmäßig mitgelieferte bisher laufen lassen)



Danach habe ich es mal mit der Methode von Ogion probiert (Danke an dieser Stelle für das Kopieren der Befehle - ich kann die Seite immer noch nicht erreichen... seltsam). Perl scheint dann prinzipiell zu funktionieren, nur leider fehlen wohl irgendwelche shl für mysql:

Code:
install_driver(mysql) failed: Can't load '/usr/local/libdata/perl5/site_perl/i386-openbsd/auto/DBD/mysql/mysql.so' for module DBD::mysql: Cannot load specified object at /usr/libdata/perl5/i386-openbsd/5.8.8/DynaLoader.pm line 230.
 at (eval 32) line 3
Compilation failed in require at (eval 32) line 3.
Perhaps a required shared library or dll isn't installed where expected
 at Bugzilla/DB.pm line 904

Wie finde ich da raus welche shl er jetzt denn gerne hätte?

Grüße und vielen Dank :-)
shor
 
Alles klar :) Mit Ogions Methode rennt das ganze nun. Habe noch per ldd /usr/local/libdata/perl5/site_perl/i386-openbsd/auto/DBD/mysql/mysql.so rausgefunden welche shl fehlen und diese nach /var/www in die entsprechenden Verzeichnisse kopiert.

Was könnte ich noch tun, um das ganze mit mod_perl zum laufen zu kriegen?

Gruß,
shor
 
Hmm. Also so ganz rund läuft das doch nicht. Es scheint wohl Probleme mit sendmail im chroot zu geben. Ich habe usr/sbin/sendmail und usr/sbin/mailwrapper und usr/libexec/sendmail/ in /var/www angelegt. Habe auch per ldd nach den benötigten Modulen gesucht und diese dort hin kopiert.
Danach gabs dann Gemeckere von wegen es würde die Files aus /etc/mail fehlen, die ich dann auch nach /var/www kopiert habe. Jetzt hängts an folgender Meldung:

Code:
/etc/mail/submit.cf: line 434: readcf: option RunAsUser: unknown user smmsp: No such file or directory /etc/mail/submit.cf: line 453: readcf: option TrustedUser: unknown user smmsp: No such file or directory

There was an error sending mail from 'bugzilla-daemon' to 'me@somewhere.de':error when closing pipe to /usr/sbin/sendmail

Gibts da eine bessere Möglichkeit das zu lösen bzw. was fehlt mir denn da noch?
Wäre das ganz mit Verwendung von mod_perl gelöst? (Ich vermute mal nicht - da sendmail ja eigentlich nichts mit Perl zu tun hat...)
 
Ah, bin gerade selbst drauf gekommen. Da gibts ein nettes Package namens mini_sendmail, das statisch gelinkt ist und aus dem chroot raus per smtp an sendmail weiterreicht. Das hats bei mir getan.

Bleibt nur noch mod_perl! ;)
 
Schlechte Nachrichten: Bugzilla benötigt mod_perl 1.999022 (AKA 2.0.0-RC5), welches nur mit Apache 2.x zusammenarbeitet.
 
Back
Top