PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl, DBI & SQLite



hippoth
02.02.11, 13:06
Hallo Leute,

ich versuche einen Datenbank-Connect mit Perl .... lange Rede kurzer Sinn:

Meine Config dazu sieht folgendermaßen aus:

<Location /redmine/webdav>
AuthType Basic
AuthName REDMINE
Require valid-user
PerlAccessHandler Apache::Authn::RedmineAdvanced::access_handler
PerlAuthenHandler Apache::Authn::RedmineAdvanced::authen_handler
RedmineDSN "DBI:SQLite:dbname=db/redmine.sqlite3"
RedmineAuthenticationOnly "On"
Order allow,deny
Allow from 127.0.0.1
Satisfy Any
</Location>


Ich scheitere hier mit folgender Meldung:

"Invalid command 'RedmineDSN', perhaps misspelled or defined by a module not included in the server configuration"

Ich habe alle benötigten Module installiert ("sudo apt-get install libapache-dbi-perl libapache2-mod-perl2 libdbd-sqlite3-perl"), daher vermute ich mal ist irgendwas an der Config falsch, oder?

In Zeile 7 beim Command RedmineDSN habe ich auch schon versucht die Datenbank mit vollem Pfad anzugeben aber nichts hilft.

Hat jemand eine vermutung woran ich scheitere?

marce
02.02.11, 13:09
Da fehlt Dir wohl ein Apache-Modul. Mit Perl an sich hat dass nichts zu tun.

hippoth
02.02.11, 13:54
Da fehlt Dir wohl ein Apache-Modul. Mit Perl an sich hat dass nichts zu tun.
Hast du eine Ahnung welches?

marce
02.02.11, 13:57
Nö - schau Dir aber mal http://www.redmine.org/projects/redmine/wiki/repositories_access_control_with_apache_mod_dav_sv n_and_mod_perl an, da ist eine Beispielconfig und ein paar Infos über PreReqs angegeben...

edit: evtl. liegt's an einer fehlenden PerlLoadModule Apache::Redmine-Anweisung

hippoth
02.02.11, 15:06
Nö - schau Dir aber mal http://www.redmine.org/projects/redmine/wiki/repositories_access_control_with_apache_mod_dav_sv n_and_mod_perl an, da ist eine Beispielconfig und ein paar Infos über PreReqs angegeben...

edit: evtl. liegt's an einer fehlenden PerlLoadModule Apache::Redmine-Anweisung
Genau, so sieht es wohl aus.

Wenn ich diese Anweisung noch hinzufüge, dann bekomme ich aber noch einen Fehler:

Can't locate Apache2/Authn/RedmineAdvanced.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl . /etc/apache2) at (eval 2) line 3.\n

Das Verzeichnis Apache2/Authn existiert bei mir aber nicht.

nopes
02.02.11, 15:54
Hallo,

naja die Meldung sagt dir ja, dass Perl das Modul nicht finden kann. Das eigenartige, man findet dieses Modul auch nicht im CPAN (http://search.cpan.org), was schonmal sehr ungewöhnlich ist. Angeblich wird hier erklärt was zu tun ist: http://www.redmine.org/projects/redmine/wiki/Repositories_access_control_with_apache_mod_dav_sv n_and_mod_perl


You first need to copy or link Redmine.pm to /usr/lib/perl5/Apache/Redmine.pm
Then add the following Location directives to your apache configuration (for example in /etc/APACHE_DIR/conf.d/):
Leider wird nirgendwo geschrieben, wo dieses PM liegen soll, aber danach kannst du ja suchen...
Es wird außerdem empfohlen diese Software zu installieren:

aptitude install libapache2-svn libapache-dbi-perl libapache2-mod-perl2 libdbd-mysql-perl libdigest-sha1-perl libauthen-simple-ldap-perl
Mutmaßlich - wegen dem authen im Namen - brauchst du noch bzw. enthält das Paket "libauthen-simple-ldap-perl" (CPAN (http://search.cpan.org/~chansen/Authen-Simple-LDAP-0.2/lib/Authen/Simple/LDAP.pm)) die notwendige PM Datei. Alternativ könnte auch das passen, da stimmt jedenfalls mal der Name (CPAN (http://search.cpan.org/~gugod/Net-Redmine-0.08/lib/Net/Redmine.pm))

Nachtrag, es reicht übrigens, wenn das PM irgendwo im @INC steht, also:
/etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl . /etc/apache2

hippoth
02.02.11, 16:28
Hallo,

naja die Meldung sagt dir ja, dass Perl das Modul nicht finden kann. Das eigenartige, man findet dieses Modul auch nicht im CPAN (http://search.cpan.org), was schonmal sehr ungewöhnlich ist. Angeblich wird hier erklärt was zu tun ist: http://www.redmine.org/projects/redmine/wiki/Repositories_access_control_with_apache_mod_dav_sv n_and_mod_perl

Leider wird nirgendwo geschrieben, wo dieses PM liegen soll, aber danach kannst du ja suchen...
Das Modul RedmineAdvanced.pm habe ich aber genau wie du sagst weiss ich auch nicht wo es hin soll. Ich finde leider aber auch via Google keinen Anhaltspunkt wo es hin soll.


Es wird außerdem empfohlen diese Software zu installieren:

aptitude install libapache2-svn libapache-dbi-perl libapache2-mod-perl2 libdbd-mysql-perl libdigest-sha1-perl libauthen-simple-ldap-perlDas ist alles schon installiert.


Mutmaßlich - wegen dem authen im Namen - brauchst du noch bzw. enthält das Paket "libauthen-simple-ldap-perl" (CPAN (http://search.cpan.org/~chansen/Authen-Simple-LDAP-0.2/lib/Authen/Simple/LDAP.pm)) die notwendige PM Datei. Alternativ könnte auch das passen, da stimmt jedenfalls mal der Name (CPAN (http://search.cpan.org/~gugod/Net-Redmine-0.08/lib/Net/Redmine.pm))
Die Redmine.pm hab ich auch schon, genau wie das Paket.


Nachtrag, es reicht übrigens, wenn das PM irgendwo im @INC steht, also:
Das PM befindet sich inzwischen in folgenden Ordnern:

/usr/lib/perl5/Apache2/RedmineAdvanced.pm
/usr/lib/perl5/RedmineAdvanced.pm
/var/www/redmine-1.0.4/vendor/plugins/redmine_webdav/extra/svn/RedmineAdvanced.pm


Ich weiss nicht wo das Teil noch hin soll.

edit:

jetzt auch in folgenden Ordnern:

/usr/share/perl/5.10.1/RedmineAdvanced.pm
/usr/share/perl5/RedmineAdvanced.pm
/usr/lib/perl/5.10.1/RedmineAdvanced.pm
/usr/lib/perl5/Apache2/RedmineAdvanced.pm
/usr/lib/perl5/RedmineAdvanced.pm
/var/www/redmine-1.0.4/vendor/plugins/redmine_webdav/extra/svn/RedmineAdvanced.pm
/etc/perl/RedmineAdvanced.pm

Aber ohne Erfolg :(

nopes
02.02.11, 17:41
Hi,

du musst auch auf die Unterverzeichnisse achten, Perl erwartet es in:

$INC[x]/Apache2/Authn/also z.B.
/usr/share/perl/5.10.1/Apache2/Authn/
Falls da noch andere Dateien im Quellordner sind, kopiere die mit dahin (und ggf. auch mal prüfen, ob Perl die überhaupt lesendarf bzw. chmod o+r o.ä.).

hippoth
02.02.11, 17:58
Hi,

du musst auch auf die Unterverzeichnisse achten, Perl erwartet es in:
$INC[x]/Apache2/Authn/, also z.B. /usr/share/perl/5.10.1/Apache2/Authn/
Falls da noch andere Dateien im Quellordner sind, kopiere die mit dahin (und ggf. auch mal prüfen, ob Perl die überhaupt lesendarf bzw. chmod o+r o.ä.).
Hey nopes, das war ein sehr guter Hinweis, da hätte ich auch mal selber drauf kommen können, dass ich dort vielleicht ein Unterverzeichnis noch anlegen sollte.

Ich habe das PM jetzt in
/usr/share/perl/5.10/Apache2/Authn/RedmineAdvanced.pm

Das bringt mich dann aber zur nächsten Fehlermeldung:

Syntax error on line 1 of /etc/apache2/conf.d/redmine_webdav.conf:
Unterminated <> operator at /usr/share/perl/5.10/Apache2/Authn/RedmineAdvanced.pm line 6.\nCompilation failed in require at (eval 2) line 3.\n

Ich verliere noch alle Haare an dieser Authentifikation :ugly:

nopes
02.02.11, 18:27
hi,

Hey nopes, das war ein sehr guter Hinweis, da hätte ich auch mal selber drauf kommen können, dass ich dort vielleicht ein Unterverzeichnis noch anlegen sollte.
Kein Thema, sowas überlese ich auch immer, stand ja in der Fehlermeldung ;)...

Wegen der Config:
Spontant sehe ich nichts was da nicht passen würde (ist die gepostete 1. Zeile der conf==lokale conf 1. Zeile?)
Ansonsten mal posten, wenn es so ist füge mal noch einen "/" ein, also

<Location /redmine/webdav/>
...
</Location>

hippoth
02.02.11, 18:45
hi,

Kein Thema, sowas überlese ich auch immer, stand ja in der Fehlermeldung ;)...

Wegen der Config:
Spontant sehe ich nichts was da nicht passen würde (ist die gepostete 1. Zeile der conf==lokale conf 1. Zeile?)
Ansonsten mal posten, wenn es so ist füge mal noch einen "/" ein, also

<Location /redmine/webdav/>
...
</Location>
Oh ich habe was vergessen ...

Ich habe die Config um eine Zeile erweitert:

PerlLoadModule Apache2::Authn::RedmineAdvanced

Die Meldung kommt also aus dieser Zeile. Ich vermute das hat was mit dem Inhalt der "RedmineAdvanced.pm" zu tun.

nopes
02.02.11, 19:07
Hi,


Unterminated <> operator at /usr/share/perl/5.10/Apache2/Authn/RedmineAdvanced.pm line 6.\nCompilation failed in require at (eval 2) line 3.\n


ups, wie war das noch mit dem lesen der Fehler :D, schau mal was in Zeile 6 der besagten Datei passiert, da liegt jedenfalls der Fehler....

hippoth
02.02.11, 19:35
Hi,



ups, wie war das noch mit dem lesen der Fehler :D, schau mal was in Zeile 6 der besagten Datei passiert, da liegt jedenfalls der Fehler....
Ja, ich habe mir die Datei jetzt nochmal angeschaut und mit der vergleichen:

https://github.com/amartel/redmine_webdav/blob/master/extra/svn/RedmineAdvanced.pm

Da stand was völlig anderes drin. :eek:

Ich kann es mir nur so erklären, dass es vom Browser interpretiert wurde als ich ein "Save As" gemacht habe. Über den Server lies es sich nämlich nicht direkt runterladen, warum auch immer!?

Prima, der Apache läuft nun wieder. Aber ich habe damit jetzt eine neue Baustelle.

Ich danke dir für deine Hilfe und Geduld!! :)

nopes
02.02.11, 21:27
kein Thema gern geschehen...