eZ Publish / Releases / eZ Publish Community Project 2014 / ez-publish-community-project-2014.01

ez-publish-community-project-2014.01

You are using the innovative and cutting-edge version of eZ Publish, built by eZ Systems and the eZ Community.

Requirements

Version : Release date : Requirements :
Community Project 2014.01 (9th "eZ Publish 5 build") January. 31th, 2014

PHP >= 5.3.3 (5.3.7 known to be bugged)
MySQL >= 5.0.51a
PostgreSQL >= 8

If using eZ Find : Java <= 1.6 or >= 1.7.1

Release Notes - ez-publish-community-project-2014.01

Important Information Before You Start Installing

  • This is the 10th "eZ Publish 5" build, that comprises an eZ Publish 4.x build, under the 'ezpublish_legacy' folder, at the root of your eZ Publish 5 installation. We highly recommend, however, to get acquainted with the brand new eZ Publish 5 stack :)

 

Installation

Requirements

Make sure to check the eZ Publish 2014.01 system requirements before proceeding.

Proceeding: One Major Tip

When installing on a linux/UNIX system or Windows-based system, make sure to create a Virtual Host, before starting the installation wizard (this step is highly recommended).

 

Resources

The main entry point of knowledge for you is the eZ Publish 5 Cookbook. 

Don't miss all resources of eZ Unconference #2 (slides & source code):https://github.com/ezunconference  

Check Jérôme's recent blog post about legacy_mode: legacy_mode clarified

Have a look at Nicolas' slides presented at the first stage of the eZ+SensioLabs roadshow in Cologne, presenting eZ Publish 5.

Do not miss Joe Kepley's blog containing loads of great tutorials on eZ Publish 5. Also, read Damien's story of the upgrade of planet-ezpublish.fr to eZ Publish 5. Also, take a look at thistutorial by Granite Horizon, to take a safe start in creating controllers for eZ Publish 2013.05. You may want tell what you would like to see in an eZ Publish 5 tutorial here:  What's Needed in an eZ 5 Tutorial?

 

Feedback/reports are key, more than ever

Our community is at a turning point, where feedback is more important than ever. Should you encounter issues installing eZ Publish 5, using it, stumbling upon missing functionality, or be willing to take an active part in eZ Publish 5 development, like some already did, use the following resources:

 

Stats

  • 49 bug-fixes for registered issues
  • 87 pull-requests merged
  • 34 enhancements

See the changelog for details

 

Read The Fine Manual (and please give feedback)

You can find it here: https://confluence.ez.no/display/EZP/eZ+Publish+Documentation, notably the Cookbook for developers. Feedback appreciated on this too!

Upgrade Notes

Upgrading from eZ Publish Community Project 2013.11 to 2014.01

Important Information Before You Start

  • Be sure to have updated your database as described in step 4 in the previous upgrading notes.
  • This is the 11th "eZ Publish 5" build, that comprises an eZ Publish 4.x build, under the 'ezpublish_legacy' folder, at the root of your eZ Publish 5 installation,
  • The upgrade procedure below must be applied to the latter, then the normal installation procedure for the eZ Publish 5 stack must be followed, 
  • Make sure to follow the Virtual Host based installation procedure in the latter to initiate the setup wizard.

 

Upgrading from 2013.11 to 2014.01

 

This section describes how to upgrade your existing eZ Publish Community Project 2013.11 installation to build 2014.01. Make sure that you have a working backup of the site before you do the actual upgrade, and make sure the installation you are performing the upgrade on is offline.

Important upgrade notes:

The procedure for upgrading from eZ Publish Community Project build 2013.11 to build 2014.01 consists of the following steps:

  • Backing up the website
  • Putting the website offline (optional)
  • Upgrading the database
  • Upgrading the distribution files to 2014.01
  • Upgrading custom extensions
  • Regenerate the autoload array for extensions
  • Clearing the caches
  • Putting the website online (optional)

 

Check for requirements

It is recommended to always verify the requirements for the new version of eZ Publish before attempting an upgrade. eZ Publish Community Project 2013.11 is compatible with PHP version 5.3.3 and above. So is eZ Publish Community Project 2014.01. For more information regarding system requirements check out "Requirements for doing a normal installation".

 

Step 1: Backing up the website

  • Filesystem set: the extension and settings folders, plus any other folder where you have put your custom developments in (e.g. design/mydesign)
  • Content set: the var/storage, var/<vardir>/storage folders, and a dump of the database (nb: for ezdb cluster mode, a dump of the storage database is needed instead of the storage folders; for ezdfs cluster mode both a dump of the storage database and a backup of the shared var folder on nfs)
  • Optional: the complete installation directory of eZ Publish, except for the var directory and for the eZFind index directory. This is mandatory if you have customized the .htaccess or config.php files

Tip: if you have many user sessions, and the session data is stored in the database, it might be a good idea to remove all data from the session table before backing it up
Tip: in ezdb and ezdfs cluster modes, it is a good idea to clear all caches before dumping the storage database, as it is not easy to only backup storage and not caches

 

Step 2: Putting the website offline (optional)

This step is recommended but not mandatory

  • Put the public website offline and set up a courtesy page to prevent end users from accessing the website while you upgrade. This involves generally modifying the webserver configuration. Make sure you have a different vhost available to access the public website using a private IP address or hostname during the upgrade process
  • Disable execution of eZ Publish cronjobs

 

Step 3: Upgrading the distribution files

The easiest way to upgrade the distribution files is to unpack eZ Publish 2014.01 to a separate directory and then copy into it the directories that contain site-specific files from the existing installation. Make sure that you copy the following directories:

  • design/<mydesign>
  • design/<mydesign_admin>
  • var
  • settings/siteaccess
  • settings/override

Replace "mydesign" and "mydesign_admin" with the actual names of your designs.

Important note: Because the new directory has replaced the original directory, the directory permissions need to be fixed. Use the following commands to do this.

(You have the choice between Shell commands or Alternative shell commands):

  • Shell commands

These shell commands will give proper permission to the web server:

cd </path/to/your/eZ/Publish/directory>cd ezpublish_legacychmod -R a+rwx design extension settings var 
  • Alternative shell commands

 These commands will setup the permission more correctly, but require knowledge about the user account used for running the web server process.cd </path/to/your/eZ/Publish/directory>

cd </path/to/your/eZ/Publish/directory>cd ezpublish_legacychmod -R og+rwx design extension settings varchown -R <webuser>:<webusergroup> design extension settings var 

 

Step 4: Custom extensions

If you are using custom extensions, the sub-directories inside the "extension" directory will also have to be copied. However, make sure that you do not overwrite any extensions that are included in the eZ Publish 2014.01 tarball, which are currently:

Bundled and enabled

  • ezautosave-5.2.0-alpha1
  • ezcomments-5.2.0-alpha1 (ezpublish-5.2.0)
  • ezformtoken-5.2.0-alpha1
  • ezie-5.2.0-alpha1
  • ezjscore-5.2.0-alpha1
  • ezmultiupload-5.2.0-alpha1
  • ezodf-5.2.0-alpha1 (ezpublish-5.2.0)
  • ezoe-5.2.0-alpha1
  • ezprestapiprovider-5.2.0-alpha1
  • eztags-1.3.0-dev

Bundled but not enabled

  • ezfind-5.2.0-alpha1
  • ezscriptmonitor-5.2.0-alpha1 (ezpublish-5.2.0)

Optional installation (depending on the package chosen during the installation wizard)

  • ezdemo-5.2.0-alpha1 (ezpublish-5.2.0)
  • ezdemodesign-5.2.0-alpha1 (ezpublish-5.2.0)
  • ezflow-5.2.0-alpha1 (ezpublish-5.2.0)
  • ezgmaplocation-5.2.0-alpha1 (ezpublish-5.2.0)
  • ezstarrating-5.2.0-alpha1 (ezpublish-5.2.0)
  • ezwebin-5.2.0-alpha1 (ezpublish-5.2.0)
  • ezwt-5.2.0-alpha1 (ezpublish-5.2.0)

 

 

 

Step 5: Regenerate the autoload array for extensions

To regenerate the autoload array, execute the following script from the root of your eZ Publish installation:

cd </path/to/your/eZ/Publish/directory>cd ezpublish_legacyphp bin/php/ezpgenerateautoloads.php --extension

 

Step 6: Clearing the caches

Whenever an eZ Publish website is upgraded, all caches must be cleared in a proper way. This should be done from the root directory of your eZ Publish installation:

cd </path/to/your/eZ/Publish/directory>cd ezpublish_legacyphp bin/php/ezcache.php --clear-all --purge 

Tip : Purging ensures that the caches are physically removed. When the "--purge" parameter is not specified, the caches will be expired but not removed.

Sometimes the script is unable to clear all cache files because of restrictive file/directory permission settings. Make sure that all cache files have been cleared by inspecting the contents of the various cache sub-directories within the "var" directory (typically the "var/cache/" and "var/<name_of_siteaccess>/cache/" directories). If there are any cache files left, you need to remove them manually.

 

Step 7: Putting the website back online

This step is optional, and is only needed if you put the website offline at step 2

  • warm up the template cache by pre-compiling template files. This should be done from the root directory of your eZ Publish installation:
cd </path/to/your/eZ/Publish/directory>cd ezpublish_legacyphp bin/php/eztc.php --wwwdir=<value> --index-file=<value> 
  • re-enable the cronjobs
  • warm up the content cache: use a tool such as curl or wget that will navigate the website to force eZPublish to generate the view cache for all content
  • change the webserver / firewall configuration to allow public access to your website again
  • Backing up the website
  • Putting the website offline (optional)
  • Upgrading the database
  • Upgrading the distribution files to 2014.01
  • Upgrading custom extensions
  • Regenerate the autoload array for extensions
  • Clearing the caches
  • Putting the website online (optional)

 

Step 8 (optional): Authentication through Symfony

  • In ezpublish/config/security.yml, you must remove ezpublish: true from ezpublish_front firewall.
  • In ezpublish/config/routing.yml, you must add login, login_check and logout routes (see above in [Configuration][])
  • In your templates, change your links pointing to /user/login and /user/logout to appropriate login/login_check/logout routes:

Before:

<span><a href="{{ path( 'ez_legacy', {'module_uri': '/user/login'} ) }}"></span>Login<span></a></span><span><form action="{{ path( 'ez_legacy', {'module_uri': '/user/login'} ) }}" method="post"></span><span><a href="{{ path( 'ez_legacy', {'module_uri': '/user/logout'} ) }}"></span>Logout<span></a></span>

 

After:

<span><a href="{{ path( 'login' ) }}"></span>Login<span></a></span><span><form action="{{ path( 'login_check' ) }}" method="post"></span><span><a href="{{ path( 'logout' ) }}"></span>Logout<span></a></span>

 

For more information: https://github.com/ezsystems/ezpublish-kernel/blob/master/doc/specifications/security/authentication_symfony.md#upgrade-notes

 

 

Changelog

Bugfixes

eZ Publish Kernel & APIs
  • EZP-20930: added dependency on hautelook/templated-uri-bundle
  • EZP-21044: Added OPTIONS routes loading to routing.yml
  • EZP-22186: PHP Fatal error: Allowed memory size of 536870912 bytes exhausted running composer install https://jira.ez.no/browse/EZP-22186
  • EZP-22257: BDD: PHP Warning: preg_match(): No ending delimiter '/' found in

eZ Publish Legacy Stack (LS)
  • EZP-16372: deleting of content lasts very long
  • EZP-21411: eZOracle: Link management doesn't show Objects using URL" (cherry picked from commit 4e948aaef7ae93f5b90f14fe71503757cd0ccb38)
  • EZP-21728: Put extension test classes into correct autoload file
  • EZP-21768: Changed var comparison to assignment
  • EZP-21820: eZUser::getUserCacheByUserId() may return an eZClusterFileFailure instead of an array
  • EZP-21829: Avoid notice when overriding a nonexisting variable
  • EZP-21930: searchreplace plugin generates an infinite loop while changing the case in IE9/10
  • EZP-21982: Updated linkcheck.php https warning message
  • EZP-21986: Removing an underline removes the surrounding custom tag
  • EZP-21988: async publishing should generate static cache
  • EZP-22085: "Tab" characters in node name error (urlalias_iri)
  • EZP-22128: Copyright still in 2013
  • EZP-22174: Respect site.ini\[RoleSettings]\EnableCaching setting in eZUser::purgeUserCacheByUserId() and eZUser::getUserCacheByUserId()
  • EZP-22177: eZPersistentObject::handleRows() adds bogus rows
  • EZP-22178: Updating main node doesn't update search engine
  • EZP-22181: eZUser: do not generate cache content for invalid user
  • EZP-22232: Fatal Error when calling eZContentOperationCollection::removeOldNodes() with inexistant object/object version
  • EZP-22234: Only show published users in multiplexer edit
  • EZP-22236: quotes in object name breaks state change
  • EZP-22245: Copyright still in 2013 in some legacy templates
  • EZP-22256: Copyright still shows 2013 in a bunch of files of legacy stack

eZ Publish 5
  • EZP-20930: Added missing ressources links
  • EZP-21044: Implemented REST OPTIONS
  • EZP-21045: deprecate removePolicy() and add InvalidArgumentException
  • EZP-21046: deduplicated code
  • EZP-21048: update integration tests
  • EZP-21438: handle view_embed permission in XMLText converter
  • EZP-21554: double / in REST root uris
  • EZP-21798: Role changes not working correctly on Postgres 9.1
  • EZP-21817: update non-translatable fields instead of copying
  • EZP-21906: Search API returns wrong number of total objects with content having multiple locations
  • EZP-21952: deprecated loadAnonymousUser()
  • EZP-21976: Fix empty binary file field returning "()"
  • EZP-22013: updated copyright headers to 2014
  • EZP-22036: Legacy Aware Route missing
  • EZP-22040: : Link title is not rendered in XMLText Field type
  • EZP-22101: Tweaked DefaultRouter param loading
  • EZP-22116: Install wizard throws ezcBaseValueException
  • EZP-22128: Copyright still in 2013
  • EZP-22133: Define ezpublish.api.repository as a lazy service
  • EZP-22156: make CSRF provider optional
  • EZP-22188: : Untranslated content can be viewed even when default language is not activated in current siteaccess
  • EZP-22198: fix unhide location signal
  • EZP-22227: fail test instead of skipping when Repoistory can't be created
  • EZP-22228: NotFoundException thrown when not all requested languages are present
  • EZP-22239: When the preview siteaccess runs in legacy mode, it falls back into ezpublish_legacy.default.view_default_layout

Enhancements

eZ Publish Kernel & APIs
  • EZP-21118: Dependency: nelmio/cors-bundle:~1.0
  • EZP-22045: As a developer, I want user login to be fully handled by Symfony stack
  • EZP-22139: require nelmio/cors-bundle @dev
  • EZP-22152: Added EzPublishDebugBundle

eZ Publish Legacy Stack (LS)
  • EZP-20433: Updated clusterpurge.php's help
  • EZP-20809: ezuser: allow user to log in even when userinfocache is corrupted
  • EZP-21713: Added extension/*/tests/settings to override dirs for Unit Tests
  • EZP-21774: Added loadMetaData() and storeCache() methods
  • EZP-21872: Check system user before executing script
  • EZP-21966: eZUser now supports basic drafts

eZ Publish 5
  • EZP-20172: Refactored object visiting
  • EZP-20418: Location Search Handler
  • EZP-21021: Changed Image FieldType legacy file naming
  • EZP-21118: Implemented CORS support for the REST API
  • EZP-21191: enable string 'null' as null value alias
  • EZP-21317: Create XML schema for XHTML5 input
  • EZP-21418: cleanup: criterion handlers whre moved to LocationSearchHandler
  • EZP-21562: Added API & SPI files for split repos
  • EZP-21678: Make unimplemented REST features return a 501 error
  • EZP-21908: add Content info to hide and unhide Location signal
  • EZP-21909: enable indexing Content states
  • EZP-21994: use TRUSTED_PROXIES by default for user-hash generation.
  • EZP-22045: Implemented base login in Symfony security context
  • EZP-22049: As a developer, I want to be able to configure IndexPage
  • EZP-22051: Implemented base preview mechanism
  • EZP-22061: Refactored REST listeners
  • EZP-22066: Removed lazy repository in UrlAliasRouter
  • EZP-22081: As a developer, I want to be able to seamlessly use multiple user providers
  • EZP-22099: Added support for legacy SSOHandlers
  • EZP-22103: remove deprecated dependencies
  • EZP-22126: Not possible to install/use ezpublish5 using git installation
  • EZP-22139: require nelmio/cors-bundle: dev-master
  • EZP-22143: Removed dead code in ExceptionConversion gateway
  • EZP-22152: Added dedicated EzPublishDebugBundle

Pull requests

eZ Publish Kernel & APIs
  • 86: from ezsystems
  • 87: from ezsystems
  • 90: from pedroresende
  • 91: from pedroresende
  • 92: from pedroresende
  • 93: from ezsystems
  • 95: from cleverti
  • 96: from ezsystems
  • 98: from cleverti
  • 99: from cleverti
  • 100: from cleverti
  • 101: from cleverti
  • 102: from pedroresende

eZ Publish Legacy Stack (LS)
  • 734: from jeromegamez
  • 782: from emodric
  • 783: from jeromegamez
  • 784: from jeromegamez
  • 794: from jeromegamez
  • 795: from jeromegamez
  • 797: from jeromegamez
  • 812: from jeromegamez
  • 822: from jeromegamez
  • 842: from ezsystems
  • 844: from guillaumelecerf
  • 845: from ezsystems
  • 846: from ezsystems
  • 847: from ezsystems
  • 848: from ezsystems
  • 850: from killerwolf
  • 853: from ezsystems
  • 854: from pedroresende
  • 856: from ezsystems
  • 858: from ezsystems
  • 859: from guillaumelecerf
  • 860: from guillaumelecerf
  • 861: from guillaumelecerf
  • 862: from guillaumelecerf
  • 863: from jeromegamez
  • 864: from guillaumelecerf
  • 867: from guillaumelecerf
  • 870: from ezsystems
  • 871: from joaoinacio
  • 872: from ezsystems
  • 873: from crevillo
  • 874: from crevillo

eZ Publish 5
  • 497: from ezsystems
  • 573: from ezsystems
  • 597: from ezsystems
  • 601: from pedroresende
  • 604: from ezsystems
  • 615: from ezsystems
  • 631: from joaoinacio
  • 636: from StephaneDiot
  • 638: from ezsystems
  • 639: from Plopix
  • 640: from ezsystems
  • 641: from ezsystems
  • 642: from ezsystems
  • 643: from Heliopsis-HQ
  • 644: from ezsystems
  • 647: from ezsystems
  • 648: from pedroresende
  • 649: from ezsystems
  • 650: from ezsystems
  • 653: from ezsystems
  • 654: from ezsystems
  • 655: from ezsystems
  • 656: from ezsystems
  • 659: from ezsystems
  • 662: from ezsystems
  • 665: from ezsystems
  • 666: from pedroresende
  • 670: from StephaneDiot
  • 673: from ezsystems
  • 674: from ezsystems
  • 676: from ezsystems
  • 678: from ezsystems
  • 680: from ezsystems
  • 683: from ezsystems
  • 686: from Heliopsis-HQ
  • 688: from ezsystems
  • 691: from ezsystems
  • 692: from ezsystems
  • 695: from ezsystems
  • 696: from ezsystems
  • 697: from ezsystems
  • 699: from ezsystems
  • 702: from ezsystems

Miscellaneous

eZ Publish Kernel & APIs
  • Added Selenium 2 driver to composer.json
  • Welcome to 2014, Copyright updated to 1999-2014

eZ Publish Legacy Stack (LS)
  • Fix 22079: Order of ezobjectlist doesn't save
  • Fix EZP-22092: Update TinyMCE to 3.5.10
  • Fix EZP-22060: Update YUI to 3.14.0
  • Fix 22030: Object Relations order changed upon concurrent edition

eZ Publish 5
  • EZP-215612: Fixed autoload in api & spi composer.json
  • Implemented: Allow setting custom fields for field and fulltext search queries
  • Implemented: Direct query to custom field definition
  • Implemented: MatchAll criterion visitor
  • Rename SPIPersistenceDataCollector to EzPublishDataCollector

Tags

eZ Publish 2014