0

we recently updated our EE install from 2.11.9 to 5.3.0 - the server set up stayed the same using Nginx, PHP 5.6.40, MySQL 5.5.62, page charset is set to utf-8.

We’re now verifying the site after the update and we’re noticing that some pages on the front-end show code fragments from the template in the html rendered in the browser, for example: on some pages in our blog we can see text fragments like set} appear in the page, which comes from the closing tag {/layout:set} in the template…

After some investigation we found that certain characters in the CMS content now break the template on EE 5.3.0, hence why code fragments appear in the html, for example an elongated hyphen, aka em dash (—), causes this. Once we replace with a standard hyphen the error goes away.

Just to re-iterate: the exact same CMS entries did not show any of this behavior on EE 2.11.9.

After some more investigation we discovered that this behavior is caused by mbstring.func_overload, which we have set to a value of 6, as per the recommendation in the EE docs.

If we disable mbstring.func_overload or set it to 0, the templates render just fine on the front-end, but we run into a new nasty bug/error now:

(with mbstring.func_overload disabled) we now cannot save any CMS entry that contains special characters in the EE 5.3.0 CP, the CMS entry is saved but the CMS field that contained special characters is completely wiped/deleted.

--> EE 5.3.0 deletes/wipes the data in those fields with no confirmation or warning.

If we re-enable mbstring, the CMS entries save just fine, but the template breaks on the front-end.

We've also updated to PHP 7 and tested this on PHP 7.0.33 / 7.1.33 / 7.2.26 / 7.3.13 - all show the exact same behavior as described above.

DB storage engine for all tables has been converted to InnoDB, problem persists. We also updated MySQL to 5.7.28, problem persists.

This is the MySQL config:

--character-set-server=utf8
--collation-server=utf8_unicode_ci

EE db params in config.php:

$config['database'] = array(
    'expressionengine' =>
        array(
            'hostname' => 'ee_host',
            'database' => 'ee_db',
            'username' => 'ee_user',
            'password' => 'ee_pw',
            'dbprefix' => 'exp_',
            'char_set' => 'utf8mb4',
            'dbcollat' => 'utf8mb4_unicode_ci',
            'port' => ''
        ),
);

I'm assuming this issue is due to a server misconfig, but cannot figure out what it is. The EE wizard tool shows everything is supported except "URL Segment Support".

Any idea what we need to do in order to use the same CMS entries (that were working just fine on EE 2.11.9) on EE 5.3.0 ?

Thanks !

  • Can anybody help ? – m_j Jan 12 at 5:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.