These instructions take advantage of the Composer powered update systems in 5.4 for maintenance updates, so make sure:
For Upgrading from versions prior to 5.3 look at the Installation and Upgrade Guides.
You will also find, at the end of this document, a list of new, optional packages that were made available during the maintenance phase of this version.
Follow all* instructions below that applies to the version you're updating from: when updating from 5.4.0 everything applies.
* The version you update to will always be the latests, hence the importance of following all steps.
Newer versions of Composer sometimes updates it's API's and as such we need to make sure our composer plugin ezpublish-legacy-installer is up-to-date before we do anything else, so if you don't already have
ezsystems/ezpublish-legacy-installer v2.0.3 and Composer 1.1, do the following:
# First install Composer v1.0 that works with old version of ezpublish-legacy-installer php -r "copy('https://getcomposer.org/download/1.0.3/composer.phar', 'composer.phar');" # Then install newer version php -d memory_limit=-1 composer.phar update --no-dev --prefer-dist --no-scripts ezsystems/ezpublish-legacy-installer # Then make sure composer is updated to latests php -d memory_limit=-1 composer.phar selfupdate
Perform the following command to make sure you you are not affected by conflicts caused by this package:
php -d memory_limit=-1 composer.phar remove --no-update --dev behat/mink-selenium-driver
|This release fixes a vulnerability in the eZ Publish password recovery function. You need to have the PHP OpenSSL extension (ext-openssl) installed to take full advantage of the improved security, but even without it security is improved. See Security Advisory for further information.|
The XmlText fix for EZP-23513 (see https://github.com/ezsystems/ezpublish-kernel/pull/1087) deprecates/removes the CustomTags pre-converter in favor of a new Expanding converter. While they're not part of the public API, if you rely on this file in any way, you might want to check and update your code.
The legacy, v1 REST API, is now integrated to the Symfony Kernel. This allows interaction between this channel and new stack caches (persistence and HTTP). It mainly affects the Content Staging legacy extension. Remove the following line from your rewrite rules and restart your web server:
RewriteRule ^/api/[^/]+/v1/ /index_rest.php [L]
rewrite "^/api/[^/]+/v1" "/index_rest.php" last;
ezpublish/EzPublishKernel.php, and instantiate
EzPublishLegacySearchEngineBundle in the list of enabled bundles in the
$bundles array in the
registerBundles() method, right before
For issue EZP-26748, see thefor patch.
Make sure you are using Symfony 2.8, as Symfony 2.7 support is being phased out. Reasoning: 2.7's main support period is coming to an end, 2.8 provides a better version to get ready for Symfony 3.x upgrade because of deprecation warnings, and on some system configurations* Symfony 2.7 is considered less secure.
To make sure you use the recommended versions of Symfony and some related libraries run the following composer command:
php -d memory_limit=-1 composer.phar require --no-update symfony/symfony:^2.8.41 sensio/distribution-bundle:~3.0 symfony/assetic-bundle:~2.8
\* Random strings generated by
paragonie/random_compat v1 as used by 2.7 are considered to not be cryptographically secure on Windows in general, and on older PHP versions (see CVE-2015-8867).
With this command you'll update all packages that have received updates:
# First delete the Symfony container cache to avoid error, on Windows use something like: DEL /F /Q /S ezpublish/cache/*/*ProjectContainer.php rm ezpublish/cache/*/*ProjectContainer.php php -d memory_limit=-1 composer.phar update --no-dev --prefer-dist
Legacy extensions autoload must be regenerated when new classes are added. To make sure to avoid any issues always run this command after composer update:
Follow all instructions below that applies to the version you've updated from, i.e. if you are updating from 5.4.0 everything applies.
An eZ Find user needs to update their solr
For each solr core (located in
ezfind/java/solr), you need to edit
Around line 566, right after:
<field name="meta_priority_si" type="sint" indexed="true" stored="true" multiValued="true"/>
Add the following lines:
<!-- denormalised fields for hidden and visible path elements --> <field name="meta_visible_path_si" type="sint" indexed="true" stored="true" multiValued="true"/> <!-- Visible Location path IDs --> <field name="meta_visible_path_string_ms" type="mstring" indexed="true" stored="true" multiValued="true"/> <!-- Visible Location path string --> <field name="meta_hidden_path_si" type="sint" indexed="true" stored="true" multiValued="true"/> <!-- Hidden Location path IDs --> <field name="meta_hidden_path_string_ms" type="mstring" indexed="true" stored="true" multiValued="true"/> <!-- Hidden Location path string -->
Now restart Solr, and re-index your content to be able to take advantage of this improvement.
New features are sometimes backported from the development version as external packages. They can be installed on top of your existing installation.
You may also install the
ezsystems/ezplatform-solr-search-engine package, compatible with eZ Publish Platform kernel 5.4.5 and higher. You can read more about that on the 5.4.5 release notes.
Follow install instructions on the dedicated Solr Search Engine Bundle page.