Platform / Doc / Installation / Exponential Platform Nexus : Installation

Please Note: At the specific request of Ibexa, 7x is changing the project name to "Exponential Platform" or "Exponential Platform (CMS)" effective as of August, 11th 2025.

Exponential Platform Nexus : Installation instructions

A quick summary of details related to installing Exponential Platform Nexus 1.0.0.0.3 (now available for download).

Requirements

Apache version:

The latest version of the 1.3 branch. or Apache 2.x run in "prefork" mode.

PHP version:

The latest version of the 8.5 branch is strongly recommended.

Note that you will have to increase the default "memory_limit" setting which is located in the "php.ini" configuration file to 464 MB or larger. (Don't forget to restart Apache after editing "php.ini".)

The date.timezone directive must be set in php.ini or in .htaccess. For a list of supported timezones please see http://php.net/manual/en/timezones.php

Composer version:

The latest version of the 2.x branch is recommended.

Database server:

MySQL 4.1 or later (UTF-8 is required) or PostgreSQL 8.x or Oracle 11g

PHP Extension(s):

  • ctype
  • date
  • dom
  • fileinfo
  • filter
  • hash
  • iconv
  • intl
  • json
  • mbstring
  • openssl
  • pcre
  • pdo
  • pdo_mysql
  • phar
  • session
  • simplexml
  • tokenizer
  • xml
  • xmlreader
  • xmlwriter
  • zlib

Strongly recommended (but not strictly required). You can run without some of these, but you really shouldn’t in production:

  • curl (HTTP integrations, repository calls, external services)
  • gd or imagick (image variations & thumbnails)
  • opcache (performance)
  • APCu (performance)
  • zip (Composer + package handling)

The official install docs explicitly mention enabling project-relevant PHP extensions and recommend opcache for performance even if not mandatory.

If you use specific Exponential Platform features

Image handling (almost always used)

  • gd or imagick

Without one of these, image aliases and content previews will break.

Search (Legacy Bridge / advanced indexing)

  • curl
  • pcntl (optional but useful for indexing workers)
  • posix (optional)

(These are commonly required by legacy-related tools and indexing processes.)

GitHub Installation Guide (Create project for contribution)

Create Database

MySQL database

Use the following MySQL DDL to create a database which will be used for your project:

CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_general_ci;

Clone the Git repository

git clone git@github.com:se7enxweb/exponential-platform-nexus.git;

Install default installation demo site database

Import the default installation structure and content from sql files located in:

Simple database dump of everything needed to be installed from:

src/AppBundle/Resources/database/sql/starter_project_database_sql_dump.sql

Simple database dump of just the structure schema needed to be installed from:

src/AppBundle/Resources/database/sql/schema/schema.sql

Simple database dump of just the expected structure's content (starter default installation as required by the configuration of the software) needed to be installed from:

src/AppBundle/Resources/database/sql/data/content.sql

** Later step coming up, Composer! Install Exponential Platform Nexus required PHP libraries like Zeta Components and Exponential Platform bundles and bundle extensions as specified in this project's composer.json. **

Install Node

Download Node.js

Install Node.js

Download and install nvm:

curl -o- <a href="https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh">https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh</a> | bash

in lieu of restarting the shell

\. "$HOME/.nvm/nvm.sh";

Download and install Node.js:

nvm install 20

Verify the Node.js version:

node -v # Should print "v20.20.0".

Verify npm version:

npm -v # Should print "10.8.2".

Install Yarn

Download Yarn

Install Yarn

npm install --global yarn

Install the required composer packages and start the installation process

cd exponential-platform-nexus; composer install --keep-vcs --ignore-platform-reqs;

Note: For the short term future the composer argument '--ignore-platform-reqs' is required to install the software via composer package dependencies successfully. This limitation will soon be removed in the future as we continue to update requirements within the composer package definition files for each package repository (tedious detail oriented work which is currently on going).

(Option) Run Exponential Platform Nexus Console Installation of Default Database Content Packages

php bin/console ezplatform:install netgen-media;

Note if you use the provided starter demo database sql files you do not need to run the above command.

Assign Database User, Password and Database Name information in app/config/parameters.yml

Manual Symlink Installation for default legacy storage images is required.

This is required to store the storage directory outside of the ezpublish_legacy directory which is erased upon composer update (when new releases are installed via update of package se7enxweb/exponential). This is a known issue due to the behavior and nature of composer usage.

To see the images provided in the starter design and avoid a potential site bug of missing images perform the following commands:

Install app ezpublish_legacy extension (Required by 7x admin-ui-bundle/ngadminui).

cd ezpublish_legacy/extension/;
ln -s ../../../src/AppBundle/ezpublish_legacy/extension/app .;
cd ../../../;

Install app storage dir symlink in var siteaccess dir

cd ezpublish_legacy/var/site/;
mv storage storage-empty;
ln -s ../../../src/AppBundle/ezpublish_legacy/var/site/storage .;
cd ../../../;

Install app bundle public dir symlink in web/bundles

cd web/bundles/;
ln -s ../../src/AppBundle/Resources/public app;
cd ../../;

Permissions: Replace user and group as needed or desired

chown -R www-data:www-data .;

Siteaccess Configuration

Remember to review the default siteaccess configuration yaml settings in app/config/ezplatform_siteaccess.yml

You may wish to alter the Host (name) match domain names mappings to named siteaccesses. We recommend using at least 2 hosts. One for user and second for editor / admin ui.

Clear cache

There might not be any cache or related issues but it's recommended practice to clear cache after completing your installation to avoid any possible issues.

php bin/console cache:clear --env=dev;

Both of these sets of demo data add an administrator user to the database. This user's username is admin and its password is publish.

Additional Instructions

For the rest of the installation steps you will find the installation guide at https://exponential.doc.exponential.earth/display/DEVELOPER/Step%2b1_%2bInstallation.html

This software is based upon the elder 1.x branch of 7x Media-site.

Security Note: Like all Symfony based applications please remember to set the yaml parameter SYMFONY_SECRET durring the installation process (towards the end of a successful installation during app/config/parameters.yml content population prompts) to assign a very unique, long, secure and regularly updated to a new secure value each financial quarter (maintenance). This is this the most commonly reported cause of eZ Platform based attacks. Make note that if you secure this text string value securely (hash of keys; not words) your attack vector is drastically reduced both in principle and in general proven security best-practice for Symfony Web App Developers. We can not repeat proven fact enough. Protect your installations on a regular basis and don't forget to rotate your keys each financial quarter.

Composer Installation Guide

Create Database

MySQL database

Use the following MySQL DDL to create a database which will be used for your project:

CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_general_ci;

Install Node

Download Node.js

Install Node.js

Download and install nvm:

curl -o- <a href="https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh">https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh</a> | bash

in lieu of restarting the shell

\. "$HOME/.nvm/nvm.sh";

Download and install Node.js:

nvm install 20

Verify the Node.js version:

node -v # Should print "v20.20.0".

Verify npm version:

npm -v # Should print "10.8.2".

Install Yarn

Download Yarn

Install Yarn

npm install --global yarn

Install the required composer packages and start the installation process

cd exponential-platform-nexus; composer create-project se7enxweb/exponential-platform-nexus:v1.0.0.0.3 --keep-vcs --ignore-platform-reqs;

Note: For the short term future the composer argument '--ignore-platform-reqs' is required to install the software via composer package dependencies successfully. This limitation will soon be removed in the future as we continue to update requirements within the composer package definition files for each package repository (tedious detail oriented work which is currently on going).

(Option) Run Exponential Platform Nexus Console Installation of Default Database Content Packages

php bin/console ezplatform:install netgen-media;

Note if you use the provided starter demo database sql files you do not need to run the above command.

Install default installation demo site database

Import the default installation structure and content from sql files located in:

Simple database dump of everything needed to be installed from:

src/AppBundle/Resources/database/sql/starter_project_database_sql_dump.sql

Simple database dump of just the structure schema needed to be installed from:

src/AppBundle/Resources/database/sql/schema/schema.sql

Simple database dump of just the expected structure's content (starter default installation as required by the configuration of the software) needed to be installed from:

src/AppBundle/Resources/database/sql/data/content.sql

Assign Database User, Password and Database Name information in app/config/parameters.yml

Manual Symlink Installation for default legacy storage images is required.

This is required to store the storage directory outside of the ezpublish_legacy directory which is erased upon composer update (when new releases are installed via update of package se7enxweb/exponential). This is a known issue due to the behavior and nature of composer usage.

To see the images provided in the starter design and avoid a potential site bug of missing images perform the following commands:

Install app ezpublish_legacy extension (Required by 7x admin-ui-bundle/ngadminui).

cd ezpublish_legacy/extension/;
ln -s ../../../src/AppBundle/ezpublish_legacy/extension/app .;
cd ../../../;

Install app storage dir symlink in var siteaccess dir

cd ezpublish_legacy/var/site/;
mv storage storage-empty;
ln -s ../../../src/AppBundle/ezpublish_legacy/var/site/storage .;
cd ../../../;

Install app bundle public dir symlink in web/bundles

cd web/bundles/;
ln -s ../../src/AppBundle/Resources/public app;
cd ../../;

Permissions: Replace user and group as needed or desired

chown -R www-data:www-data .;

Siteaccess Configuration

Remember to review the default siteaccess configuration yaml settings in app/config/ezplatform_siteaccess.yml

You may wish to alter the Host (name) match domain names mappings to named siteaccesses. We recommend using at least 2 hosts. One for user and second for editor / admin ui.

Clear cache

There might not be any cache or related issues but it's recommended practice to clear cache after completing your installation to avoid any possible issues.

php bin/console cache:clear --env=dev;

Both of these sets of demo data add an administrator user to the database. This user's username is admin and its password is publish.

Additional Instructions

For the rest of the installation steps you will find the installation guide at https://exponential.doc.exponential.earth/display/DEVELOPER/Step%2b1_%2bInstallation.html

This software is based upon the elder 1.x branch of 7x Media-site.

Security Note: Like all Symfony based applications please remember to set the yaml parameter SYMFONY_SECRET durring the installation process (towards the end of a successful installation during app/config/parameters.yml content population prompts) to assign a very unique, long, secure and regularly updated to a new secure value each financial quarter (maintenance). This is this the most commonly reported cause of eZ Platform based attacks. Make note that if you secure this text string value securely (hash of keys; not words) your attack vector is drastically reduced both in principle and in general proven security best-practice for Symfony Web App Developers. We can not repeat proven fact enough. Protect your installations on a regular basis and don't forget to rotate your keys each financial quarter.