PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Konfiguration Ubuntu Server mit Apache, EGroupware und SVN Repository



Adreiaan
19.09.11, 19:28
Hallo,

ich möchte einen kleinen Homeserver mit der EGroupware laufen lassen und zusätzlich ein SVN Repository einrichten. Ich habe die EGroupware und SVN über die Paketverwaltung installiert und die Groupware mit den HowTo soweit eingerichtet.

Die EGroupware läuft einwandfrei. Nun habe ich das SVN über das Apache webdav Modul eingerichtet und das Problem, dass ich mich nicht anmelden kann. Da es mehrere User gibt wollte ich, dass die MySQL Datenbank der EGroupware verwendet wird um die User zu authentifizieren.

Dafür gibt es die Datei
/etc/apache2/mods-enabled/dav_svn.conf mit folgendem Inhalt.



<Location /svn>
DAV svn
SVNParentPath /usr/share/svn

AuthzSVNAccessFile /etc/apache2/mods-enabled/dav_svn.authz

AuthMYSQL on
AuthType Basic
AuthName "Subversion Repository"
AuthMySQL_Host localhost
AuthMySQL_User <egw-username>
AuthMySQL_Password <egw-password>
AuthMySQL_DB <egw-database>
AuthMySQL_Password_Table <egw_accounts_table>
AuthMySQL_Username_Field <account_table_username_field>
AuthMySQL_Password_Field <account_table_password_field>
AuthMYSQL_Empty_Passwords off
AuthMySQL_Encryption_Types PHP_MD5
AuthMySQL_Authoritative On
AuthUserFile /dev/null
Satisfy Any
Require valid-user
</Location>


Ich kann sowohl über http als auch über https auf den Server zugreifen und auch das Unterverzeichnis /svn aufrufen. Dann kommt die webdav Passwortabfrage und weiter passiert nichts. Keine Fehlermeldung im Browser o.ä.

Im Apache Log
/var/log/apache2/error.log steht folgendes:


[Mon Sep 19 19:16:58 2011] [error] [client 192.168.1.27] user <username> not found: /svn/projekt1


Ich weiß im Moment nicht ob der Fehler in der Konfiguration vom SVN ist, oder ob der Fehler eventuell schon in der VirtualHosts Konfiguration liegt. Diese ist ja von der EGroupware so installiert worden.

Das ist die Standard Virtual Host Datei
/etc/apache2/sites-enabled/000-default:


<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /usr/share/egroupware
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

Und die https Datei
/etc/apache2/sites-enabled/ssl:

NameVirtualHost *:443
<virtualhost *:443>
DocumentRoot /usr/share/egroupware
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
</virtualhost>


Bin für jeden Hinweis dankbar :-)

MfG

Adreiaan

DrunkenFreak
19.09.11, 20:10
<Location /svn>
DAV svn
SVNParentPath /usr/share/svn

AuthzSVNAccessFile /etc/apache2/mods-enabled/dav_svn.authz

AuthMYSQL on
AuthType Basic
AuthName "Subversion Repository"
AuthMySQL_Host localhost
AuthMySQL_User <egw-username>
AuthMySQL_Password <egw-password>
AuthMySQL_DB <egw-database>
AuthMySQL_Password_Table <egw_accounts_table>
AuthMySQL_Username_Field <account_table_username_field>
AuthMySQL_Password_Field <account_table_password_field>
AuthMYSQL_Empty_Passwords off
AuthMySQL_Encryption_Types PHP_MD5
AuthMySQL_Authoritative On
AuthUserFile /dev/null
Satisfy Any
Require valid-user
</Location>


Im Apache Log
/var/log/apache2/error.log steht folgendes:


[Mon Sep 19 19:16:58 2011] [error] [client 192.168.1.27] user <username> not found: /svn/projekt1


Kannst du direkt auf die Tabelle und die Felder zugreifen? Der Fehler deutet darauf hin, dass die Verbindung zu MySQL nicht stimmt, bzw er die entsprechenden Felder nicht finden kann.

Probiere zusätzlich, ob du mit der einfachen Anmeldung weiterkommst (siehe hier (http://www.debuntu.org/2006/05/20/54-how-to-subversion-svn-with-apache2-and-dav)).

Adreiaan
19.09.11, 20:47
Ich bekomme die Daten mit


echo "SELECT * FROM <egw_account_table>" | mysql -u <egw_user> --password=<egw_password> <egw_database>

alle angezeigt...

Adreiaan
19.09.11, 21:19
Also ich habe jetzt noch mal mit WHERE herumprobiert... anscheinend gibt es ein Problem mit der Spaltenbezeichnung.

Diese ist von der EGroupware aus account_lid.

Wenn ich nach der Kennung in dieser Spalte suche funktioniert es nicht, dann kommt folgender Fehler:

ERROR 1054 (42S22) at line 1: Unknown column '<username>' in 'where clause'

DrunkenFreak
19.09.11, 21:20
Wenn du alles zensierst, wird dir keiner helfen können. Also schreib das ERM auf und die richtige Konfiguration vom Apache.

Adreiaan
19.09.11, 22:20
Also hier ist die Konfiguration ohne "Zensur"


<Location /svn>
DAV svn
SVNParentPath /usr/share/svn

AuthzSVNAccessFile /etc/apache2/mods-enabled/dav_svn.authz

AuthMYSQL on
AuthType Basic
AuthName "Subversion Repository"
AuthMySQL_Host localhost
AuthMySQL_User egroupware
AuthMySQL_Password <egw-password>
AuthMySQL_DB egroupware
AuthMySQL_Password_Table egw_accounts
AuthMySQL_Username_Field account_lid
AuthMySQL_Password_Field account_pwd
AuthMYSQL_Empty_Passwords off
AuthMySQL_Encryption_Types PHP_MD5
AuthMySQL_Authoritative On
AuthUserFile /dev/null
Satisfy Any
Require valid-user
</Location>

Inwiefern sind die Eintragungen relevant? Die Schreibweise habe ich kontrolliert. Das manuelle einloggen geht auch ohne Probleme. Die Daten kann ich auch abfragen. Einzig wenn ich die Abfrage nach "account_lid" verwende klappt es nicht.

echo "SELECT * FROM egw_accounts WHERE account_lid=operator" | mysql -u egroupware --password=<egw_password> egroupware
ERROR 1054 (42S22) at line 1: Unknown column 'operator' in 'where clause'
So funktioniert es:

echo "SELECT * FROM egw_accounts WHERE account_id=5" | mysql -u egroupware --password=<egw_password> egroupware
account_id account_lid account_pwd account_lastlogin account_lastloginfrom account_lastpwd_change account_status account_expires account_type account_primary_group account_challenge account_response
5 operator dfa6585487ad02c82f0ec64f3f3916ea 1316112187 192.168.1.27 1311359121 A -1 u -2 NULL NULL

DrunkenFreak
19.09.11, 22:28
Die Where-Klausel ist falsch. Du überprüfst auf einen String, hast ihn aber nicht angegen (wichtig sind die einfachen Anführungsstriche):


select * from foo
where string_field = 'string in field';

Was sagt MySQL zu den Abfrageversuchen vom Apache? Kommt da was an?

Adreiaan
19.09.11, 22:30
Ok.. so hat es nun funktioniert


echo "SELECT * FROM egw_accounts WHERE account_lid='operator'" | mysql -u egroupware --password=01041823MJcs egroupware
account_id account_lid account_pwd account_lastlogin account_lastloginfrom account_lastpwd_change account_status account_expires account_type account_primary_group account_challenge account_response
5 operator dfa6585487ad02c82f0ec64f3f3916ea 1316112187 192.168.1.27 1311359121 A -1 u -2 NULL NULL

Eventuell macht der Apache die Abfrage ohne '<username>'
Wie und wo kann ich das ändern... wenn überhaupt...

DrunkenFreak
19.09.11, 22:31
Guck in die Logs von MySQL.

Adreiaan
19.09.11, 22:32
Ich habe es noch nicht so mit dem Apache. In welchem Log kann ich das nachsehen was ankommt.

Danke für die Hilfe :-)

Adreiaan
19.09.11, 22:52
Ich sehe hier überhaupt keine Anfrage vom Apache... :-(

Alles was ich sehe scheint von der Groupware zu kommen

mysql.log


110919 22:43:27 168 Connect egroupware@localhost on
168 Query select version()
168 Init DB egroupware
168 Query SELECT COUNT(config_name) FROM egw_config
168 Query SELECT config_value FROM egw_config WHERE config_app='phpgwapi' AND config_name='system_charset'
168 Query SET NAMES 'utf8'
168 Query SELECT @@character_set_connection LIMIT 1
168 Query SELECT * FROM egw_config WHERE config_app='phpgwapi'
169 Connect egroupware@localhost on
169 Init DB egroupware
169 Query SET NAMES 'utf8'
169 Query SELECT @@character_set_connection LIMIT 1
169 Query SELECT * FROM egw_preferences WHERE preference_owner IN (-2,-1,6,-3)
169 Query SELECT account_id,account_type FROM egw_accounts WHERE account_lid='calendar' AND account_id IS NOT $
169 Query SELECT account_id,account_type FROM egw_accounts WHERE account_lid='calendar' AND account_id IS NOT $
169 Query SELECT acl_account,acl_rights,acl_location FROM egw_acl WHERE acl_appname='calendar' AND acl_locatio$
169 Query SELECT * FROM egw_config WHERE config_app='calendar'
169 Query SELECT egw_cal_repeats.*,egw_cal.*,MIN(cal_start) AS cal_start,MIN(cal_end) AS cal_end FROM egw_cal ,$
169 Query SELECT * FROM egw_cal_user WHERE cal_id=127 AND cal_recur_date=0 ORDER BY cal_user_type DESC,cal_rec$
169 Query SELECT * FROM egw_cal_extra WHERE cal_id=127
169 Query SELECT * FROM egw_async WHERE async_id LIKE 'cal:127:%' AND async_id != '##last-check-run##'
169 Query SELECT MAX(cal_user_modified) FROM egw_cal_user WHERE cal_id=127
169 Query SELECT acl_account,acl_rights,acl_location FROM egw_acl WHERE acl_appname='calendar' AND acl_locatio$
169 Query SELECT acl_account,acl_rights,acl_location FROM egw_acl WHERE acl_appname='addressbook' AND acl_loca$
169 Query SELECT * FROM egw_config WHERE config_app='addressbook'
169 Query SELECT MAX(cal_user_modified) FROM egw_cal_user WHERE cal_id=127
169 Quit
152 Query select version()
152 Init DB egroupware
152 Query SELECT COUNT(config_name) FROM egw_config
152 Query SELECT config_value FROM egw_config WHERE config_app='phpgwapi' AND config_name='system_charset'
152 Query SET NAMES 'utf8'
152 Query SELECT @@character_set_connection LIMIT 1
152 Query SELECT * FROM egw_config WHERE config_app='phpgwapi'
170 Connect egroupware@localhost on
170 Init DB egroupware
170 Query SET NAMES 'utf8'
170 Query SELECT @@character_set_connection LIMIT 1
170 Query SELECT * FROM egw_preferences WHERE preference_owner IN (-2,-1,6,-3)
170 Query SELECT account_id,account_type FROM egw_accounts WHERE account_lid='calendar' AND account_id IS NOT $
170 Query SELECT account_id,account_type FROM egw_accounts WHERE account_lid='calendar' AND account_id IS NOT $
170 Query SELECT acl_account,acl_rights,acl_location FROM egw_acl WHERE acl_appname='calendar' AND acl_locatio$
170 Query SELECT * FROM egw_config WHERE config_app='calendar'
170 Query SELECT egw_cal_repeats.*,egw_cal.*,MIN(cal_start) AS cal_start,MIN(cal_end) AS cal_end FROM egw_cal ,$
170 Query SELECT * FROM egw_cal_user WHERE cal_id=130 AND cal_recur_date=0 ORDER BY cal_user_type DESC,cal_rec$
170 Query SELECT * FROM egw_cal_extra WHERE cal_id=130
170 Query SELECT * FROM egw_async WHERE async_id LIKE 'cal:130:%' AND async_id != '##last-check-run##'
170 Query SELECT MAX(cal_user_modified) FROM egw_cal_user WHERE cal_id=130
170 Query SELECT acl_account,acl_rights,acl_location FROM egw_acl WHERE acl_appname='calendar' AND acl_locatio$
170 Query SELECT acl_account,acl_rights,acl_location FROM egw_acl WHERE acl_appname='addressbook' AND acl_loca$
170 Query SELECT * FROM egw_config WHERE config_app='addressbook'
170 Query SELECT MAX(cal_user_modified) FROM egw_cal_user WHERE cal_id=130
170 Quit
110919 22:44:43 147 Query select version()
147 Init DB egroupware
147 Query SELECT COUNT(config_name) FROM egw_config
147 Query SELECT config_value FROM egw_config WHERE config_app='phpgwapi' AND config_name='system_charset'
147 Query SET NAMES 'utf8'
147 Query SELECT @@character_set_connection LIMIT 1
147 Query SELECT * FROM egw_config WHERE config_app='phpgwapi'

error.log

110919 22:38:12 [Note] Event Scheduler: Purging the queue. 0 events
110919 22:38:14 InnoDB: Starting shutdown...
110919 22:38:18 InnoDB: Shutdown completed; log sequence number 0 44233
110919 22:38:18 [Note] /usr/sbin/mysqld: Shutdown complete

110919 22:38:18 [Note] Plugin 'FEDERATED' is disabled.
110919 22:38:18 InnoDB: Initializing buffer pool, size = 8.0M
110919 22:38:18 InnoDB: Completed initialization of buffer pool
110919 22:38:18 InnoDB: Started; log sequence number 0 44233
110919 22:38:18 [Note] Event Scheduler: Loaded 0 events
110919 22:38:18 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.54-1ubuntu4-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu)

Den Shutdown hatte ich mit einem Restart gemacht.