Install eZ Commerce¶
Installation for production is only supported on Linux.
To install eZ Commerce for development on macOS or Windows, see the instruction to Install eZ Platform on macOS or Windows.
Prepare work environment¶
To install eZ Commerce you need a stack with your operating system, MySQL and PHP.
You can install it by following your favorite tutorial, for example: Install LAMP stack on Ubuntu.
For production you also need Apache or nginx as the HTTP server (Apache is used as an example below).
You also need
git for version control.
To use search in the front end, you need to have Solr installed.
Before getting started, make sure you review the requirements page to see the systems we support and use for testing.
Install a recent stable version of Composer, the PHP command line dependency manager. Use the package manager for your Linux distribution. For example, on Ubuntu:
To verify that you have the most recent stable version of Composer, you can run:
Install Composer locally
If you want to install Composer inside your project root directory only, run the following command in the terminal:
If you do so, you must replace
php -d memory_limit=-1 composer.phar in all commands below.
Set up authentication tokens¶
See Set up authentication tokens to learn about authenticating yourself for commercial packages.
In order to install a new project using
composer create-project to get the latest version of eZ Commerce,
you must first inform the Composer, which token to use before the project folder is created.
This can be done in the following way:
Usage of authentication token with
If you have several projects set up on your machine,
they should all use different tokens set in
auth.json file in project directory.
Moving from trial
composer.json in your project root and change the URL defined in the
repositories section to
Once that is done, you can execute
composer update to get packages with the correct license.
Change installation parameters¶
At this point you can configure your database via the
DATABASE_URL in the
Choose a secret
and provide it in the
APP_SECRET parameter in
It should be a random string, made up of up to 32 characters, numbers, and symbols.
This is used by Symfony when generating CSRF tokens,
and for creating signed URIs when using ESI (Edge Side Includes).
Instead of setting
DATABASE_URL, you can change individual installation parameters in
Do not store the database credentials in your
.env.local file, nor commit them to the Version Control System.
The configuration requires providing the following parameters:
DATABASE_PLATFORM— prefix for distinguishing the database you are connecting to (e.g.
DATABASE_DRIVER— driver used by Doctrine to connect to the database (e.g.
DATABASE_VERSION- database server version (for a MariaDB database, prefix the value with
JMS payment secret
To provide the
JMS_PAYMENT_SECRET secret for the payment system, run
and use the generated secret.
Install and configure Solr¶
eZ Commerce requires Solr as search engine. To install it, run the included script:
Configure the following parameters in the
Also in the
.env file, set Solr as the search engine:
You can omit this step. If you do not create a database now, it will be created automatically in the next step.
To manually create a database, ensure that you changed the installation parameters, then run the following Symfony command:
Install eZ Platform¶
Install eZ Platform with:
This command will also create a database, if you had not created it earlier. Before executing it make sure that the database user has sufficient permissions.
If Composer asks for your token, you must log in to your GitHub account and generate a new token (edit your profile, go to Developer settings > Personal access tokens and Generate new token with default settings). This operation is performed only once, when you install eZ Commerce for the first time.
Prepare installation for production¶
Set up permissions¶
For development needs, the web user can be made the owner of all your files (for example with the
www-data web user):
public/var need to be writable by CLI and the web server user.
Future files and directories created by these two users will need to inherit those permissions.
For security reasons, in production, the web server should not have write access to other directories than
var. Skip the step above and follow the link below for production needs instead.
You must also make sure that the web server cannot interpret files in the
var directory through PHP.
To do so, follow the instructions on setting up a virtual host below.
To set up permissions for production, it is recommended to use an ACL (Access Control List). See Setting up or Fixing File Permissions in Symfony documentation for information on how to do it on different systems.
Set up virtual host¶
Option A: Scripted configuration¶
Use the included shell script:
/<your installation directory>/bin/vhost.sh to generate a ready to use
Check out the source of
vhost.sh to see the options provided.
Option B: Manual configuration¶
/<your installation directory>/doc/apache2/vhost.template to
/etc/apache2/sites-available as a
Modify the file to fit your project.
/<your installation directory>/public as the
Uncomment the line that starts with
#if [SYMFONY_ENV] and set the value to
depending on the environment that you are configuring:
Enable virtual host¶
When the virtual host file is ready, enable the virtual host and disable the default:
Finally, restart the Apache server. The command may vary depending on your Linux distribution. For example, on Ubuntu use:
Open your project in the browser and you should see the welcome page.
eZ Launchpad for quick deployment
To get your eZ Commerce installation up and running quickly, use the Docker-based eZ Launchpad, which takes care of the whole setup for you. eZ Launchpad is supported by the eZ Community.