Requirements¶
The following server requirements cover both running the software on-premise and on third-party PaaS providers.
Ibexa Cloud
For running on Ibexa Cloud, where recommended configuration and support is provided out of the box, see separate Ibexa Cloud section for further reading on its requirements.
Server¶
Ibexa software is built to rely on existing technologies and standards. The minimal setup is PHP
, MySQL/MariaDB
, Apache/Nginx
, Node.js
and yarn
. Recommendation for production setups is to use Varnish
/Fastly
, Redis
/Memcached
, NFS
/EFS
/S3
and Solr
/Elasticsearch
in a clustered setup.
For supported versions of these technologies see Recommended and Supported setups below.
Recommended setups¶
These setups are tested by QA and are generally recommended setups. For security and performance we furthermore recommend use of the newer versions of components below unless otherwise noted.
Debian | Ubuntu | RHEL / CentOS | |
---|---|---|---|
Operating system | 10.x "Buster" | 20.04 "Focal Fossa" | 8.1+ |
Web Server | Nginx 1.14Apache 2.4 | Nginx 1.18Apache 2.4 | Nginx 1.14Apache 2.4 |
DBMS | MariaDB 10.3 | MariaDB 10.3MySQL 8.0 | MariaDB 10.3MySQL 8.0 |
PHP | PHP 7.3 | PHP 7.4 | PHP 7.3 |
PHP packages | php-cliphp-fpmphp-mysql or php-pgsqlphp-xmlphp-jsonphp-intlphp-curlphp-gd or php-imagick | php-cliphp-fpmphp-mysql or php-pgsqlphp-xmlphp-mbstringphp-jsonphp-intlphp-curlphp-gd or php-imagick | php-cliphp-fpmphp-mysqlnd or php-pgsqlphp-xmlphp-mbstringphp-jsonphp-processphp-intlphp-pear (optional, provides pecl)php-gd or php-imagick (via pecl) |
Cluster PHP packages | php-redis or php-memcached | php-redis or php-memcached | php-redis or php-memcached |
Search | Solr 7.7LTS or Elasticsearch 7.7, using Oracle Java/Open JDK 8 or higher |
Graphic Handler | GraphicsMagick or ImageMagick or GD |
Clustering | Linux NFS or S3/EFS (for IO, aka binary files stored in content repository, not supported with legacy)Redis 5.0 or higher (separate instances for session & cache, both using a volatile-* eviction policy, session instance configured for persistance) or Memcached 1.5 or higherVarnish 6.0LTS with varnish-modules or Fastly using the bundle provided with Ibexa Experience (for HttpCache) |
Filesystem | Linux ext4 / XFS |
Package manager | Composer (2.0.8 or higher) |
Asset manager | Node.js 10.22 or higheryarn 1.15.2 or higher |
Other supported setups¶
For security and performance we generally recommend (unless otherwise noted) using the newer versions of components below.
- OS: Linux
- Web Servers:
- Apache 2.4, with required modules
mod_rewrite
,mod_env
and recommended:mod_setenvif
,mod_expires
- event MPM is recommended, if you need to use prefork you'll also need the
mod_php
module
- event MPM is recommended, if you need to use prefork you'll also need the
- Nginx 1.12, 1.14, 1.16
- Apache 2.4, with required modules
- DBMS
- MySQL 5.7 or 8.0
- MariaDB 10.2, 10.3, 10.4
- PostgreSQL 10+
-
PHP
- 7.3
- 7.4
-
Cluster
- Cache:
- Redis 4.0+ (5.0 recommended, using
volatile-*
eviction policy is required with default Redis adapter) - Memcached 1.5 or higher (See Memcached adapter for comparison with Redis)
- Redis 4.0+ (5.0 recommended, using
- Session: either own Redis instance with persistence turned on, or Database.
- Search: Solr 7, Solr 8, or Elasticsearch 7.7 (recommended over SQL-based Search engine, especially on cluster, as SQL does not provide the same feature set or performance as the other two).
- IO: NFS or S3
- HttpCache, using one of:
- Varnish 6.0LTS with varnish-modules
- Fastly using the bundle provided with Ibexa Experience
- Cache:
-
PHP extensions/modules
- curl
- ctype
- dom (usually bundled with
xml
extension package) - fileinfo
- iconv
- intl
- mbstring
- json
- opcache
- pdo
- pdo mysql (with mysqlnd)
- pdo pgsql
- posix
- reflection
- xml
- xsl
- zip
- php-redis or php-memcached
Development and Experimental setups¶
Ibexa DXP can theoretically run and execute on many more setups than the ones listed as recommended and supported, including any operating system supported by PHP, on a PHP 7.3 version or higher that pass the Symfony requirements, using cache solutions technically supported by Symfony Cache component, using databases supported by Doctrine DBAL, and using a binary file storage solution supported by FlySystem.
Examples of Development setups:
- OS: Windows, macOS X, Linux
- Filesystem: NTFS, HFS+/APFS, ...
Examples of Experimental setups:
- OS: Any system supported by PHP
- Filesystem: BTRFS, AUFS, ...
- IO: Azure, (S)FTP, GridFS, etc.
- Databases: MSSQL, Oracle (databases technically supported by Doctrine DBAL which we use, but not supported by our installer at the moment, and not covered by automated testing)
While all these options are not actively supported by Ibexa, they are community supported. Meaning you can use them with both open source edition and enterprise edition, however if you encounter issues best way to handle them is via contribution, and any such efforts made to improve support for these technologies can contribute to the technology being supported by Ibexa in the near future.
Client¶
Ibexa DXP is developed to work with any web browser that support modern standards, on any screen resolution suitable for web, running on any device. However for the Editorial and Administration User Interfaces you'll need; a minimum of 1366-by-768 screen resolution, a desktop or tablet device, and a recommended/supported browsers found below.
Recommended browsers¶
These setups have been undergone some additional manual testing and is known to work.
- Mozilla® Firefox® most recent stable version
- Google Chrome™ most recent stable version
Supported browsers¶
- Chromium™ based browsers such as Microsoft® Edge® and Opera®, most recent stable version, desktop and tablet
- Apple® Safari® most recent stable version, desktop and tablet
Please note that the user interface might not look or behave exactly the same across all browsers as it will gracefully degrade if browser does not support certain features.
Ibexa Cloud requirements and setup¶
Ibexa Cloud
Cloud hosting with Ibexa Cloud and Platform.sh¶
In general, Ibexa Cloud supports all features and services of Platform.sh that are compatible and supported by the Ibexa DXP version you use.
For example:
- Platform.sh provides Redis support for versions 3.2, 4.0 and 5.0. Ibexa DXP supports Redis version 4.0 or higher, and recommends 5.0. As a result, Redis is supported on Ibexa Cloud in versions 4.0 and 5.0, but 5.0 is recommended.
Features or services supported by Ibexa DXP but not covered by Platform.sh may be possible by means of a custom integration.
Ibexa Cloud Setup support matrix¶
All Ibexa DXP features are supported in accordance with the example above. For example: As Legacy Bridge is not supported with v3, it is not supported on Ibexa Cloud either.
Note
As Platform.sh does not support a configuration with multiple PostgreSQL databases, for Ibexa Cloud / Platform.sh it is impossible to have a DFS table in a separate database.
Recommended Ibexa Cloud setup¶
For more details on recommended setup configuration see bundled .platform.app.yaml
and .platform/
configuration files.
These files are kept up-to-date with latest recommendations and can be improved through contributions.
Supported Ibexa Cloud setup¶
Because of the large range of possible configurations of Ibexa DXP, there are many possibilities beyond what is provided in the default recommended configuration.
Make sure to set aside time and budget for:
- Verifying your requirements and ensuring they are supported by Platform.sh
- Additional time for adaptation and configuration work, and testing by your development team
- Additional consulting/onboarding time with Platform.sh, Ibexa technical services, and/or one of the many partners with prior experience using Platform.sh with Ibexa DXP
The cost and effort of this is not included in Ibexa Cloud subscription and will vary depending on the project.
Custom integrations¶
Features supported by Ibexa DXP, but not natively by Platform.sh, can in many cases be used by means of custom integrations with external services.
For example, you can create an integration with S3 by means of setting up your own S3 bucket and configuring the relevant parts of Ibexa DXP. We recommend giving the development team working on the project access to the bucket to ensure work is done in a DevOps way without depending on external teams when changes are needed.