Hi Bartosz,
you have an invalid parameter in your sogo.conf.

viewUrl vs. viewURL

Regards,
Thomas

-----Ursprüngliche Nachricht-----
Von: users-requ...@sogo.nu [mailto:users-requ...@sogo.nu] Im Auftrag von
Bartosz Stepien
Gesendet: Freitag, 22. Dezember 2017 18:09
An: users@sogo.nu
Betreff: [SOGo] Multi-domain + MySQL setup

Hello, 

after long and successful adventure with SOGo 2 now I'm trying to setup a
v3 server for our customers. Straight to the point: I fail.

Request to WWW frontend result in error 501; sogo.log states:

#v+
2017-12-22 16:58:36.601 sogod[3339] EXCEPTION: <NSException: 0x7f0a0f0a7080>
NAME:NSInvalidArgumentException REASON:Tried to add nil value for key
'seconddomain.pl' to dictionary INFO:{} Dec 22 16:58:36 sogod [3339]:
123.45.135.246 "GET /SOGo/ HTTP/1.1" 501 0/0 0.030 - - 2M
#v-

(domain name and IP changed; there is also another error, "could not create
bundle for path:
'/usr/share/GNUstep/Libraries/gnustep-base/Versions/1.22/Resources/SSL.bundl
e'",
but according to https://sogo.nu/bugs/view.php?id=287 it's harmless).

Intended setup is multi-domain (two domains atm), with users coming from
MySQL.
Domains should be isolated from each other. Username is equal to email
address.

Looking for solution I've found some suggestions online, but none helped:

- sope4.9-gdl1-mysql is installed
- I can access MySQL server and views from the machine, using credentials
from
  sogo.conf
- memcached is running on the SOGo machine
- adding DomainFieldName to SOGoUserSources, as suggested once on list, did
not
  help
- when I remove second domain section, the same error appears for first
domain.
- plist shows no errors in sogo.conf structure

It's probably some omission on my side, but I fail to recognize it, so if
anybody has a suggestion, I'd be most grateful. Or maybe someone can show
his working example?

Setup details: Debian Wheezy (I know, I know), latest SOGo nightly from
packages.inverse.ca (earlier nightlies worked in exactly the same way),
Apache as a frontend (with default config from package).

Here is my sogo.conf (password, "db-alias" and domain names sanitized; but
I've checked the original values many times):

#v+
{
    SOGoProfileURL =
        "mysql://sogo:password@db-alias:3306/sogo/sogo_user_profile";
    OCSFolderInfoURL =
        "mysql://sogo:password@db-alias:3306/sogo/sogo_folder_info";
    OCSSessionsFolderURL =
        "mysql://sogo:password@db-alias:3306/sogo/sogo_sessions_folder";
    OCSEMailAlarmsFolderURL =
        "mysql://sogo:password@db-alias:3306/sogo/sogo_alarms_folder";
    OCSStoreURL =
        "mysql://sogo:password@db-alias:3306/sogo/sogo_store";
    OCSAclURL =
        "mysql://sogo:password@db-alias:3306/sogo/sogo_acl";
    OCSCacheFolderURL =
        "mysql://sogo:password@db-alias:3306/sogo/sogo_cache_folder";


    SOGoEnableEMailAlarms = YES;
   
    SOGoAppointmentSendEMailNotifications = YES;
    SOGoCalendarDefaultRoles = (
        PublicViewer,
        ConfidentialDAndTViewer
    );
    SOGoLanguage = Polish;
    SOGoTimeZone = Europe/Warsaw;
    SOGoIMAPServer = mailserver.pl;
    SOGoDraftsFolderName = Drafts;
    SOGoSentFolderName = Sent;
    SOGoTrashFolderName = Trash;
    SOGoJunkFolderName = Spam;
    SOGoMailingMechanism = smtp;
    SOGoSMTPServer = mailserver.pl;

/*    SOGoEnableDomainBasedUID = YES; */
   
domains = {
        "first-domain.pl" = {
            SOGoMailDomain = "first-domain.pl";
            SOGoUserSources = (
                {  
                    type = sql;
                    id = "first-domain.pl";
                    viewUrl =
"mysql://sogo:password@db-alias:3306/sogo/_auth_first";
                    canAuthenticate = YES;
                    DomainFieldName = c_domains;
                    isAddressBook = YES;
                }
            );
        };
        "seconddomain.pl" = {
            SOGoMailDomain = "seconddomain.pl";
            SOGoUserSources = (
                {  
                    type = sql;
                    id = "seconddomain.pl";
                    viewUrl =
"mysql://sogo:password@db-alias:3306/sogo/_auth_second";
                    canAuthenticate = YES;
                    DomainFieldName = c_domains;
                    isAddressBook = YES;
                }
            );
        };
    };
}
#v-

(I started without many quotes, as in documentation; DomainFieldName and
SOGoEnableDomainBasedUID were added/commented during tests, with no result).

~sogo/GNUstep/Defaults/.GNUstepDefaults looks as follows:

#v+
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//GNUstep//DTD plist 0.9//EN"
"http://www.gnustep.org/plist-0_9.xml";>
<plist version="0.9">
<dict>
    <key>NSGlobalDomain</key>
    <dict>
    </dict>
    <key>sogod</key>
    <dict>
    </dict>
</dict>
</plist>
#v-

Views have columns named c_uid, c_domains, c_name, c_password, c_cn, mail;
c_domains contains domain, c_password -- password, all other -- email
address (that is also username).

Sincerely,
Bartosz 'briest' Stępień

--
Warning! You're entering Japanese pintelou!
--
users@sogo.nu
https://inverse.ca/sogo/lists

-- 
users@sogo.nu
https://inverse.ca/sogo/lists

Reply via email to