General

  eZ Systems Website
  Technical documentation
  Editor documentation

This Documentation contains:
 
Technical documentation:



⚠ WARNING ! This documentation is deprecated !

Please go to the current Technical Documentation

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: corrected command for clean install of studio
Info
titleGeneral installation guide for all eZ distributions

Anchor
InstallationLinks
InstallationLinks
This installation guide can be followed with any eZ Symfony distribution, here are a list of available distributions from eZ:

TypeArchiveLicenseGIT / Composer
eZ Platform - "clean"share.ez.no/downloads/downloadsGPLezsystems/ezplatform (INSTALL.md)
eZ Platform - "demo"Available via Git / ComposerGPLezsystems/ezplatform-demo
eZ Studio - "clean"support.ez.no/DownloadsBUL (requires eZ Enterprise subscription)ezsystems/ezstudio (INSTALL.md)
eZ Studio - "demo"support.ez.no/DownloadsBUL (requires eZ Enterprise subscription)ezsystems/ezstudio-demo

Terms used in this guide

  • /<root-dir>/: The filesystem path where eZ distribution is installed in. Examples: /home/myuser/www/ or /var/sites/<project-name>/
  • cli: command line interface. For Linux/BSD/OS X specific commands, use of bash or similar is assumed.

Prerequisites

These instructions assume you have technical knowledge and have already installed PHP, web server & a database server needed for this software. For further information on requirements see Requirements page.

Before you start:

- Create Database: installation will ask you for credentials/details for the database to use.

Note
Right now the installer only supports MySQL and MariaDB, Postgres support will be (re)added in upcoming releases.

- Set php.ini memory_limit=256M before running the commands below.

- Optional: You can also set up Solr to be used by eZ distribution and take note of the url it is accessible on.

Installation

1. Install/Extract eZ distribution:

Described below are two methods of installing eZ distribution. What is common between them is that you should make sure relevant settings are generated into app/config/parameters.yml as a result of this step.

parameters.yml contains settings for your database, mail system, and optionally Solr if search_engine is configured as solr, as opposed to default legacy (a limited database-powered search engine).

A. Extract archive (tar/zip) from the relevant address listed in the table above.

Extract the eZ distribution archive to a directory, then execute post-install scripts:

Info
The post-install scripts will ask you to fill in some settings, including database settings.
Code Block
languagebash
$ cd /<directory>/
$ curl -sS https://getcomposer.org/installer | php
$ php -d memory_limit=-1 composer.phar run-script post-install-cmd

B. Install via Composer.

Run composer require with one of the packages listed at the top of this page:

Code Block
# install ezplatform
composer create-project --prefer-dist --no-dev --keep-vcs ezsystems/ezplatform

# install ezplatform with demo
composer create-project --prefer-dist --no-dev --keep-vcs ezsystems/ezplatform-demo
 
# install ezstudio (requires eZ Enterprise license/credentials)
composer create-project --prefer-dist --no-dev --keep-vcs --repository-url=https://updates.ez.no/bul ezsystems/ezstudio

At the end of the installation process, you will be asked for basic configuration options, such as database credentials. 

2. Only for *NIX users Setup folder rights:

Like most things, Symfony documentation applies here, meaning app/cache and app/logs need to be writable by cli and web server user. Furthermore, future files and directories created by these two users will need to inherit those access rights. For security reasons, there is no need for web server to have access to write to other directories.

Change www-data to your web server user:

A. Using ACL on a Linux/BSD system that supports chmod +a

Code Block
languagebash
$ rm -rf app/cache/* app/logs/*
$ sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" \
  app/cache app/logs web
$ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" \
  app/cache app/logs web

B. Using ACL on a Linux/BSD system that does not support chmod +a

Some systems don't support chmod +a, but do support another utility called setfacl. You may need to enable ACL support on your partition and install setfacl before using it (as is the case with Ubuntu), in this way:

Code Block
languagebash
$ sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx \
  app/cache app/logs web
$ sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx \
  app/cache app/logs web

C. Using chown on Linux/BSD/OS X systems that don't support ACL

Some systems don't support ACL at all. You will need to set your web server's user as the owner of the required directories:

Code Block
languagebash
$ sudo chown -R www-data:www-data app/cache app/logs web
$ sudo find {app/{cache,logs},web} -type d | xargs sudo chmod -R 775
$ sudo find {app/{cache,logs},web} -type f | xargs sudo chmod -R 664

D. Using chmod on a Linux/BSD/OS X system where you can't change owner

If you can't use ACL and aren't allowed to change owner, you can use chmod, making the files writable by everybody. Note that this method really isn't recommended as it allows any user to do anything:

Code Block
languagebash
$ sudo find {app/{cache,logs},web} -type d | xargs sudo chmod -R 777
$ sudo find {app/{cache,logs},web} -type f | xargs sudo chmod -R 666

When using chmod, note that newly created files (such as cache) owned by the web server's user may have different/restrictive permissions. In this case, it may be required to change the umask so that the cache and log directories will be group-writable or world-writable (umask(0002) or umask(0000) respectively).

It may also possible to add the group ownership inheritance flag so new files inherit the current group, and use 775/664 in the command lines above instead of world-writable:

Code Block
languagebash
$ sudo chmod g+s {app/{cache,logs},web}

E. Setup folder rights on Windows

For your choice of web server you'll need to make sure web server user has read access to <root-dir>, and write access to the following directories:

  • app/cache
  • app/logs

3. Configure a VirtualHost:

A virtual host setup is the recommended, most secure setup of eZ distribution. General virtual host setup template for Apache and Nginx can be found in the doc/ folder of your eZ installation. For the latest version you can also find it in same doc/ folder in the relevant Git repository listed in the table above.

4. Run installation command:

You may now complete the eZ distribution installation with the ezplatform:install command, however which options you may install depends on your distribution:

Code Block
languagebash
# IfTo youdo have a clean install of "ezplatform":
or$ "ezstudio" distribution, then only available option is to php -d memory_limit=-1 app/console ezplatform:install --env=prod clean

# To do a clean install of "ezstudio":
$ php -d memory_limit=-1 app/console ezplatform:install --env=prod studio-clean

# If have "ezplatform-demo" or "ezstudio-demo" distribution, you may choose to install demo instead:
$ php -d memory_limit=-1 app/console ezplatform:install --env=prod demo 
Info

Password for the generated admin user is publish, this name and password is needed when you want to log in to backend UI. Future versions will prompt you for a unique password during installation.

 

If you get message "Unknown install type 'demo'" or similar, execute the following for possible options

php -d memory_limit=-1 app/console ezplatform:install --env=prod --help 

 

5. Access your installation

You can now point your browser to the installation and browse the site. To access the  UI backend, use the /ez URL.