eZ Publish / Releases / eZ Publish Community Project 2012 / ez-publish-community-project-2012-02

ez-publish-community-project-2012-02

eZ Publish Community Project 2012.02

Requirements

Version : Release date : Requirements :
Community Project 2012.2 March. 7th, 2012

PHP >= 5.2.14, 5.3 recommended (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-2012-02

Kernel

The highlights :

Stats

  • 11 bug-fixes for registered issues
  • 5 pull-requests merged (yesss)

See the changelog for details

Upgrade Notes

Upgrading from eZ Publish Community Project 2012.1 to 2012.2

This section describes how to upgrade your existing eZ Publish Community Project 2012.1 installation to build 2012.2. 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 2012.1 to build 2012.2 consists of the following steps:

  • Backing up the website
  • Putting the website offline (optional)
  • Upgrading the database
  • Upgrading the distribution files to 2012.2
  • 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 2012.2  is compatible with PHP version 5.3 and above. So is eZ Publish Community Project 2012.1. For more information regarding system requirements check out http://doc.ez.no/eZ-Publish/Technical-manual/4.6/Installation/Requirements-4.6

 

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 database

MySQL

Run the following against your MySQL database :

<span>ALTER</span> <span>TABLE</span> ezpending_actions <span>ADD</span> <span>COLUMN</span> id int<span>(</span><span>11</span><span>)</span> <span>AUTO_INCREMENT</span> <span>PRIMARY</span> <span>KEY</span>;<span>DELETE</span> <span>FROM</span> ezuser_accountkey <span>WHERE</span> user_id <span>IN</span> <span>(</span> <span>SELECT</span> user_id <span>FROM</span> ezuser_setting <span>WHERE</span> is_enabled <span>=</span> <span>1</span> <span>)</span>;

Postgresql

Run the following against your Postgresql database :

<span>CREATE</span> SEQUENCE ezpending_actions_s    START <span>1</span>    INCREMENT <span>1</span>    MAXVALUE <span>9223372036854775807</span>    MINVALUE <span>1</span>    CACHE <span>1</span>;<span>ALTER</span> <span>TABLE</span> ezpending_actions <span>ADD</span> id integer <span>DEFAULT</span> <span>NEXTVAL</span><span>(</span><span>'ezpending_actions_s'</span>::text<span>)</span> <span>NOT</span> <span>NULL</span>;<span>UPDATE</span> ezpending_actions <span>SET</span> id<span>=</span><span>NEXTVAL</span><span>(</span><span>'ezpending_actions_s'</span>::text<span>)</span>;<span>DELETE</span> <span>FROM</span> ezuser_accountkey <span>WHERE</span> user_id <span>IN</span> <span>(</span> <span>SELECT</span> user_id <span>FROM</span> ezuser_setting <span>WHERE</span> is_enabled <span>=</span> <span>1</span> <span>)</span>;

 

Step 4: Upgrading the distribution files

The easiest way to upgrade the distribution files is to unpack eZ Publish 2012.2 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>chmod -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>chmod -R og+rwx design extension settings varchown -R <webuser>:<webusergroup> design extension settings var 

 

Step 5: 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 2012.2 tarball, which are currently:

Bundled and enabled

  • ezautosave-1.0.0-dev
  • ezgmaplocation-1.5.0-dev
  • ezie-1.4.0-dev
  • ezjscore-1.5.0-dev
  • ezmultiupload-1.6.0-dev
  • ezodf-2.8.0-dev
  • ezoe-5.5.0-dev
  • ezprestapiprovider-1.2.0-dev
  • ezstarrating-1.5.0-dev
  • eztags-1.3.0-dev

Bundled but not enabled

  • ezcomments-1.4.0-dev
  • ezfind-2.7.0-dev
  • ezformtoken-1.1.0-dev
  • ezscriptmonitor-1.4.0-dev

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

  • ezwebin-1.10.0-dev
  • ezflow-2.5.0-dev
  • ezwt-1.6.0-dev

 

Step 6: Regenerate the autoload array for extensions

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

php bin/php/ezpgenerateautoloads.php --extension

 

Step 7: 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:

php 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 8: 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:
php 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

Changelog

Changelog from Community Project 2012.1 to Community Project 2012.2

Bugfixes

  • 15035 : Webdav Media access buggy when accessing in accentuated language
  • 18886 : New user registrations only viewable by Administrator
  • 18986 : [eZ Pending Actions] 2 records in less than one second
  • 19030 : Improve checking for variable on fetch method, ezcontentobjecttreenode.php
  • 19044 : Static cache generation fails in https://
  • 19097 : Admin2 reverse object relations tab does not include hidden objects
  • 19098 : preview is not working for items in search result (back office of ezp 4.6)
  • 19113 : 404 instead of 405 when accessing a resource with a not-supported HTTP method
  • 19116 : Using parameters not supported in custom HTTP methods
  • 19125 : Concurrent object creation : duplicate key error on ezurlialias_ml
  • 19152 : Slow after publish workflow induces Asynchronous Publishing process floods

Pull requests

  •  120 from pkamps/master
  •  279 from trolek/localization
  •  296 from HenrikWM/patch-1
  •  297 from HenrikWM/patch-2
  •  300 from dspe/master

Miscellaneous

  • Modified constructor on RAD templateoperator
  • Fixed: wrong documentation in menu.ini
  • Fixed: wrong documentation in menu.ini
  • Added additional check for node
  • Fixed if-modified-since mtime comparison
  • Changed: added button right div by default in the edit toolbar
  • Fixed: transaction counter is not reset after a DB error
  • Text change
  • Text change
  • Refined features/cluster_index formatting
  • Changed the cluster_index.txt feature doc extension (again)
  • Changed the cluster_index.txt feature doc extension
  • Removed unnecessary fclose() on error output
  • Fixed an undefined index notice in ezpClusterGateway
  • Use $cli->output instead of $cli->notice
  • 'is_file()' calles 'file_exists()' internally, use only 'is_file' instead.
  • Fixed an undefined variable error in ezpClusterGateway
  • md5sum() should only attempt to process files, so added a check 'is_file' to prevent a php-error that will be thrown if $file is a directory and not a file.
  • Added support for deleting packages.
  • Removed a debug message
  • Fixed cluster expiry timeout handling
  • Fixed typos
  • Added another usecase example in cluster events doc
  • Moved cluster_events doc to MarkdDown format. Why? Because it's more colorful on Github :-)
  • Fixed the signature of the passthrough method
  • Updated autoload array
  • Added extension point for ezmultivariatetest extension
  • Added some more padding on buttons in admin2
  • PHPDoc: Fixed nitpick by carlos in 4f83e8f030a1ef82405925f7644c5ed4e74a310d#commitcomment-1000289
  • Update doc/features/4.7/cluster_events.rst
  • Added documentation for cluster events feature
  • Fixed phpDoc for eZClusterEventListener::fileExists()
  • Added comment about config.cluster.php in config.php-RECOMMENDED
  • Merge branch 'DfsClusterEvents'
  • Added possibility to have a config.cluster.php, only for cluster configuration (requests coming via index_cluster.php)
  • ClusterIndex: changed the way cluster gateways are instanciated
  • Tweaked index_cluster so that it is able to accept a previously included gateway file
  • Cluster events: Fixed wrong check on event filter returned value
  • Added: support for JSON encoded body with POST request
  • Cluster events: Check of listener implements the right interface
  • Cluster events: Added cluster event loggers
  • ClusterEvents: fixed a wrong argument in fetchMetadata
  • Cluster events: ezpEvent should be instantiated in DFS backend's contructor
  • Cluster events: DFS MySQLi backend now implements eZClusterEventNotifier
  • Cluster events: renamed deleteNametrunk() to deleteByNametrunk() in listener interface
  • Fixed typo in 'Redis'
  • Added cluster event listener registering in eZDFSFileHandler
  • ClusterEvents: added events to the DFS MySQLi backend
  • CS: fixed some issues from https://github.com/ezsystems/ezpublish/pull/120
  • ClusterEvents: basic implementation in _fetchMetadata
  • Added interfaces for cluster event notifier and listener
  • Documentation: dded BC notes for cluster index changes
  • Added feature doc for cluster index
  • Updated autoload with missing cluster index files
  • Added: TODOs
  • Added: FIXMEs
  • Added: method visibility
  • Changed: cluster refactoring: be more OO and testable
  • Changed: refactored cluster gateways to provide db info in CTOR
  • Removed: obsolete ?>
  • Added: missing constant doc and default settings
  • Fixed: getMessage is a method
  • Changed: simplified filename retrieval
  • Optimized: avoid looping over
  • Removed: unused constant
  • Changed: moved ini_set at a place where CLUSTER_ENABLE_DEBUG is defined in all cases
  • Fixed: STORAGE_PORT => CLUSTER_STORAGE_PORT
  • Changed: tightening the retry logic a bit
  • Changed: include -> require to fail if not existing
  • CS: cleanup
  • Fixed unexisting CLUSTER_DEBUG, should be CLUSTER_ENABLE_DEBUG
  • CS: newline at EOF
  • CS: newline at EOF
  • CS: Removed unused code
  • Optimized etag server variables iteration
  • ClusterIndex: removed the unused setDatabase() method
  • ClusterIndex: made protected instead of private
  • ClusterIndex: index file cleanup + gateway close
  • ClusterIndex: implemented HTTP range for DFS postgres+mysqli
  • ClusterIndex: implemented HTTP range for DFS/MySQLi
  • Whitespaces
  • ClusterIndex: removed deprecated index_image.php
  • ClusterIndex: doc in config.php-RECOMMENDED
  • ClusterIndex: added extension point for custom gateways/cluster handlers
  • ClusterIndex: removed refactored mysql(i) cluster indexes
  • ClusterIndex: fixed error reporting
  • ClusterIndex: fixed license headers + doc
  • ClusterIndex: refactored DB/MySQL + deprecated
  • ClusterIndex: refactored DB/MySQLi index
  • ClusterIndex: fixed an error in the DFS/Postgres class name
  • ClusterIndex: refactored DFS/MySQLi index
  • Cleanup
  • ClusterIndex: made the eTag header depend on http cache being enabled
  • Added global index_cluster.php + config.php
  • Cluster index refactoring
  • Removed leftover postgresql/DB cluster file
  • Replaced tabs with spaces
  • Fixed: CS in persistent object definition
  • localization: change some formats dates in pol-PL locale file
  • Scalar values formated with formatter
  • localization: update pol-PL locale file
  • Nice output for empty an empty array or hash
  • inline documentation updated and added
  • Code makup
  • Dump operator and bug fix in recursive function in case of arrays

Tags

eZ Publish 2012