Blogs / Gaetano Giunta / The completely unofficial eZ Publish deployment checklist

The completely unofficial eZ Publish deployment checklist

Friday 04 March 2011 7:13:40 am

  • Currently 5 out of 5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

By : Gaetano Giunta

 

This is a checklist of actions for an update of an eZ Publish website. Comments/contributions are welcome.

Definition of “update”: not an eZP version bump; new functionality added to the site (new extensions, changed templates, settings, etc...)

  1. backup the current installation
    1.  

      filesystem set: the extension and settings folders

       

    2.  

      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)

       

    3.  

      optional: the complete installation directory of eZPublish, except for the var subdirectory and for the eZFind index directory. This is a good idea if in your update you changed eg. the .htaccess or config.php files

       

tip: if you have many users sessions, and the session data is stored in the database, it might be a good idea to drop data from the session table before backing it up

tip: in ezdb cluster mode, 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

  1. [optional] 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 update process

     

  2. disable execution of eZ Publish cronjobs

     

  3. copy new files over the current installation

     

  4. clear all caches

     

php bin/php/ezcache.php –clear-all --purge

  1. if you have added new extensions or new php files in your extensions, regenerate the autoload configuration

     

php bin/php/ezpgenerateautoloads.php

  1. compile templates to warm up caches

     

php bin/php/eztc.php [–-wwwdir=...] [–-index-file=...]

  1. if you have modified any of the following items in the development/staging servers, you will need to reproduce the same changes in the production server via the administration interface:
    1. roles & policies
    2.  

      workflows

       

    3.  

      sections

       

    4.  

      object states definitions

       

    5.  

      url aliases

       

    6.  

      content class definition (can also be imported via packages)

       

    7.  

      new content objects (can also be imported via packages)

       

If you use configuration files to store the id of some particular nodes/objects, and you created such objects at point g), remember to update those configuration files

  1. if you have activated new extensions that need some tables in the database, create those tables (eg. via phpmyadmin or the mysql command line, for mysql databases)

tip: well-behaved extensions do declare their tables in the proper format, and if you use the “upgrade check / database” page in the administration interface, you will get a list of all missing tables

  1. [optional] reindex content if you have installed eZ Find and have changed the indexing configuration

     

php extension\ezfind\bin\php\updatesearchindexsolr.php

  1. re-enable cronjobs

     

  2. [optional] run a cache-warmup script: use a tool such as curl or wget that will navigate the website to force eZPublish to generate the view cache

     

  3. [optional] put the public website back online if you had switched it off at point 2

[edit: mmm, looks like the online editor mangled up my nice formatted list... if only there was access to xml source ;-) ]