Requirements for doing a normal installation
eZ Publish makes use of and depends on four important things:
- A web server
- A server-side PHP scripting engine
- A database server
- 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 http://www.apache.org.
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 http://www.php.net. The following table reveals which functionality PHP needs to have compiled-in support for.
Name | Description |
---|---|
Required if a MySQL database will be used. |
|
Required if a PostgreSQL database will be used. |
|
Required (see below). |
|
Required (enabled in PHP by default). |
|
Required (enabled in PHP by default). |
|
Required if ImageMagick is not installed. |
|
Recommended (see below). |
|
Recommended (see below). |
|
Recommended (see below). |
|
Recommended. |
|
Recommended. |
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.
PHP CLI
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.
DOM XML
It is recommended to enable the DOM XML extension. It significantly speeds up XML processing.
CURL
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:
- MySQL 3.23 or later (http://www.mysql.com)
- PostgreSQL (http://www.postgresql.org)
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:
- GD2 (comes with PHP)
- ImageMagick (http://www.imagemagick.org)
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)
Comments
PHP 5
Saturday 29 July 2006 11:15:41 am
sorin
Re: PHP 5
Wednesday 09 January 2008 2:16:35 pm
Svitlana Shatokhina
PHP5 and PHP4 can be runned on SAME apache server
Wednesday 03 January 2007 7:37:00 am
Rustam
memory_limit parameter in php.ini
Tuesday 30 January 2007 4:41:02 pm
Chris Green
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
Monday 11 June 2007 2:28:07 pm
ecomeback