Skip to main content
Version: X-Cart 5.6.0

Installation

Before you start​

  • Unpack the distribution archive to your web server. Important: The server document root must be set to the folder <XCart>/public, not the (<XCart>) root folder. For more info on configuring the server, see:

    Server Setup

  • Specify the environment settings. To do this, you will first need to create a file <XCart>/.env.local (or copy the file <XCart>/.env to <XCart>/.env.local). Next, you will need to specify the variable values in that file as provided below.

Database connection. If a socket is being used, specify localhost as the host in DATABASE_URL; otherwise, specify the ip address 127.0.0.1

# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
#
# IMPORTANT: You MUST NOT specify driver in DATABASE_URL because we use a custom driver
DATABASE_URL="//db_user:db_password@127.0.0.1:3306/xc5?serverVersion=5.7"
DATABASE_UNIX_SOCKET=
DATABASE_CHARSET=utf8
DATABASE_DEFAULT_TABLE_PREFIX="xlite"

# If the Mysql server is started with the "require_secure_transport=ON" flag,
# then these parameters must contain the paths to the certificate files
DATABASE_SSL_CA_CERT=
DATABASE_SSL_CLIENT_CERT=
DATABASE_SSL_CLIENT_KEY=

Domain

#
# X-Cart 5 HTTP & HTTPS host, web directory where cart installed and allowed domains
#
# NOTE:
# You should put here hostname ONLY without http:// or https:// prefixes.
# Do not put slashes after the hostname.
# Web dir is the directory in the URL, not the filesystem path.
# Web dir must start with slash and have no slash at the end.
# The only exception is when you configure for the root of the site,
# in which case you should leave the option empty.
# Domains should be listed separated by commas.
#
# WARNING: Do not set the "$" sign before the parameter names!
#
# EXAMPLE 1:
# XCART_HOST_DETAILS_HTTP_HOST=www.yourhost.com
# XCART_HOST_DETAILS_HTTPS_HOST=www.securedirectories.com/yourhost.com
# XCART_HOST_DETAILS_WEB_DIR=/shop
# XCART_HOST_DETAILS_DOMAINS=www.yourhost2.com,yourhost3.com
#
# will result in the following URLs:
#
# http://www.yourhost.com/shop
# https://www.securedirectories.com/yourhost.com/shop
#
# EXAMPLE 2:
# XCART_HOST_DETAILS_HTTP_HOST=www.yourhost.com
# XCART_HOST_DETAILS_HTTPS_HOST=www.yourhost.com
# XCART_HOST_DETAILS_WEB_DIR=
#
# will result in the following URLs:
#
# http://www.yourhost.com
# https://www.yourhost.com
XCART_HOST_DETAILS_HTTP_HOST=
XCART_HOST_DETAILS_HTTPS_HOST=
XCART_HOST_DETAILS_ADMIN_HOST=

# Web dir is the directory in the URL, not the filesystem path.
# Web dir must start with slash and have no slash at the end.
# The only exception is when you configure for the root of the site,
# in which case you should leave the option empty.
XCART_HOST_DETAILS_WEB_DIR=
XCART_HOST_DETAILS_DOMAINS=
XCART_HOST_DETAILS_ADMIN_SELF=admin/
XCART_HOST_DETAILS_CART_SELF=/
XCART_HOST_DETAILS_FORCE_HTTPS=

Redis

X-Cart requires configuring two separate Redis instances. You need to specify the following environment variables:

###> Redis ###
# Main Redis (for sessions and locks)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DSN=redis://localhost:6379

# Additional Redis (for cache)
REDIS_EXTRA_HOST=localhost
REDIS_EXTRA_PORT=6380
REDIS_EXTRA_DSN=redis://localhost:6380
###< Redis ###

###> symfony/lock ###
# For Redis-based locks (recommended for most cases)
LOCK_DSN=redis://localhost:6379

# Alternative options for specific requirements:
# LOCK_DSN=semaphore # Use semaphores (enhanced speed and accuracy)
# LOCK_DSN=flock:///path/to/locks # Use file-based locks
###< symfony/lock ###

Required variables:

  • REDIS_HOST, REDIS_PORT - used to connect to main Redis (sessions)
  • REDIS_EXTRA_DSN - used to connect to additional Redis (caching)
  • LOCK_DSN - DSN for the lock system. By default uses Redis (redis://localhost:6379), but can be configured to use semaphores (semaphore) or file-based locks (flock://) depending on performance requirements

Variables for consistency:

  • REDIS_DSN - used for compatibility, typically matches LOCK_DSN when using Redis for locks
  • REDIS_EXTRA_HOST, REDIS_EXTRA_PORT - DSN format alternatives for additional Redis

Important! Both Redis servers must be running and accessible before installing X-Cart. Detailed information about Redis configuration is available in the Configuration section.

The rest of the settings do not have to be changed for the purpose of X-Cart installation but you may need to check and adjust them later to ensure that everything works properly.

Installation​

The installation process can be launched from the command line. For that, issue the following command:

./bin/install.sh [-a admin-credentials]

Additionally, it is possible to use the key "-a" to specify the administrator login (email) and password in the format {login/email}:{password}

For example:

./bin/install.sh -a some.email@domain.com:s3cre4pa55w0rd

Provided that the server has been configured properly, after the installation process has been completed, your X-Cart store will become available at the domain specified.

The store's Admin area will be available at the address domain.com/admin/ ("domain.com" needs to be replaced by your actual domain).