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:[email protected]:3306/sogo/sogo_user_profile";
OCSFolderInfoURL =
"mysql://userDB:[email protected]:3306/sogo/sogo_folder_info";
OCSSessionsFolderURL =
"mysql://userDB:[email protected]:3306/sogo/sogo_sessions_folder";
OCSEMailAlarmsFolderURL =
"mysql://userDB:[email protected]: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:[email protected]:3306/sogo/sogo_cache_folder";
OCSStoreURL = "mysql://userDB:[email protected]:3306/sogo/sogo_store";
OCSAclURL = "mysql://userDB:[email protected]: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:[email protected]: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:[email protected]: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:[email protected]: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 [email protected]
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:[email protected]: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" ([email protected])
<[email protected]> a écrit:
> Hello Alain,
>
> On 30.10.23 23:01, "alain25" ([email protected]) 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