Re: Fwd: Errors after PHP 7.3 upgrade on Debian Stretch
[email protected] Mon, 23 Sep 2019 20:26:10 +0200 (CEST)
| Newsgroups | gmane.comp.horde.user |
|---|---|
| Message-ID | <306589827.65419043.1569263170951.JavaMail.root@zimbra1-e1.priv.proxad.net> |
> 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 ? 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]