[horde] Fwd: Errors after PHP 7.3 upgrade on Debian Stretch
poubeline at free.fr
poubeline at free.fr
Mon Sep 23 18:26:10 UTC 2019
> De: "Arjen de Korte" <build+horde at de-korte.org>
> À: horde at lists.horde.org
> Envoyé: Lundi 23 Septembre 2019 19:15:05
> Objet: Re: [horde] Fwd: Errors after PHP 7.3 upgrade on Debian
> Stretch
> Citeren poubeline at free.fr:
> >> Citeren poubeline at free.fr:
> >
> >>
> >>> Citeren poubeline at free.fr:
> >>>
> >>>
> >>>> Hi All,
> >>>>
> >>>>
> >>>> I've just upgraded my php version from 7.0 to 7.3 on my Debian
> >>>> Stretch server (v9.11) and I get the following errors in the
> >>>> apache
> >>>> log :
> >>>>
> >>>>
> >>>> FIRST :
> >>>>
> >>>> [php7:warn] [pid 20247] [client my_IP:59368] PHP Warning:
> >>>> "continue"
> >>>> targeting switch is equivalent to "break". Did you mean to use
> >>>> "continue 2"? in
> >>>> /usr/share/php/Horde/ActiveSync/Wbxml/Decoder.php
> >>>> on line 352
> >>>>
> >>>>
> >>>> I could change the value directly in the decoder.php file to
> >>>> 'continue 2' to avoid these messages, but is there a clean
> >>>> solution
> >>>> to that or I just can ignore it ?
> >>>
> >>> Ignore it.
> >>>
> >>>> SECOND :
> >>>> PHP Warning: Declaration of Horde_Form_Type_pgp::init($gpg,
> >>>> $temp_dir = NULL, $rows = NULL, $cols = NULL) should be
> >>>> compatible
> >>>> with Horde_Form_Type_longtext::init($rows = 8, $cols = 80,
> >>>> $helper =
> >>>> Array) in /usr/share/php/Horde/Form/Type.php on line 878,
> >>>> referer:
> >>>> https://my_webmail_server_adress/imp/dynamic.php?page=mailbox
> >>>
> >>> Not an error either ('PHP Warning'). Unless you're a Horde
> >>> developer,
> >>> you can safely ignore these messages.
> >>>
> >>>> I have several of them when trying to access the filters as I
> >>>> still
> >>>> try to recover another issue with the vacation script which is
> >>>> not
> >>>> saved due to a 'connection refused' issue that I already
> >>>> submitted
> >>>> but still ongoing.
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> My Horde server is version 5.22 and I have applied the latest
> >>>> patches downloaded from the Pear channel.
> >>>>
> >>>>
> >>>> If someone can help me find a solution for both issues, that
> >>>> will be
> >>>> very welcomed.
> >>>>
> >>>> Thanks for your help on this.
> >>>> Cheers
> >>>
> >>>
> >>> Hi Arjen,
> >>>
> >>>
> >>> Thanks for your reply. I was pretty sure that I could get rid of
> >>> it
> >>> as it is PHP Warning but I was not sure if I had something wrong
> >>> with my Horde installation due to these 'errors'.
> >>>
> >>>
> >>> I have another question for you if you have 5 minutes more for
> >>> me.
> >>> I have sent on August 20th this question about Ingo :
> >>> #########
> >>>
> >>> Hi all,
> >>>
> >>>
> >>> I post this question in both mailing lists as I saw some traffic
> >>> about Ingo in the Horde mailing list also.
> >>>
> >>>
> >>> I am currently fighting to get the Ingo application work
> >>> correctly
> >>> for vaccation.
> >>> I have been able to setup correctly the backends.local.php to use
> >>> the sieve driver with use of TLS for my server.
> >>> I can activate and deactivate the vaccation filter, but when I
> >>> try
> >>> to save the rule for an out of office message, I get the
> >>> following
> >>> error :
> >>>
> >>>
> >>> Script not updated: There was an error activating the script.
> >>> Connection refused.
> >>>
> >>>
> >>> I have used the 'debug' parameter in the backends.local.php and I
> >>> do not get any trace of this script error. I had some traces when
> >>> struggeling with the authentification, but not for the script
> >>> update.
> >>> In my backends.local.php, I have set this:
> >>> $backends['sieve']['transport'][Ingo::RULE_ALL]['params']['scriptname']
> >>> =
> >>> 'ingo';
> >>>
> >>> which is the same as in backends.php
> >>>
> >>>
> >>> Do you have any clue on how to get this script updated or even to
> >>> get a trace of where this is failing ?
> >>
> >> Please post the full contents of backends.local.php *and* make
> >> sure
> >> that you have made no modifications to backends.php as well. It
> >> may
> >> also help to know which Sieve server you're using.
> >>
> >> My first guess would be that your Sieve server is returning an
> >> error
> >> because it has no access to the directory where it is configured
> >> to
> >> write the script.
> >>
> >>> Thanks for your help.
> >>> #########
> >>>
> >>>
> >>> Do you know where I can get trace about what is happening with
> >>> the
> >>> script not update due to a 'connection refused' error.
> >>> Do you know what kind of trace and in which module I can activate
> >>> to get a good information about what is going on?
> >>>
> >>>
> >>> Thank you very much for your help anyway.
> >
> > Besides setting the "debug" parameter in Ingo's configuration, you
> > also need to set the log level to DEBUG in the main Horde logging
> > configuration. Then you can see the complete
> > client-server-communication in Horde's logs.
> >
> > --
> > Jan Schneider
> > The Horde Project
> > https://www.horde.org/
> >
> >
> >
> >
> >
> > Hi Arjen and Jan,
> >
> >
> > Thank you for your help, really appreciated !!
> >
> >
> > As you asked Arjen, here is the full content of my
> > backends.local.php file :
> >
> >
> > <?php
> >
> > $backends['imap']['disabled'] = true;
> > $backends['sieve']['disabled'] = false;
> > $backends['sieve']['preferred'] = '';
> > $backends['sieve']['script'][Ingo::RULE_ALL]['driver'] = 'sieve';
> > $backends['sieve']['script'][Ingo::RULE_ALL]['params']['utf8'] =
> > true;
> > $backends['sieve']['script'][Ingo::RULE_ALL]['params']['imapflags']
> > = true;
> > $backends['sieve']['script'][Ingo::RULE_ALL]['params']['notify'] =
> > true;
> > $backends['sieve']['transport'][Ingo::RULE_ALL]['driver'] =
> > 'timsieved';
> > $backends['sieve']['transport'][Ingo::RULE_ALL]['params']['hostspec']
> > =
> > 'my.server.FQDN';
> > $backends['sieve']['transport'][Ingo::RULE_ALL]['params']['logintype']
> > =
> > 'PLAIN';
> > $backends['sieve']['transport'][Ingo::RULE_ALL]['params']['usetls']
> > = true;
> > $backends['sieve']['transport'][Ingo::RULE_ALL]['params']['port'] =
> > 4190;
> > $backends['sieve']['transport'][Ingo::RULE_ALL]['params']['scriptname']
> > =
> > 'ingo';
> > $backends['sieve']['transport'][Ingo::RULE_ALL]['params']['debug']
> > = false;
> >
> >
> > The Dovecot mail server and the Sieve server are local servers. I
> > had to specify the 'hotspec' name to fit the security check of the
> > server name (when I was setting 'localhost', I had a connection
> > issue, which is normal behavior).
> That is a fairly complicated backends.local.php when all you need for
> a Dovecot server listening on 'localhost' is the following
> configuration:
> <?php
> $backends['imap']['disabled'] = true;
> $backends['sieve']['disabled'] = false;
> $backends['sieve']['transport'][Ingo::RULE_ALL]['params']['usetls'] =
> false;
> $backends['sieve']['script'][Ingo::RULE_ALL]['params']['utf8'] =
> true;
> Dovecot will allow unencrypted connections through localhost by
> default, so you only need to tell Horde to not use encryption in this
> case. And the last line, but this is already explained in the
> backends.php file.
> I use the above configuration and know it will work with Dovecot. You
> may want to check your Dovecot configuration, as the 'sieve'
> extension
> is no enabled by default as far as I remember.
> > Jan, thanks for the trick on the debug tracing, I understand now
> > why
> > setting the 'debug' variable in Ingo was not enough.
> > I am going to set this up and check what is going on in the logs.
> >
> >
> > I'll get back to you as soon as possible.
> >
> >
> > Thanks guys, Laurent
Arjen,
I have followed your configuration settings and I still get the 'Connection refused' for the script update.
But it is true that this setting is simplier. I have tried this kind of configuration before but I thought that it was something missing in may backend.local.php file which was causing this behavior.
For the trace I gave just before, it is only issues with the PHP7.3 upgrade, but nothing to do with the script update.
I used the 'DEBUG' option for the logging trace. Should I use another kind of tracing like 'WARN' to get the correct logging information about the SIEVE rejection ?
Here is my dovecot configuration. As you will see, SIEVE is activated :
# 2.2.27 (c0f36b0): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.16 (fed8554)
# OS: Linux 4.9.0-11-amd64 x86_64 Debian 9.11
dict {
quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
lmtp_save_to_detail_mailbox = yes
mail_location = maildir:~/maildir:LAYOUT=fs:DIRNAME=__maildir__
mail_plugins = " quota virtual"
mail_privileged_group = vmail
mailbox_list_index = yes
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext spamtest spamtestplus
namespace inbox {
inbox = yes
location =
mailbox Drafts {
auto = no
special_use = \Drafts
}
mailbox Junk {
auto = subscribe
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox Trash {
auto = no
special_use = \Trash
}
prefix =
separator = /
subscriptions = yes
type = private
}
namespace search {
location = virtual:~/search:LAYOUT=fs:INDEX=MEMORY
mailbox All {
auto = subscribe
special_use = \All
}
mailbox New {
auto = subscribe
}
mailbox Star {
auto = subscribe
special_use = \Flagged
}
prefix = search/
separator = /
type = private
}
passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
plugin {
antispam_backend = pipe
antispam_mail_notspam = learn_ham
antispam_mail_sendmail = /usr/bin/rspamc
antispam_mail_sendmail_args = -h;localhost:11334;-P;q1
antispam_mail_spam = learn_spam
antispam_pipe_program = /usr/bin/rspamc
antispam_pipe_program_args =
antispam_pipe_program_notspam_arg = learn_ham
antispam_pipe_program_spam_arg = learn_spam
antispam_spam = Junk
antispam_spam_pattern_ignorecase = junk*;spam*
antispam_trash = Trash
antispam_trash_pattern_ignorecase = trash;deleted*
mailbox_alias_new = Sent Messages
mailbox_alias_new2 = Sent Items
mailbox_alias_new3 = Spam
mailbox_alias_old = Sent
mailbox_alias_old2 = Sent
mailbox_alias_old3 = Junk
quota = dict:User quota::proxy::quota
quota_rule = Trash:storage=+100M
quota_status_nouser = DUNNO
quota_status_overquota = 552 5.2.2 Mailbox is over quota
quota_status_success = DUNNO
quota_warning = storage=100%% quota-warning +100 %u
quota_warning2 = storage=95%% quota-warning +95 %u
quota_warning3 = storage=80%% quota-warning +80 %u
quota_warning4 = -storage=100%% quota-warning -100 %u
recipient_delimiter = _
sieve = file:~/sieve;active=~/.dovecot.sieve
sieve_before = /etc/dovecot/sieve_before/rspamd.sieve
sieve_extensions = +spamtest +spamtestplus
sieve_spamtest_max_header = X-Spamd-Result: default: [[:alnum:]]+ \[-?[[:digit:]]+\.[[:digit:]]+ / (-?[[:digit:]]+\.[[:digit:]]+)\]
sieve_spamtest_status_header = X-Spamd-Result: default: [[:alnum:]]+ \[(-?[[:digit:]]+\.[[:digit:]]+) / -?[[:digit:]]+\.[[:digit:]]+\]
sieve_spamtest_status_type = score
}
postmaster_address = postmaster at MY.FQDN
protocols = " imap lmtp sieve"
recipient_delimiter = _
service auth-worker {
user = $default_internal_user
}
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
unix_listener auth-userdb {
user = vmail
}
}
service dict {
unix_listener dict {
group = vmail
mode = 0660
user = vmail
}
}
service imap-postlogin {
executable = script-login /etc/dovecot/imap-postlogin.bash
user = vmail
}
service imap {
executable = imap imap-postlogin
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
}
service managesieve-login {
inet_listener sieve {
address = 127.0.0.1
port = 4190
}
process_min_avail = 1
service_count = 1
vsz_limit = 64 M
}
service managesieve {
process_limit = 1024
}
service quota-status {
client_limit = 1
executable = quota-status -p postfix
inet_listener {
address = localhost
port = 12349
}
}
service quota-warning {
executable = script /usr/local/bin/quota-warning.sh
unix_listener quota-warning {
group = vmail
mode = 0660
user = vmail
}
user = vmail
}
ssl = required
ssl_cert = </etc/letsencrypt/live/MY.FQDN/cert.pem
ssl_key = # hidden, use -P to show it
userdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
protocol lmtp {
mail_plugins = " quota virtual antispam quota sieve virtual mailbox_alias"
postmaster_address = postmaster at MY.FQDN
}
protocol lda {
mail_plugins = " quota virtual antispam quota sieve virtual mailbox_alias"
}
protocol imap {
mail_plugin_dir = /usr/lib/dovecot/modules
mail_plugins = " quota virtual antispam quota virtual mailbox_alias imap_quota"
}
More information about the horde
mailing list