Willkommen im kivitendo Forum! Hier erweitern und teilen AnwenderInnen und EntwicklerInnen ihr Wissen.

Teste kivitendo!

kivitendo Demo

kivitendo Demo mit Schweizer Kontenplan und neuem Layout

Unterstützt kivitendo mit der Basis-Subskription!

0 Punkte

Hallo,

ich kaempfe mich grad durch die Installation von kivitendo-erp-3.0.0 auf einem Suse12.1-System.

Nach einigen Anlaufschwierigkeiten mit perl (ich musste das repo http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_12.1/ ergaenzen und die Anweisung
cpan Rose::Db::Object lief auch nicht rund...mit ::DB:: deutlich besser) laeuft der Test mit
./scripts/installation_check.pl -v
fehlerfrei durch. Apache2 startet ohne Fehlermeldung (nur mit cgi, hab mich noch nicht an fcgi gewagt). Postgresql ist m.E. auch ok, die language plpgsql existierte bereits, das template1 mit utf8 ebenfalls. An dieser Stelle muesste man doch die Authentifizierungs-DB anlegen koennen?

Wenn ich mich per browser einlogge erscheint eine Meldung

Die Authentifizierungs-Datenbank kann momentan nicht erreicht werden.
Entweder wurde sie noch nicht eingerichtet, oder der Datenbankserver
ist momentan nicht verfügbar. Bitte wenden Sie sich an Ihren
Administrator.

Wenn Sie die Authentifizierungs-Datenbank selber einrichten wollen, so
melden Sie sich im Administrationsbereich an. kivitendo wird dann die
Datenbank und die erforderlichen Tabellen für Sie anlegen.

und darunter ein Link auf http://lianli1/kivitendo-erp-3.0.0/admin.pl

Wenn ich dem Link folge, werde ich zum Oeffnen/Download der admin.pl aufgefordert.
Die beiden Scripte login.pl und admin.pl sind aber identisch...wieso ist die Reaktion so unterschiedlich?

lrwxrwxrwx 1 wwwrun www 8 Dec 10 11:36 login.pl -> admin.pl
-rwxrwxr-x 1 wwwrun www 156 Dec 10 11:36 admin.pl

Von der Kommandozeile gestartet bekomme ich nur die Fehlermeldung
fileparse(): need a valid pathname at SL/Dispatcher.pm line 201

An symlinks, Rechten oder CGI-settings von Apache duerfte es nicht liegen, weil dasselbe File
als login.pl ja ausgefuehrt wurde...ich bin ratlos. Hab es sowohl im LAN als auch lokal an der Maschine probiert, auf der apache und postgresql laufen - kein Unterschied.

In der kivitendo.conf (aus der .default erzeugt) steht noch der user postgres drin. Das admin_password hab ich geaendert, aber ich denke, bisher komme ich noch gar nicht an die Stelle, wo es gebraucht wird. Habe dort unter [debug] auch mal
global_level = ALL
gesetzt. Beim Aufruf von admin.pl passiert im logfile aber gar nichts, waehrend bei login.pl
u.a. die Meldung

WARNING: DBI
connect('dbname=kivitendo_auth;host=localhost;port=5432','postgres',...)
failed: FATAL: Ident authentication failed for user "postgres" at
/srv/www/htdocs/kivitendo-erp-3.0.0/SL/DBConnect.pm line 10

erscheint.Das passt zur ausgegebenen Fehlermeldung, hilft also nicht weiter?

Hat jemand eine Idee?
Wie/wo kann ich jetzt noch debuggen?
Kann ich die Authentifizierungs-Datenbank ggfs. manuell einrichten, falls es nur da klemmt?

danke & viele Gruesse
Guenter

von
wieder getaggt von

1 Antwort

0 Punkte

Wenn ich dem Link folge, werde ich zum Oeffnen/Download der admin.pl aufgefordert.

das liegt an der apache config

https://forum.kivitendo.de/931/admin-pl-wird-zum-download-angeboten#932
https://demo.kivitendo.de/beta/doc/html/ch02s06.html

wenn admin.pl geht, legt es Dir auch die auth db an

von (18.0k Punkte)

Hallo Wolf,

danke fuer den Hinweis!

Die Seiten hatte ich schon vorher gesehen, kam aber damit nicht weiter.
Die Loesung war trotzdem darin versteckt, ziemlich gut sogar:
Es lag nicht an der apache config, sondern an einer falschen URL im Browser.

Im Detail:
Aus dem Codeschnipsel in ch02s06.html wurde bei mir:

Alias /kivitendo-erp/ /srv/www/htdocs/kivitendo-erp-3.0.0/

<Directory /srv/www/htdocs/kivitendo-erp-3.0.0>
  Options +ExecCGI +Includes +FollowSymlinks
</Directory>

<Directory /srv/www/htdocs/kivitendo-erp-3.0.0/users>
 Order Deny,Allow
 Deny from All
</Directory>

Den Nutzen der Alias-Zeile hatte ich allerdings bis dahin nicht verstanden - denn /kivitendo-erp/ wird in den Config-Dateien nicht verwendet. Der Alias bezieht sich offenbar auf die URL-Namen...

Mein Fehler war der:
ich habe als URL den echten Pfadnamen verwendet, also wurde

http://lianli1/kivitendo-erp-3.0.0/admin.pl

anstatt

http://lianli1/kivitendo-erp/admin.pl

geladen. Waehrend der Aufruf von login.pl mit beiden URL-Pfaden funktioniert, gelingt der Aufruf von admin.pl nur im zweiten Fall (mit dem Alias-Namen). Verstehen tue ich das allerdings nicht, denn ein Alias ist eigentlich nur ein moeglicher zweiter Name?!

besten Dank!
Guenter

Waehrend der Aufruf von login.pl mit beiden URL-Pfaden funktioniert, gelingt der Aufruf von admin.pl nur im zweiten Fall

das deutet auf ne unsauber Apache-Config.
Ueberlege Dir, welche url-basis du verwenden willst und entscheide Dich fuer eine. kivitendo

mach Dir mal folgende Begriffe klar:

  • url -> die Zeile die Du im Brauser aufrufst: http://lianli1/kivitendo-erp/admin.pl
  • location -> eine Pfadangabe der url, relativ zum server-root: /kivitendo-erp/admin.pl
  • directory -> eine Pfadangabe auf dem Serversystem: /srv/www/htdocs/kivitendo-erp-3.0.0/

location und directory sind dann context-Abschnitte in der apache Konfiguration

`<location /foo/bar/ >`
`</location>`

`<directory /srv/htdocs/foo/bar >`
`</directory>`

ein Alias bedeutet:
Alias /foo/bar /srv/htdocs/foo/bar/
die location foo/bar/ verweisst auf Pfad /srv/htdocs/foo/bar
also wird ausgeliefert bei
http://lianli1/foo/bar/bild.png
die Datei
/srv/htdocs/foo/bar/bild.png

da gibt es dann noch AliasMatch, ScriptAlias etc aber das sind dann nur Varianten.

wichtig ist bei Alias immer, das der "tiefste zu erst genannt wird", da die der Reihe nach abgearbeitet werden.

richtig:
Alias /foo/bar/bilder /srv/htdocs/foo/bar/bilder/
Alias /foo/ /srv/sonstwo/

falsch:
Alias /foo/ /srv/sonstwo/
Alias /foo/bar/bilder /srv/htdocs/foo/bar/bilder/
(der 2. wuerde nie greifen)

sehr maechtiges Werkzeug (mit einem scharfen Messer kann man sich aber auch in den Finger schneiden). So kann man z.B. mit einer Zeile in der Apache-Config das lx-office.css fuer admin.pl und die Loginmaske aktivieren, ohne die Anwendung patchen zu muessen:

`Alias /kivitendo-erp/css/kivitendo /srv/www/htdocs/kivitendo-erp-3.0.0/css/lx-office-erp/`
(natuerlich ohne Umbruch - codebeispiele umbrechen tztztz ...)
 muss natuerlich als oberster alias stehen, um nicht von den anderen ausgehebelt zu werden
 und kivitendo.css wird immer als lx-office-css ausgegeben, auch wenn ein Nutzer das eingestellt hat.

http://httpd.apache.org/docs/2.2/mod/mod_alias.html
Damit sollte sich ein bisschen der Nebel Lichten.

...