DAViCal

Hallo,
Ich habe mir DAViCal installiert, soweit scheint auch alles geklappt zu haben, ich bekomme die Konfigurationsoberfläche jedenfalls im Webbrowser angezeigt.
Nur das mit den Datenbankzugriffen will nicht funktionieren. Sprich DAViCal kann keine Daten in seine Datenbank speichern. Irgendwo scheint es Probleme mit den Rechten zu geben. Gängige Fehlermeldung wenn ich versuche die Datenbank neu zu erstellen ist:
could not change directory to “/root”

Bzw. nach einigen Versuchen das Problem zu lösen ist nun gar kein Datenbankzugriff mehr möglich.

Das Netz ist voll von Anleitungen für Debian und Ubuntu. Nur mal wieder für Suse gibt es keine brauchbare Anleitung, geschweige denn fertige Pakete, die das System auch gleich richtig konfigurieren. :frowning:

Die einzelnen Infos die ich im deutschsprachigen Netz auftreiben konnte sowie die knappen Infos im DAViCal-Wiki haben mir leider nichts gebracht.

Vielleicht hat es schon mal jemand hin bekommen DAViCal unter OpenSuse in Betrieb zu nehmen?

Savis wrote:
>geschweige denn
> fertige Pakete, die das System auch gleich richtig konfigurieren. :frowning:
>
Hier liegen doch die noarch rpms
http://debian.mcmillan.net.nz/packages/davical/
wird auch von der DAViCal Seite referenziert.
Im home obs von jengelh gibt es auch im Buildservice ein rpm das für
openSUSE als 1-click zur Verfügung steht.

Wo in dieser Beschreibung geht denn bei dir genau etwas schief?
http://www.davical.org/installation.php

Dass an irgendeiner Stelle etwas mit dem /root Verzeichnis vorkommt, wie ich
es deiner Fehlerbeschreibung entnehme deutet jedenfalls auf etwas grausamn
falsch eingestelltes hin.
Das home Verzeichnis von root spielt niemals für irgendein web-basiertes
System oder egal für welche Datenbankkonfiguration jemals eine Rolle.

Beschreibe mal deine Schritte, die du durchgeführt hast bis du an diesen
Punkt mit deiner Fehlermeldung beim Neuerstellen der DB kommst.


PC: oS 11.4 64 bit | Intel Core i7-2600@3.40GHz | KDE 4.6.0 | GeForce GT 420
| 16GB Ram
Eee PC 1201n: oS 11.4 64 bit | Intel Atom 330@1.60GHz | KDE 4.7.2 | nVidia
ION | 3GB Ram

Die Pakete habe ich von der, auch von dir genannten, Entwicklerseite installiert. http://debian.mcmillan.net.nz/packages/davical/
Leider wird damit nur DAViCal installiert, und nicht gleich auch die Umgebung an dessen Bedürfnisse angepasst.

Also ich bin wirklich Schritt für Schritt vorgegangen, erst “/var/lib/pgsql/data/pg_hba.conf” angepasst, da steht jetzt als allererstes in der Datei:
local localhost davical_app trust
local localhost davical_dba trust
local davical general trust
host rscds general 127.0.0.1/32 trust

Dann:

rcpostgresql restart

su postgres -c /usr/share/rscds/dba/create-database.sh

Und hier kommen dann jede Menge Fehlermeldungen:
could not change directory to “/root”

Mittlerweile gibt mein Apache auch nicht mehr die Konfigurationsseite aus, sondern nur noch ein:
Database Error
Could not connect to PostgreSQL database

Bevor ich jetzt noch ein paar mal versucht habe die Datenbank neu zu erstellen, war die Datenbank offensichtlich nur lesbar, denn die Konfigurationsoberfläche lies sich aufrufen ich konnte mich als admin einloggen und einen Benutzer anlegen. Dieser wurde zwar angelegt, es wurden jedoch weder Änderungen gespeichert, noch ließen sich Kalendereinträge an den Server schicken. Bzw. manchmal kam eine Fehlermeldung an KOrganizer zurück, aber auch wenn keine Fehlermeldung kam, war der Kalendereintrag danach nicht gespeichert.

Wenn du bis heute abend (kann spät werden) warten kannst spiele ich mir das
mal auf einer virtuellen Maschine durch.


PC: oS 11.4 64 bit | Intel Core i7-2600@3.40GHz | KDE 4.6.0 | GeForce GT 420
| 16GB Ram
Eee PC 1201n: oS 11.4 64 bit | Intel Atom 330@1.60GHz | KDE 4.7.2 | nVidia
ION | 3GB Ram

Ich sitz da schon seit Tagen dran, auf ein paar Stunden kommt es nicht an.
Wahrscheinlich liegt es an den Rechten für die Postgresql-Datenbank, oder der Einbindung dieser.
Oder ich habe irgendwo einen SUSEspezifischen entscheidenden Schritt vergessen, denn die Anleitung im Entwicklerwiki ist ja für Debian. Und die Ergänzungen für Suse scheinen mir nicht vollständig zu sein.

Füg doch mal ein - vor dem postgres ein bei deinem su Befehl (ohne das krieg
ich genau die gleiche Meldung, er wechselt dan nämlich nicht ins home von
postgres sondern bleibt im root Environment als postgres user)


su - postgres -c /usr/share/davical/dba/create-database.sh


Supported locales updated.
Updated view: dav_principal.sql applied.
CalDAV functions updated.
RRULE functions updated.
Database permissions updated.
NOTE
====
*  The password for the 'admin' user has been set to 'AgCMibXA'

Thanks for trying DAViCal!  Check in /usr/share/doc/davical/examples/ for
some configuration examples.  For help, visit #davical on irc.oftc.net.



Du musst ggf. die davical Datenbank vorher löschen, falls die trotz
fehlgeschlagenem Script angelegt wurde.


su postgres -c psql postgres
postgres=# drop database davical;
postgres=# \q


PC: oS 11.4 64 bit | Intel Core i7-2600@3.40GHz | KDE 4.6.0 | GeForce GT 420
| 16GB Ram
Eee PC 1201n: oS 11.4 64 bit | Intel Atom 330@1.60GHz | KDE 4.7.2 | nVidia
ION | 3GB Ram

Der Hinweis die alte db zu löschen und das Minuszeichen hinter su waren schon mal gar nicht so schlecht.
Aber irgendwo anders scheint trotzdem noch der Hund begraben zu sein.


linux:~ # su postgres -c psql postgres
could not change directory to "/root"
psql (9.0.3)
Type "help" for help.

postgres=# drop database davical;
DROP DATABASE
postgres=# \q

linux:~ # rcpostgresql restart
Shutting down PostgreSQL                                                                                   done
Starting PostgreSQL                                                                                        done

linux:~ # su - postgres -c /usr/share/davical/dba/create-database.sh
                                                                                                                      
                                                                                                                      
DBI connect('dbname=davical','davical_dba',...) failed: FATAL:  Ident-Authentifizierung für Benutzer »davical_dba« fehlgeschlagen at /usr/share/davical/dba/update-davical-database line 244                                                
Can't connect to database davical at /usr/share/davical/dba/update-davical-database line 244.                         
* * * * ERROR * * * *                                                                                                 
The database administration utility failed.  This may be due to database                                              
permissions for the davical_dba user, or because the Perl DBD::Pg or YAML                                             
libraries are not available.                                                                                          

Check that your pg_hba.conf allows the davical_dba user to connect to the
database (and make sure you've reloaded PostgreSQL since changing that).

Also see:  http://wiki.davical.org/w/Install_Errors/No_Perl_YAML

linux:~ # zypper search yaml
Metadaten von Repository 'openSUSE BuildService - Datenbank' werden abgerufen [fertig]
Zwischenspeicher für Repository 'openSUSE BuildService - Datenbank' wird erzeugt [fertig]
Daten des Repositorys laden ...
Installierte Pakete lesen ...

S | Name                            | Zusammenfassung                                       | Typ       
--+---------------------------------+-------------------------------------------------------+-----------
....
  | libyaml                         | A YAML 1.1 parser and emitter written in C            | Quellpaket
i | libyaml-0-2                     | Shared library from libyaml                           | Paket     
  | libyaml-0-2-debuginfo           | Debug information for package libyaml-0-2             | Paket     
....
  | perl-YAML                       | YAML Ain't Markup Language (tm)                       | Quellpaket
i | perl-YAML                       | YAML Ain't Markup Language (tm)                       | Paket     
i | perl-YAML-LibYAML               | YAML::LibYAML Perl module                             | Paket     
  | perl-YAML-LibYAML               | YAML::LibYAML Perl module                             | Quellpaket
i | perl-YAML-Perl                  | Pure Perl YAML Implementation                         | Paket     
....  

linux:~ # cat /var/lib/pgsql/data/pg_hba.conf 
local localhost davical_app trust
local localhost davical_dba trust
local davical general trust
host    rscds    general   127.0.0.1/32   trust
#
........
#
# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD
#
# "local" is for Unix domain socket connections only
local   all             all                                     ident
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

Was hattest du denn bei dir in der pg_hba.conf stehen?

Deine Konfiguration sieht nicht falsch aus, hast du awl installiert?
Paket php-awl


PC: oS 11.4 64 bit | Intel Core i7-2600@3.40GHz | KDE 4.6.0 | GeForce GT 420
| 16GB Ram
Eee PC 1201n: oS 11.4 64 bit | Intel Atom 330@1.60GHz | KDE 4.7.2 | nVidia
ION | 3GB Ram

Und php5-pgsql, perl-DBD-Pg prüfen.


PC: oS 11.4 64 bit | Intel Core i7-2600@3.40GHz | KDE 4.6.0 | GeForce GT 420
| 16GB Ram
Eee PC 1201n: oS 11.4 64 bit | Intel Atom 330@1.60GHz | KDE 4.7.2 | nVidia
ION | 3GB Ram

Hallo,
Die beiden Pakete php5-pgsql und perl-DBD-Pg sind installiert.
Was php-awl angeht, so habe ich die Version von der DAViCal Entwicklerseite eingespielt.


linux:~ # zypper search awl
Metadaten von Repository 'openSUSE BuildService - devel:languages:perl' werden abgerufen [fertig]
Zwischenspeicher für Repository 'openSUSE BuildService - devel:languages:perl' wird erzeugt [fertig]
Metadaten von Repository 'openSUSE BuildService - devel:languages:python' werden abgerufen [fertig]
Zwischenspeicher für Repository 'openSUSE BuildService - devel:languages:python' wird erzeugt [fertig]
Daten des Repositorys laden ...
Installierte Pakete lesen ...

S | Name                         | Zusammenfassung                                | Typ       
--+------------------------------+------------------------------------------------+-----------
i | libawl-php                   | Andrew's Web Libraries - PHP Utility Libraries | Paket     
i | perl-Task-Kensho-WebCrawling | A Glimpse at an Enlightened Perl (WebCrawling) | Paket     
  | perl-Task-Kensho-WebCrawling | A Glimpse at an Enlightened Perl (WebCrawling) | Quellpaket

linux:~ # rpm -ihv Downloads/php-awl-0.46-1.1.noarch.rpm
Preparing...                ########################################### [100%]
        file /usr/share/awl/inc/AWLUtilities.php from install of php-awl-0.46-1.1.noarch conflicts with file from package libawl-php-0.49-1.noarch
        file /usr/share/awl/inc/AWLUtilities.php.in from install of php-awl-0.46-1.1.noarch conflicts with file from package libawl-php-0.49-1.noarch
        file /usr/share/awl/inc/AuthPlugins.php from install of php-awl-0.46-1.1.noarch conflicts with file from package libawl-php-0.49-1.noarch
        file /usr/share/awl/inc/AwlDBDialect.php from install of php-awl-0.46-1.1.noarch conflicts with file from package libawl-php-0.49-1.noarch
        file /usr/share/awl/inc/AwlDatabase.php from install of php-awl-0.46-1.1.noarch conflicts with file from package libawl-php-0.49-1.noarch
        file /usr/share/awl/inc/AwlQuery.php from install of php-awl-0.46-1.1.noarch conflicts with file from package libawl-php-0.49-1.noarch
        file /usr/share/awl/inc/DataUpdate.php from install of php-awl-0.46-1.1.noarch conflicts with file from package libawl-php-0.49-1.noarch
        file /usr/share/awl/inc/Session.php from install of php-awl-0.46-1.1.noarch conflicts with file from package libawl-php-0.49-1.noarch
        file /usr/share/awl/inc/XMLElement.php from install of php-awl-0.46-1.1.noarch conflicts with file from package libawl-php-0.49-1.noarch
        file /usr/share/awl/inc/iCalendar.php from install of php-awl-0.46-1.1.noarch conflicts with file from package libawl-php-0.49-1.noarch
        file /usr/share/awl/inc/vComponent.php from install of php-awl-0.46-1.1.noarch conflicts with file from package libawl-php-0.49-1.noarch

Der Versuch das php-awl vom OBS einzuspielen scheitert wegen eines Konflikts. Also erstmal die libawl-php runter schmeißen, dann klappt es auch.


linux:~/Downloads # rpm -ihv php-awl-0.46-1.1.noarch.rpm
Preparing...                ########################################### [100%]
   1:php-awl                ########################################### [100%]

Da bin ich ja jetzt mal gespannt ob die libawl-php vielleicht zu SUSE nicht kompatibel ist und es wirklich nur an der php-awl gelegen hat.

linux:~/Downloads # su - postgres -c psql postgres
psql (9.0.3)
Geben Sie »help« für Hilfe ein.

postgres=# drop database davical;
DROP DATABASE
postgres=# \q

linux:~/Downloads # rcpostgresql restart
Shutting down PostgreSQL                                                                                   done
Starting PostgreSQL                                                                                        done

linux:~/Downloads # su - postgres -c /usr/share/davical/dba/create-database.sh

DBI connect('dbname=davical','davical_dba',...) failed: FATAL:  Ident-Authentifizierung für Benutzer »davical_dba« fehlgeschlagen at /usr/share/davical/dba/update-davical-database line 244
Can't connect to database davical at /usr/share/davical/dba/update-davical-database line 244.
* * * * ERROR * * * *
The database administration utility failed.  This may be due to database
permissions for the davical_dba user, or because the Perl DBD::Pg or YAML
libraries are not available.

Check that your pg_hba.conf allows the davical_dba user to connect to the
database (and make sure you've reloaded PostgreSQL since changing that).

Also see:  http://wiki.davical.org/w/Install_Errors/No_Perl_YAML

Nein, immer noch nicht.
Könnte es vielleicht an DAViCal selbst liegen?
Hattest du für deinen Test die OBS Version von Jengelh, oder die deutlich aktuellere von der Entwicklerseite genommen?

Könnte es sein, daß die Ursache für die Fehlermeldung daran liegt, daß ich das Skript create-database.sh schon mal als root statt als postgres aufgerufen hatte und sich jetzt irgendwas nicht mehr neu schreiben lässt?
Aber wie bekomme ich heraus, was genau passiert, daß das Skript mit einer Fehlermeldung abbricht?

Savis wrote:
> Nein, immer noch nicht.
> Könnte es vielleicht an DAViCal selbst liegen?
> Hattest du für deinen Test die OBS Version von Jengelh, oder die
> deutlich aktuellere von der Entwicklerseite genommen?
>
Die jengelh Version, das php-awl aus dem obs wäre sowieso inkompatibel wie
ich sehe zu der neueren DAViCal Version (die brauch AwlCache.php das im
älteren awl noch nicht enthalten ist).


PC: oS 11.4 64 bit | Intel Core i7-2600@3.40GHz | KDE 4.6.0 | GeForce GT 420
| 16GB Ram
Eee PC 1201n: oS 11.4 64 bit | Intel Atom 330@1.60GHz | KDE 4.7.2 | nVidia
ION | 3GB Ram

Savis wrote:

>
> Könnte es sein, daß die Ursache für die Fehlermeldung daran liegt,
> daß ich das Skript create-database.sh schon mal als root statt als
> postgres aufgerufen hatte und sich jetzt irgendwas nicht mehr neu
> schreiben lässt?
Das könnte sein.

> Aber wie bekomme ich heraus, was genau passiert, daß das Skript mit
> einer Fehlermeldung abbricht?
>
Leider gibt das Script fehlermeldungstechnisch nicht viel her.
Schau mal im home Verzeichnis vom User postgres (das ist /var/lib/pgsql)
nach ob da alles mit Onwer/Grup postgres angelegt ist oder irgendwelche
Dateien mit Owner oder Group root herumhängen.


PC: oS 11.4 64 bit | Intel Core i7-2600@3.40GHz | KDE 4.6.0 | GeForce GT 420
| 16GB Ram
Eee PC 1201n: oS 11.4 64 bit | Intel Atom 330@1.60GHz | KDE 4.7.2 | nVidia
ION | 3GB Ram

Mal wieder etwas Zeit gehabt weiter zu probieren.
im home von postgres sieht alles gut aus, er ist überall Eigentümer der Dateien.

Nun habe ich mal das loggign für Postgresql eingeschaltet und nochmal das:

 # su - postgres -c /usr/share/davical/dba/create-database.sh

ausgeführt.

# cat /var/lib/pgsql/data/pg_log/postgresql-2011-11-15_201504.log
2011-11-15 20:43:08 CET postgres postgres ANWEISUNG:  CREATE DATABASE davical OWNER davical_dba ENCODING 'UTF8' TEMPLATE template0;

2011-11-15 20:44:25 CET davical davical_dba LOG:  angegebener Benutzername (davical_dba) und authentifizierter Benutzername (postgres) stimmen nicht überein
2011-11-15 20:44:25 CET davical davical_dba FATAL:  Ident-Authentifizierung für Benutzer »davical_dba« fehlgeschlagen
2011-11-15 20:44:29 CET davical davical_dba LOG:  angegebener Benutzername (davical_dba) und authentifizierter Benutzername (postgres) stimmen nicht überein
2011-11-15 20:44:29 CET davical davical_dba FATAL:  Ident-Authentifizierung für Benutzer »davical_dba« fehlgeschlagen

Und wenn ich die Weboberfläche von DAViCal aufrufe loggt Postgresql:

2011-11-15 20:15:43 CET davical davical_dba FATAL:  Ident-Authentifizierung für Benutzer »davical_dba« fehlgeschlagen
2011-11-15 20:29:55 CET davical davical_app LOG:  angegebener Benutzername (davical_app) und authentifizierter Benutzername (wwwrun) stimmen nicht überein
2011-11-15 20:29:55 CET davical davical_app FATAL:  Ident-Authentifizierung für Benutzer »davical_app« fehlgeschlagen
2011-11-15 20:29:58 CET davical davical_app LOG:  angegebener Benutzername (davical_app) und authentifizierter Benutzername (wwwrun) stimmen nicht überein
2011-11-15 20:29:58 CET davical davical_app FATAL:  Ident-Authentifizierung für Benutzer »davical_app« fehlgeschlagen

Irgendwie scheint das Problem wohl bei Postgresql zu liegen, oder im create-database.sh, welches die Datenbank und erforderlichen Benutzer anlegen sollte.
Im Netz habe ich verschiedene Hinweise darauf gefunden, daß ein Problem für create-database.sh ein Fehler in der UTF-8 Kodierung sein kann. Oben beim Anlegen der Datenbank steht einfach nur UTF8, in der postgresql.conf steht jedoch de_DE.UTF-8, könnte das die Ursache sein?