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

ez-publish-community-project-2012-03

eZ Publish Community Project 2012.03

Requirements

Version : Release date : Requirements :
Community Project 2012.3 March. 30th, 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-03

Kernel

The highlights :

  • Security fix. More on the subject :  Security advisory, promptly patch your eZ Publish instances
  • Hot on the heels of the Autosave feature shipped in 2012.2, the in-page Preview was added to this extension, great User-experience enhancement !
  • Improved registration form as second-last step of the installation wizard so we can provide you with better assistance and updates,
  • Compatibility with PHPUnit 3.6 was achieved,
  • The first two weeks of translations were merged-in (ref : this campaign ) 
  • Improved debug report with more readable output and accurate time measurement

Stats

  • 10 bug-fixes for registered issues,
  • 1 enhancement,
  • 12 pull-requests merged (well done !).

See the changelog for details

Upgrade Notes

Upgrading from eZ Publish Community Project 2012.2 to 2012.3

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

  • Backing up the website
  • Putting the website offline (optional)
  • Upgrading the database
  • Upgrading the distribution files to 2012.3
  • 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.3  is compatible with PHP version 5.3 and above. So is eZ Publish Community Project 2012.2. 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>SET</span> storage_engine<span>=</span>InnoDB;<span>UPDATE</span> ezsite_data <span>SET</span> value<span>=</span><span>'4.7.0beta1'</span> <span>WHERE</span> name<span>=</span><span>'ezpublish-version'</span>;<span>UPDATE</span> ezsite_data <span>SET</span> value<span>=</span><span>'1'</span> <span>WHERE</span> name<span>=</span><span>'ezpublish-release'</span>; <span>ALTER</span> <span>TABLE</span> ezcontentobject_attribute <span>MODIFY</span> <span>COLUMN</span> data_float double <span>DEFAULT</span> <span>NULL</span>;<span>ALTER</span> <span>TABLE</span> ezcontentclass_attribute <span>MODIFY</span> <span>COLUMN</span> data_float1 double <span>DEFAULT</span> <span>NULL</span>;<span>ALTER</span> <span>TABLE</span> ezcontentclass_attribute <span>MODIFY</span> <span>COLUMN</span> data_float2 double <span>DEFAULT</span> <span>NULL</span>;<span>ALTER</span> <span>TABLE</span> ezcontentclass_attribute <span>MODIFY</span> <span>COLUMN</span> data_float3 double <span>DEFAULT</span> <span>NULL</span>;<span>ALTER</span> <span>TABLE</span> ezcontentclass_attribute <span>MODIFY</span> <span>COLUMN</span> data_float4 double <span>DEFAULT</span> <span>NULL</span>;

Postgresql

Run the following against your Postgresql database :

<span>UPDATE</span> ezsite_data <span>SET</span> value<span>=</span><span>'4.7.0beta1'</span> <span>WHERE</span> name<span>=</span><span>'ezpublish-version'</span>;<span>UPDATE</span> ezsite_data <span>SET</span> value<span>=</span><span>'1'</span> <span>WHERE</span> name<span>=</span><span>'ezpublish-release'</span>; <span>ALTER</span> <span>TABLE</span> ezcontentobject_attribute <span>ALTER</span> <span>COLUMN</span> data_float TYPE double precision;<span>ALTER</span> <span>TABLE</span> ezcontentclass_attribute    <span>ALTER</span> <span>COLUMN</span> data_float1 TYPE double precision,    <span>ALTER</span> <span>COLUMN</span> data_float2 TYPE double precision,    <span>ALTER</span> <span>COLUMN</span> data_float3 TYPE double precision,    <span>ALTER</span> <span>COLUMN</span> data_float4 TYPE double precision;

 

Step 4: Upgrading the distribution files

The easiest way to upgrade the distribution files is to unpack eZ Publish 2012.3 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.3 tarball, which are currently:

Bundled and enabled

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

Bundled but not enabled

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

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

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

 

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.2 to Community Project 2012.3

Bugfixes

  • 18469 : Navigation in trash is missing
  • 18434 : No paging while in content/browse in admin2
  • 19146 : useless? comment in ezdbinterface. Useless brackets too.
  • 19236 : decimals of prices are incorrectly stored (float -> double)
  • 19238 : Vulnerability issue
  • 19247 : Pause/Resuming a download not working in firefox
  • 19248 : ezdb clustering on mysqli is broken in 4.7.0-dev, problem with in gateway.php
  • 19252 : fatal error ezobjectrelationlist
  • 19268 : eZHTTPTool::createRedirectUrl() is broken with "override_protocol" param
  • 19284 : ezcache script should not fail if data is corrupted

Enhancements

  • 19215 : Audit feature should be improved for multisite installations

Pull requests

  • 281 from trolek/localization2
  • 288 from crevillo/Issue-019146
  • 301 from crevillo/enhancement-019215
  • 302 from martin-damien/master
  • 303 from dpobel/collapsible_event
  • 310 from patrickallaert/PHPUnit-3.6-fix
  • 311 from lafka/master
  • 312 from SylvainGuittard/master
  • 313 from thiagocamposviana/master
  • 315 from thiagocamposviana/master
  • Merge branch 'gggeek-issue_018935'
  • Merge branch 'gggeek-issue_018935_p16_18'

Miscellaneous

  • finalized pt-BR translation
  • Added some documentation on HTTP_RANGE not supported by eZDB clusters and CLUSTER_ENABLE_HTTP_RANGE that should be set to false in config.cluster.php
  • Added some pt-BR translations
  • French translation finished
  • Fixed a filename mistake in cluster_index.md doc file, reported by @geoffpt
  • Fixed: compatibility with PHPUnit 3.6
  • Admin2: Tweak button border color a bit
  • Fixed unit test failure cause by missing use of
  • Implmented improved registration form
  • Add phpdoc on eZStepInstaller class
  • Improve: Display latest draft for editors when viewing a tree node
  • Make labels of timing points the same for all ezdfs backends
  • Also measure db connection time for ezdfs
  • Add timing point: cluster db connection
  • Add new accumulator: db connection Also improve a bit the postgresql timing points that were severely lacking
  • Add new accumulator: php class autoloading
  • Improved related class filtering pull request code
  • Fixed: make sure we use the ezjscore settings while loading YUI3 modules
  • Implemented opt-in feature: Display latest draft for editors when viewing a tree node
  • Add filter on class d'un fetch related
  • Changed: typo fix (Thanks @jheba)
  • Added two new events: content/view & request/preinput
  • Disabled HTTP Range in DB cluster
  • Added note on change in ezpEvent->filter() signature
  • index_cluster parameters tweak for oracle
  • index_cluster debugging improvement
  • PHPDoc fix
  • Small inclusion fix in index_cluster.php
  • Removed HTTP RANGE support for DB based clusters
  • Reverted: part of e22e25791d803e4cbc8f15a2508abe3b6c90b3c1
  • Changed: Y.eZ.CollapsibleMenu now accepts callbacks and style definition with a function in its configuration
  • Changed the CLUSTER_ENABLE_HTTP_CACHE option behaviour.
  • Locale adjusted with the advice of @patrickallaert
  • Adding esperanto locale.
  • Changed: the language switcher tpl operator also returns the default locale associated with a siteaccess
  • Reverted the constructor change to php5 style as suggested by eZ Systems crew. @see https://github.com/ezsystems/ezpublish/pull/301#issuecomment-4453291 Reverted related doc also.
  • Fixed an error reporting mistake in index_cluster.php
  • Updated autoload after the removal of the postgresql cluster
  • Moved DFS postgresql files to an extension (ezpostgresqlcluster)
  • added doc about bc change.
  • Fixed toolbar display in IE 6 and 7
  • Fixed: avoid a JavaScript when TemplateCompile is disabled
  • Changed doc to phpDoc style
  • localization: added and updated some missing translations
  • Remove dead code in ezdebug
  • One more timing improvement (in timing points)
  • Fix commit 2c94f00e: in cli mode, the number of queries was followed by "KB"
  • Minor formatting improvement: move time accumulators note inside table
  • Allow (end user) to display list of included php files in the debug report
  • Improve debug report display: . show measurement unit in table headers, not in rows (makes easier copy and paste in spreadsheets) . align data cells to the right, to make easy visual understanding of data . do not display table headers (in html mode) when table contents are not to be printed . reword table headers to be more understandable by non-core developers . add new table before timing points: the 3 most important resources (time, memory, db) . reword "end" timing point into "script end" to be more in line with "script start" . add note about time accumulators not adding up to 100% . add at bottom total time for debug report printing (remove time taken for template table printing)
  • Better measurement of time for debug report: - use time from debug messages in debug report instead of time when debug report is printed
  • Better measurement of time for debug report: - start initial time counter before the autoloading mechanism is set up - start/stop accumulators asap in their function calls - allow script to declare and end time before debug is printed - show module start time relative to script start, not at time 0

Tags

eZ Publish 2012