Skip to main content
Version: X-Cart 5.6.0

Requirements

You will need a PC or a UNIX-compatible server to work with the software.

Required Software:

  • Nginx

  • PHP (8.3 - 8.4) https://www.php.net/

    PHP extensions required for X-Cart

    • ext-amqp
    • ext-ctype
    • ext-curl
    • ext-date
    • ext-filter
    • ext-hash
    • ext-iconv
    • ext-intl
    • ext-json
    • ext-libxml
    • ext-mbstring
    • ext-openssl
    • ext-pcre
    • ext-pdo
    • ext-redis
    • ext-simplexml
    • ext-soap
    • ext-sockets
    • ext-sodium
    • ext-spl
    • ext-tokenizer
    • ext-xml
    • ext-xmlwriter
  • Composer (2.7 or higher) https://getcomposer.org/

  • MariaDB https://mariadb.org/ (11 or higher)

  • OpenSSL https://www.openssl.org/

  • memory_limit value must be 64M or higher

  • Node (22 or higher) https://nodejs.org/en/

  • Yarn (1.22 or higher) https://yarnpkg.com/

  • libvips — for image processing support

  • liblpsolve55 — required for Order Routing (Split Shipments)

  • Node (14 or higher) https://nodejs.org/en/

  • Yarn (1.22.19 or higher) https://yarnpkg.com/

  • Redis https://redis.io/ (6.2.0 or higher) — two separate databases required: one for cache, one for sessions

    Important! X-Cart requires two separate Redis instances:

    Main Redis (for sessions and locks):

    • Memory: 100MB minimum
    • Eviction policy: maxmemory-policy noeviction
    • Persistence: enabled (AOF + RDB)

    Additional Redis (for cache):

    • Memory: 1GB minimum (recommended)
    • Eviction policy: maxmemory-policy volatile-lru
    • Persistence: disabled

    The PHP extension ext-redis is already included in the list above.

Additional Requirements:

  • If xdebug is enabled, xdebug.max_nesting_level must be set to 300

  • If OPcache is enabled, the following settings must be applied

    opcache.use_cwd=1
    opcache.revalidate_path=1
    opcache.validate_timestamps=1
    opcache.revalidate_freq=0
    opcache.save_comments=1
    opcache.load_comments=1

    Any other cachers should not strip comments from the code, too.

  • A background message processing worker must be running for asynchronous tasks (import, email dispatch, image resizing, QuickData, etc.)

    Start a worker for a specific queue:

    ./bin/console messenger:consume async

    List all available queues:

    ./bin/console xcart:messenger:receivers:list -x