Hello, I still have a 501 error despite the changes: 1) please attach your current /etc/sogo/sogo.conf file _complete_ (passwords censored of course)
{ // // - Official SOGo document: http://sogo.nu/support/index.html#/documentation // - Mailing list: http://sogo.nu/support/index.html#/community // // Daemon address and port WOPort = 127.0.0.1:20000; // PID file //WOPidFile = /var/run/sogo/sogo.pid; // Log file WOLogFile = /var/log/sogo/sogo.log; // Enable verbose logging. Reference: // http://www.sogo.nu/nc/support/faq/article/how-to-enable-more-verbose-logging-in-sogo.html //SOGoDebugRequests = YES; //SOGoEASDebugEnabled = YES; //ImapDebugEnabled = YES; //LDAPDebugEnabled = YES; //MySQL4DebugEnabled = YES; //PGDebugEnabled = YES; // Define the URL to online help for SOGo. When set, an additional icon // will appear near the logout button in SOGo's web interface. The URL // will always be open in a blank target. //SOGoHelpURL = ''; // set the maximum allowed size for content being sent to SOGo, this can // also limit the file attachment size being uploaded to SOGo when // composing a mail. // The value is in kilobyte. Default is 0 or disabled (unlimit). WOMaxUploadSize = 15360; // Parameter used to set the maximum allowed email message size when // composing a mail. // The value is in kilobytes. By default, the value is 0, or disabled so // no limit will be set. SOGoMaximumMessageSizeLimit = 15360; // Performance Tuning // // The amount of instances of SOGo that will be spawned to handle multiple // requests simultaneously. When started from the init script, that amount // is overriden by the `PREFORK=` setting in /etc/sysconfig/sogo or // /etc/default/sogo. A value of 3 is a reasonable default for low usage. // The maximum value depends on the CPU and IO power provided by your // machine: a value set too high will actually decrease performances under // high load. // // You should have at least one child per EAS device configured to use // "push". You must also have more children than you have EAS devices // configured to use "push" - in order to handle normal SOGo requests to // its Web or DAV interfaces. // // Defaults to 1 when unset, increase it if you see below error message in // sogo log file: 'No child available to handle incoming request' // // WARNING: // - on RHEL/CentOS, this setting is controlled by parameter // 'PREFORK=' defined in /etc/sysconfig/sogo. // - on Debian/Ubuntu, this setting is controlled by parameter // 'PREFORK=' defined in /etc/default/sogo. WOWorkersCount = 10; // Parameter used to set the maximum amount of time, in seconds, SOGo will // wait before replying to a Ping command. // If not set, it defaults to 10 seconds. SOGoMaximumPingInterval = 3540; // Parameter used to set the maximum amount of time, in seconds, SOGo will // wait before replying to a Sync command. // If not set, it defaults to 30 seconds. SOGoMaximumSyncInterval = 3540; // Parameter used to set the maximum amount of time, in seconds, SOGo will // wait before doing an internal check for data changes (add, delete, and // update). This parameter must be lower than SOGoMaximumSyncInterval and // SOGoMaximumPingInterval. // If not set, it defaults to 10 seconds. SOGoInternalSyncInterval = 30; // Specifies the number of minutes after which a busy child process will be // killed by the parent process. // Defaults to 10 (minutes). WOWatchDogRequestTimeout = 61; // Overwrite the maximum number of items returned during a Sync operation. // Defaults to 0, which means no overwrite is performed. // Setting this parameter to a value greater than 512 will have unexpected // behaviour with various ActiveSync clients. //SOGoMaximumSyncWindowSize = 100; // Overwrite the maximum response size during a Sync operation. // The value is in kilobytes. Setting this to 512 means the response size // will be of 524288 bytes or less (or a bit greater if needed for syncing // one item). Note that if you set the value too low and a mail message // (or any other object like calendar events, tasks and contacts) surpasses // it, it will still be synced but only this item will be. // Defaults to 0, which means no overwrite is performed. // // Say you have these five mails and you set the limit to 512KB: // 1. 250 KB // 2. 250 KB // 3. 25 KB // 4. 750 KB // 5. 10 KB // Sync iteration no. 1 will pick message 1, 2 and 3. // Sync iteration no. 2 will pick message 4. // Sync iteration no. 3 will pick message 5. SOGoMaximumSyncResponseSize = 2048; // The maximum amount of memory (in megabytes) that a child can use. // Reaching that value will force children processes to restart, in order // to preserve system memory. // // Error message when it reaches the value: // "terminating app, vMem size limit (xxx MB) has been reached (currently xxx MB)" // // Defaults to 384. SxVMemLimit = 500; // Enable XSRF (also known as CSRF) protection. SOGoXSRFValidationEnabled = YES; // IMAP connection pool. // Your performance will slightly increase, as you won't open a new // connection for every access to your IMAP server. // But you will get a lot of simultaneous open connections to your IMAP // server, so make sure he can handle them. // For debugging it is reasonable to turn pooling off. NGImap4DisableIMAP4Pooling = NO; SOGoProfileURL = "mysql://userDB:Password@192.168.10.250:3306/sogo/sogo_user_profile"; OCSFolderInfoURL = "mysql://userDB:Password@192.168.10.250:3306/sogo/sogo_folder_info"; OCSSessionsFolderURL = "mysql://userDB:Password@192.168.10.250:3306/sogo/sogo_sessions_folder"; OCSEMailAlarmsFolderURL = "mysql://userDB:Password@192.168.10.250:3306/sogosogo_alarms_folder"; // With 3 parameters below, SOGo requires only 9 SQL tables in total // instead of creating 4 SQL tables for each user. OCSCacheFolderURL = "mysql://userDB:Password@192.168.10.250:3306/sogo/sogo_cache_folder"; OCSStoreURL = "mysql://userDB:Password@192.168.10.250:3306/sogo/sogo_store"; OCSAclURL = "mysql://userDB:Password@192.168.10.250:3306/sogo/sogo_acl"; // Default language in the web interface SOGoLanguage = English; // Specify which module to show after login: Calendar, Mail, Contacts. SOGoLoginModule = Mail; // Must login with full email address SOGoForceExternalLoginWithEmail = YES; // Allow user to change full name and email address. SOGoMailCustomFromEnabled = NO; // IMAP server // Local connection is considered as secure by Dovecot, so 'imap://' is fine. // With remote IMAP server, use 'imaps://127.0.0.1:143/?tls=YES' instead; SOGoIMAPServer = "imap://127.0.0.1:143/?tls=YES&tlsVerifyMode=allowInsecureLocalhost"; // Allow user to add other IMAP accounts that will be visible from the SOGo // Webmail interface. // Default is NO. //SOGoMailAuxiliaryUserAccountsEnabled = YES; // SMTP server SOGoSMTPServer = "smtp://127.0.0.1:587/?tls=YES&tlsVerifyMode=allowInsecureLocalhost"; SOGoMailingMechanism = smtp; SOGoSMTPAuthenticationType = PLAIN; // Enable managesieve service // // WARNING: Sieve scripts generated by SOGo is not compatible with Roundcube // webmail, don't use sieve service in both webmails, otherwise // it will be messy. // FYI: https://docs.iredmail.org/why.no.sieve.support.in.sogo.html // //SOGoSieveServer = "sieve://127.0.0.1:4190/?tls=YES&tlsVerifyMode=allowInsecureLocalhost"; //SOGoSieveScriptsEnabled = YES; //SOGoVacationEnabled = YES; //SOGoForwardEnabled = YES; SOGoSieveFolderEncoding = UTF-8; // Memcached SOGoMemcachedHost = 127.0.0.1; // Parameter used to set which usernames require administrative privileges // over all the users tables. For example, this could be used to post // events in the users calendar without requiring the user to configure // his/her ACLs. In this case you will need to specify those superuser's // usernames like this : // SOGoSuperUsernames = (<username1>[,<username2>, ...]); //SOGoSuperUsernames = (); SOGoTimeZone = "Africa/Nairobi"; SOGoFirstDayOfWeek = 1; SOGoRefreshViewCheck = every_5_minutes; SOGoMailReplyPlacement = below; // Disable gravatar SOGoExternalAvatarsEnabled = NO; SOGoGravatarEnabled = NO; // Control WebDAV access to the Calendar / Contacts collections. // This can be used to deny access to these resources from Thunderbird // Lightning for example. // Defaults to YES when unset. //SOGoCalendarDAVAccessEnabled = NO; //SOGoAddressBookDAVAccessEnabled = NO; // Allow users to share publicly (ie., requiring not authentication) their // calendars and address books. // Defaults to NO when unset. //SOGoEnablePublicAccess = YES; // // Notifications // // Enable email-based alarms on events and tasks. SOGoEnableEMailAlarms = YES; // Notify meeting participants SOGoAppointmentSendEMailNotifications = YES; // Notify if a calendar or an address book has been created. SOGoFoldersSendEMailNotifications = NO; // Notify involved users of a calendar or address book's ACLs. SOGoACLsSendEMailNotifications = YES; // Notify when a modification is being done to his/her own calendar by someone else. SOGoNotifyOnExternalModifications = YES; SOGoPasswordChangeEnabled = YES; // Authentication using SQL SOGoUserSources = ( { type = sql; id = users; viewURL = "mysql://userDB:Password@192.168.10.250:3306/sogo/users"; canAuthenticate = YES; // The algorithm used for password encryption when changing // passwords without Password Policies enabled. // Possible values are: plain, crypt, md5-crypt, ssha, ssha512. userPasswordAlgorithm = ssha512; prependPasswordScheme = YES; // Use `vmail.mailbox` as per-domain address book. isAddressBook = YES; displayName = "Domain Address Book"; SOGoEnableDomainBasedUID = YES; DomainFieldName = "domain"; // Listing of this LDAP source is only possible when performing a // search (respecting the SOGoSearchMinimumWordLength parameter) // or when explicitely typing a single dot. // Defaults to YES when unset. // // WARNING: if you have many accounts in this address book, it may // reach server-side query size limit, or cause // performance issue. listRequiresDot = NO; ModulesConstraints = { Mail = { c_webmail = y; }; Calendar = { c_calendar = y; }; ActiveSync = { c_activesync = y; }; }; }, //{ // displayName = "Global Address Book"; // type = sql; // id = global_address_book; // viewURL = "mysql://sogo:PASSWORD@127.0.0.1:3306/sogo/users"; // canAuthenticate = NO; // isAddressBook = YES; // listRequiresDot = NO; // SOGoEnableDomainBasedUID = YES; // DomainFieldName = "domain"; //}, // Display mailing aliases in address book. // You need to create SQL view 'sogo.aliases' first. // // For MySQL: // // CREATE VIEW sogo.aliases (c_uid, c_name, c_password, c_cn, mail, domain) // AS SELECT address, name, '', name, address, domain // FROM vmail.alias WHERE active=1; // //{ // displayName = "Mailing Lists"; // type = sql; // id = aliases; // viewURL = "mysql://sogo:PASSWORD@127.0.0.1:3306/sogo/aliases"; // canAuthenticate = NO; // isAddressBook = YES; // listRequiresDot = NO; // SOGoEnableDomainBasedUID = YES; // DomainFieldName = "domain"; //}, ); // Authentication using LDAP /* LDAP backend SOGoUserSources = ( { // Used for user authentication type = ldap; id = users; canAuthenticate = YES; isAddressBook = NO; displayName = "LDAP Authentication"; hostname = "PH_LDAP_URI"; baseDN = "domainName=%d,PH_LDAP_BASEDN"; bindDN = "PH_LDAP_BINDDN"; bindPassword = "PH_LDAP_BINDPW"; filter = "objectClass=mailUser AND accountStatus=active AND enabledService=mail AND enabledService=sogo"; scope = SUB; // always keep binding to the LDAP server using the DN of the // currently authenticated user. bindDN and bindPassword are still // required to find DN of the user. // Note: with default LDAP acl configured by iRedMail, user doesn't // have privilege to query PH_LDAP_BASEDN. // so this doesn't work. bindAsCurrentUser = YES; // The algorithm used for password encryption when changing // passwords without Password Policies enabled. // Possible values are: plain, crypt, md5-crypt, ssha, ssha512. userPasswordAlgorithm = ssha512; CNFieldName = cn; IDFieldName = mail; // value of UIDFieldName must be unique on entire server UIDFieldName = mail; IMAPLoginFieldName = mail; MailFieldNames = (mail); bindFields = (mail); ModulesConstraints = { Mail = { enabledService = sogowebmail; }; Calendar = { enabledService = sogocalendar; }; ActiveSync = { enabledService = sogoactivesync; }; }; GroupObjectClasses = ( "mailList", "group", "groupOfNames", "groupOfUniqueNames", "posixgroup" ); }, { // Used for global address book type = ldap; id = global_addressbook; canAuthenticate = NO; isAddressBook = YES; displayName = "Global Address Book"; bindAsCurrentUser = YES; // Listing of this LDAP source is only possible when performing a // search (respecting the SOGoSearchMinimumWordLength parameter) // or when explicitely typing a single dot. // Defaults to YES when unset. // // WARNING: if you have many accounts in this address book, it may // reach server-side query size limit, or cause // performance issue. listRequiresDot = NO; hostname = "PH_LDAP_URI"; baseDN = "domainName=%d,PH_LDAP_BASEDN"; bindDN = "PH_LDAP_BINDDN"; bindPassword = "PH_LDAP_BINDPW"; filter = "((enabledService=mail AND accountStatus=active AND enabledService=displayedInGlobalAddressBook) AND ((objectClass=mailUser AND enabledService=sogo) OR (objectClass=mailList) OR (objectClass=mailAlias)))"; scope = SUB; IDFieldName = mail; bindFields = (mail); // value of UID field must be unique on whole server. UIDFieldName = mail; IMAPLoginFieldName = mail; CNFieldName = cn; SearchFieldNames = (cn, sn, displayName, telephoneNumber, mail, shadowAddress, departmentNumber); // Resources management (Free/Busy) // Reference: https://docs.iredmail.org/sogo.manage.resources.html KindFieldName = "Kind"; MultipleBookingsFieldName = "MultipleBookings"; } ); LDAP backend */ } 2) please attach your _complete_ Apache vHost config file(s) from /etc/apache2/sites-available that is/are currently enabled (and therefore linked to /etc/apache2/sites-enabled) # Webmail Interface <VirtualHost *:80> ServerAdmin ad...@davenet.fr ServerName webmail.davenet.fr ErrorLog /var/log/apache2/webmail-ssl-error_log CustomLog /var/log/apache2/webmail-ssl-access_log common LogLevel warn #SOGo Alias /SOGo.woa/WebServerResources/ \ /usr/lib/GNUstep/SOGo/WebServerResources/ Alias /SOGo/WebServerResources/ \ /usr/lib/GNUstep/SOGo/WebServerResources/ <Directory /usr/lib/GNUstep/SOGo/> AllowOverride None <IfVersion < 2.4> Order deny,allow Allow from all </IfVersion> <IfVersion >= 2.4> Require all granted </IfVersion> # Explicitly allow caching of static content to avoid browser specific behavior. # A resource's URL MUST change in order to have the client load the new version. <IfModule expires_module> ExpiresActive On ExpiresDefault "access plus 1 year" </IfModule> </Directory> ## Uncomment the following to enable proxy-side authentication, you will then ## need to set the "SOGoTrustProxyAuthentication" SOGo user default to YES and ## adjust the "x-webobjects-remote-user" proxy header in the "Proxy" section ## below. # ## For full proxy-side authentication: #<Location /SOGo> # AuthType XXX # Require valid-user # SetEnv proxy-nokeepalive 1 # Allow from all #</Location> # ## For proxy-side authentication only for CardDAV and GroupDAV from external ## clients: #<Location /SOGo/dav> # AuthType XXX # Require valid-user # SetEnv proxy-nokeepalive 1 # Allow from all #</Location> ProxyRequests Off SetEnv proxy-nokeepalive 1 ProxyPreserveHost On # When using CAS, you should uncomment this and install cas-proxy-validate.py # in /usr/lib/cgi-bin to reduce server overloading # # ProxyPass /SOGo/casProxy http://localhost/cgi-bin/cas-proxy-validate.py # <Proxy http://localhost/app/cas-proxy-validate.py> # Order deny,allow # Allow from your-cas-host-addr # </Proxy> # Redirect / to /SOGo RedirectMatch ^/$ https://webmail.davenet.fr/SOGo # Enable to use Microsoft ActiveSync support # Note that you MUST have many sogod workers to use ActiveSync. # See the SOGo Installation and Configuration guide for more details. # ProxyPass /Microsoft-Server-ActiveSync \ http://127.0.0.1:20000/SOGo/Microsoft-Server-ActiveSync \ retry=60 connectiontimeout=5 timeout=360 ProxyPass /SOGo http://127.0.0.1:20000/SOGo retry=0 <Proxy http://127.0.0.1:20000/SOGo> ## Adjust the following to your configuration ## and make sure to enable the headers module <IfModule headers_module> #RequestHeader set "x-webobjects-server-port" "443" #SetEnvIf Host (.*) HTTP_HOST=$1 #RequestHeader set "x-webobjects-server-name" "%{HTTP_HOST}e" env=HTTP_HOST #RequestHeader set "x-webobjects-server-url" "https://%{HTTP_HOST}e" env=HTTP_HOST RequestHeader set "x-webobjects-server-port" "443" RequestHeader set "x-webobjects-server-name" "webmail.davenet.fr" RequestHeader set "x-webobjects-server-url" "https://webmail.davenet.fr" ## When using proxy-side autentication, you need to uncomment and ## adjust the following line: RequestHeader unset "x-webobjects-remote-user" # RequestHeader set "x-webobjects-remote-user" "%{REMOTE_USER}e" env=REMOTE_USER RequestHeader set "x-webobjects-server-protocol" "HTTP/1.0" </IfModule> AddDefaultCharset UTF-8 Order allow,deny Allow from all </Proxy> # For Apple autoconfiguration <IfModule rewrite_module> RewriteEngine On RewriteRule ^/.well-known/caldav/?$ /SOGo/dav [R=301] RewriteRule ^/.well-known/carddav/?$ /SOGo/dav [R=301] </IfModule> RewriteEngine on RewriteCond %{SERVER_NAME} =webmail.davenet.fr RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] AddDefaultCharset Off </VirtualHost> # 3) attach the output of /var/log/sogo/sogo.log, in particular the lines after a restart of sogod root@webmail:/etc/apache2/sites-available# systemctl restart sogo root@webmail:/etc/apache2/sites-available# tail -f /var/log/sogo/sogo.log Oct 31 16:14:55 sogod [39263]: <0x0x55fc5b2a8820[WOWatchDog]> preparing 3 children Oct 31 16:14:55 sogod [39263]: <0x0x55fc5b2a8820[WOWatchDog]> child spawned with pid 39265 Oct 31 16:14:55 sogod [39263]: <0x0x55fc5b2a8820[WOWatchDog]> child spawned with pid 39266 Oct 31 16:14:55 sogod [39263]: <0x0x55fc5b2a8820[WOWatchDog]> child spawned with pid 39267 2023-10-31 16:14:55.311 sogod[39265:39265] ERROR(+[GCSFolderManager defaultFolderManager]): default 'OCSFolderInfoURL' is not a valid URL: 'mysql://userDB:Password@192.168.10.250:3306/sogo/sogo_folder_info' Oct 31 16:14:55 sogod [39265]: <0x0x55fc5b483f20[WOHttpAdaptor]> notified the watchdog that we are ready Oct 31 16:33:22 sogod [39267]: [WARN] <0x0x7f54c54e1f60[WOxElemBuilder]> could not locate builders: WOxExtElemBuilder,WOxExtElemBuilder 2023-10-31 16:33:22.482 sogod[39267:39267] EXCEPTION: <NSException: 0x55fc5b6aa2f0> NAME:NSInvalidArgumentException REASON:Tried to add nil value for key 'users' to dictionary INFO:{} Do you have a solution for this error? Thanks Alain ____________________________________________ Le Mardi, Octobre 31, 2023 10:51 CET, "Markus Winkler" (m...@irmawi.de) <users@sogo.nu> a écrit: > Hello Alain, > > On 30.10.23 23:01, "alain25" (s...@osnetworking.com) wrote: > > I always get a 501 error > > 1) please attach your _complete_ current /etc/sogo/sogo.conf (censored > passwords of course) > > 2) please attach your _complete_ Apache vHost config file(s) from > /etc/apache2/sites-available which is/are currently activated (and so > linked to /etc/apache2/sites-enabled) > > 3) please attach the output of /var/log/sogo/sogo.log, especially the lines > after a restart of the sogod > > Without these essential information it's quite impossible to help. > > Thanks and regards > Markus -- Merci