Re: Fwd: Errors after PHP 7.3 upgrade on Debian Stretch
Arjen de Korte <[email protected]> Mon, 23 Sep 2019 20:43:35 +0200
| Newsgroups | gmane.comp.horde.user |
|---|---|
| Message-ID | <[email protected]> |
Citeren [email protected]: >> De: "Arjen de Korte" <[email protected]> >> À: [email protected] >> Envoyé: Lundi 23 Septembre 2019 19:15:05 >> Objet: Re: [horde] Fwd: Errors after PHP 7.3 upgrade on Debian >> Stretch > >> Citeren [email protected]: > >> >> Citeren [email protected]: >> > >> >> >> >>> Citeren [email protected]: >> >>> >> >>> >> >>>> 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 ? I have no idea. I use PHP-7.3.9 here, with Dovecot 2.3.7.2 and everything works as expected. Is it only the vacation script that is failing? Can you confirm that you can define filters for mail? > 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 = [email protected] > 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 = [email protected] > } > 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" > } -- Horde mailing list Frequently Asked Questions: http://horde.org/faq/ To unsubscribe, mail: [email protected]