Path / documentation / ez publish / technical manual / 3.10 / installation / normal installation / requirements for doing a no...

Caution: This documentation is for eZ Publish legacy, from version 3.x to 5.x.
For 5.x documentation covering Platform see eZ Documentation Center, for difference between legacy and Platform see 5.x Architecture overview.

Requirements for doing a normal installation

eZ Publish makes use of and depends on four important things:

  1. A web server
  2. A server-side PHP scripting engine
  3. A database server
  4. An image conversion system (optional)

The first three things should be in place before an eZ Publish installation is deployed. The image conversion system is optional and is only needed if you're planning to use eZ Publish with images. The web server and the server-side PHP scripting engine has to run on the same machine. The database server may run on a different computer. For the moment, the following software solutions can be used:

Web server

Currently, only the Apache web server is supported. It is recommended to use the latest version of the 1.3 branch. However, it is possible to use the 2.x series. When using Apache 2.x, it must run in "prefork" mode instead of "threaded" mode - the reason for this is because the PHP libraries are not threadsafe. Please note that Apache 2.x for Windows only exists in "threaded" mode and thus it should not be used to run an eZ Publish solution on Windows. The Apache web server is the most popular web server on the planet. It is free, open source and can be downloaded from

Server-side PHP scripting engine

Since most of the eZ Publish system is written using the PHP scripting language, a PHP (hypertext preprocessor) server-side engine is needed. Make sure you have PHP 4.4. It is recommended to use the latest version of the 4.4 branch. Note that eZ Publish 3.10 will not work correctly with PHP 5 and thus PHP 5 should not be used. PHP needs to have compiled-in support for either MySQL or PostgreSQL.

PHP is free software and can be downloaded from The following table reveals which functionality PHP needs to have compiled-in support for.



MySQL functions

Required if a MySQL database will be used.

PostgreSQL functions

Required if a PostgreSQL database will be used.

Zlib compression functions

Required (see below).

Session support

Required (enabled in PHP by default).

PCRE functions

Required (enabled in PHP by default).

GD2 support

Required if ImageMagick is not installed.

CLI support

Recommended (see below).

DOM XML functions

Recommended (see below).

Client URL library functions

Recommended (see below).

Multibyte string functions


Exif functions


Zlib extension

Make sure that zlib support in PHP is enabled, otherwise the setup wizard will not be able to unpack downloaded packages during the installation process.


It is strongly recommended to have PHP CLI installed, otherwise some features like notifications, delayed search indexing, upgrade scripts, the collaboration system (content approval), clearing caches from within the command line, etc. will not work.


It is recommended to enable the DOM XML extension. It significantly speeds up XML processing.


It is recommended to enable CURL support, otherwise some features like outbound connections via proxy and SSL support for eZSoap will not work.

PHP memory limit issue

eZ Publish needs at least 64 MB in order to complete the setup wizard. This means that you'll have to increase the default "memory_limit" setting which is located in the "php.ini" configuration file. (Don't forget to restart apache after editing "php.ini".) Normal operation requires about 16 MB. However, it is highly recommended that you keep the 64 MB setting since eZ Publish consumes a lot more memory as soon as you use PDF export feature, reindex the search, etc. Multilingual sites that store the content in Unicode (UTF-8) will also require at least 64 MB.

Database server

eZ Publish stores miscellaneous data structures and actual content using a database. This means that a database server has to be available for eZ Publish at all times. By default, eZ Publish is compatible with the following database solutions:

The setup wizard will automatically detect the database server as long as it is running on the same computer that functions as the web server.

In order to use UTF-8, you must be running MySQL 4.1 or later as previous versions only support the ISO character set. PostgreSQL also fully supports UTF-8.

Note that eZ Publish 3.10 does not support clustering for PostgreSQL and Oracle databases. The clustering code is optimized for best performance and focused on MySQL databases using the InnoDB storage engine.

Even if you are not going to run eZ Publish in a clustered environment, the use of InnoDB is required (for MySQL 4.x and later). This storage engine makes it possible to use transaction-safe tables in a MySQL database. (Database transaction support is enabled by default in eZ Publish. This feature makes the system less vulnerable to database errors and inconsistencies due to aborted requests.) Contact your database administrator if you are unsure about whether InnoDB is available on your server.

If you are going to use PostgreSQL, make sure the "pgcrypto" module is installed. On Linux/UNIX, you may need to install a separate package called "postgresql-contrib" (refer to the PostgreSQL documentation for more information), which contains the "pgcrypto" module. The "pgcrypto" module provides cryptographic functions for PostgreSQL, including the "digest" function, which is needed for eZ Publish. When setting up a PostgreSQL database for eZ Publish, you will have to register these functions in the database. Refer to the "Setting up a database" part of the "Installing eZ Publish on a Linux/UNIX based system" and "Installing eZ Publish on Windows" documentation pages (depending on the target OS) for more information.

Oracle compatibility

The upcoming version 1.7 of the eZ Publish Extension for Oracle® Database will make it possible to use Oracle as a database for eZ Publish 3.10.1 and higher. Note that earlier versions of the extension are not compatible with eZ Publish 3.10.

Image conversion system (optional)

In order to scale, convert or modify images, eZ Publish needs to make use of an image conversion system. One of the following software packages (both are free) can be used:

ImageMagick supports more formats than GD and usually produces better results (better scaling, etc.). The setup wizard will automatically detect the pre-installed image conversion system(s).

The installation and setup of required software solutions (outlined above) is far beyond the scope of this document. Please refer to the homepage and documentation of the different software solutions.

Balazs Halasy (12/01/2005 1:08 pm)

Geir Arne Waaler (21/05/2010 1:16 pm)

Svitlana Shatokhina, Julia Shymova, Geir Arne Waaler


  • PHP 5

    PHP 5 it's the standard on most linux ditributions. When we ara going to support it? I can't use ez because we have products that request it.
    • Re: PHP 5

      eZ Publish 4 runs on PHP 5
  • PHP5 and PHP4 can be runned on SAME apache server

  • memory_limit parameter in php.ini

    Although the documentation says that the setup will require the memory_limit parameter to be set to 64Mb my installation worked fine with it at the default of 8Mb.

    64Mb is a heck of a lot of memory for PHP and there are very few hosting sites that will have such a large limit set. My (paid for) hosting service has the limit set to 20Mb so I'm hopijng when I transfer ezpublish from my home system to my 'real' host I won't have any problems.
  • 64MB memory limit

    Sorry, that's not really funny. 64MB is a great deal too much and not eZ.