System requirements

Web Server Environment

Multi-Vendor/CS-Cart is developed to meet most server configurations, ranging from shared hosting accounts to dedicated servers.

There are two core requirements for your host to run Multi-Vendor/CS-Cart:

  • PHP version 5.3.6, 5.4, 5.5, 5.6, 7 or 8. Multi-Vendor/CS-Cart supports SAPI mod_php, FPM, FastCGI. We recommend:

    • PHP 5.6 for Multi-Vendor/CS-Cart 4.3.1 - 4.3.6.

    • PHP 7.0 for Multi-Vendor/CS-Cart 4.3.6 - 4.5.2. Earlier versions don’t support PHP 7.

    • PHP 7.1 for Multi-Vendor/CS-Cart 4.6.1 and newer versions. In earlier versions errors occurred on PHP 7.1.

    • PHP 7.2 is supported starting with Multi-Vendor/CS-Cart 4.7.2.

    • PHP 7.3 is supported starting with Multi-Vendor/CS-Cart 4.11.1.

    • PHP 7.4 is supported starting with Multi-Vendor/CS-Cart 4.12.1.

    • PHP 8.0 is supported starting with Multi-Vendor/CS-Cart 4.15.1.

    • PHP 8.1 is supported starting with Multi-Vendor/CS-Cart 4.17.1.
    • We recommend not to move your store to early PHP versions, if you used
      PHP 7.1 and newer versions. This could lead to users not being able to sign in.

  • MySQL version 4.1 or higher (MySQLi or pdo_mysql should be supported). Multi-Vendor/CS-Cart also supports MariaDB 5.5 or higher, and PerconaServer 5.5 or higher.

We recommend a Unix-like operating system for your server, such as FreeBSD, Linux, or OS X. These systems are scalable, more secure, and offer better performance. Both 64-bit and 32-bit operating systems are supported, but we recommend 64-bit systems: they don’t limit the maximum amount of RAM to 4 gigabytes, among other advantages.

There is also a requirement to the version of the operating system. If you are using Ubuntu as a Linux distribution, then it should be Ubuntu 18.04 or higher.

Multi-Vendor/CS-Cart is compatible with almost every server that supports PHP and MySQL. However, we recommend Apache or Nginx as the most robust and stable servers for your web store.

Server Configuration Requirements

  • SELinux and AppArmor should be disabled (on Linux servers).

  • safe_mode PHP directive should be disabled.

  • file_uploads, allow_url_fopen PHP directives should be enabled.

  • The following PHP commands should be enabled:

    <span class="pre">ini_set</span> <span class="pre">ftp_exec</span> <span class="pre">ftp_connect</span> <span class="pre">ftp_login</span> <span class="pre">ftp_get</span>
    <span class="pre">ftp_put</span> <span class="pre">ftp_nb_fput</span> <span class="pre">ftp_raw</span> <span class="pre">ftp_rawlist</span> <span class="pre">mysql_pconnect</span>
    <span class="pre">eva</span> <span class="pre">system</span> <span class="pre">exec</span> <span class="pre">shell_exec</span> <span class="pre">passthru</span>
    <span class="pre">escapeshellarg</span> <span class="pre">escapeshellcmd</span> <span class="pre">set_time_limit</span>    
  • The following PHP extensions should be installed (required extensions are marked with *):

    MySQL support* Required for storing the data of your store in a database. <span class="pre">mysqli</span> OR <span class="pre">pdo_mysql</span>
    Network requests support* Required for proper functioning of several payment gateways (such as PayPal, Authorize Net, etc.) and real-time shipping services (FedEx, UPS, DHL), for sending e-mails via SMTP, and for upgrading your store. <span class="pre">curl</span>, <span class="pre">sockets</span>
    Graphics library* Required for creating smaller versions (thumbnails) of product images. If you don’t have a graphics library, you won’t be able to upload images for products. <span class="pre">imagick</span> OR <span class="pre">gd</span>
    EXIF support* Required for making sure that the thumbnails generated from images shot in landscape mode will be rotated correctly. <span class="pre">exif</span>
    JSON support* Required for proper functioning of CS-Cart and Multi-Vendor; even some aspects of core functionality rely on JSON. <span class="pre">json</span>
    XML support* Required for proper functioning of CS-Cart and Multi-Vendor; even some aspects of core functionality rely on XML. <span class="pre">xml</span>, <span class="pre">libxml</span>, <span class="pre">SimpleXML</span>, <span class="pre">dom</span>, <span class="pre">xmlreader</span>, <span class="pre">xmlwriter</span>
    SOAP support* Required for proper functioning of several real-time shipping services (for example, Temando). <span class="pre">soap</span>
    Multibyte string support* Required for proper handling of multibyte strings (for example, strings that contain Cyrillic symbols). <span class="pre">mbstring</span>, <span class="pre">iconv</span>
    Character type checking support* Required for proper checking whether a character or string falls into a certain character class according to the current locale. <span class="pre">ctype</span>
    GZIP archives support* Required for unpacking TAR and GZIP archives. Otherwise you won’t be able to install add-ons and themes from such archives. <span class="pre">Phar</span>
    ZIP archives support* Required for unpacking ZIP archives. Otherwise you won’t be able to upgrade your store and install add-ons and themes from such archives. <span class="pre">zip</span>
    File information support* Required for proper detection of the file type. <span class="pre">fileinfo</span>
    Cryptography support* Required for proper functioning of several payment gateways (such as Servired and SagePay) and for interacting with third-party services (such as Facebook). <span class="pre">openssl</span>
    FTP support Required for setting correct file and directory permissions during the installation and upgrades of the store, and during the installation of add-ons and themes. An FTP server must be installed on your server. <span class="pre">ftp</span>
    Cache and session backend Required for storing cache and PHP sessions in a high-performance storage rather than on the disk. <span class="pre">redis</span> OR <span class="pre">sqlite3</span> OR <span class="pre">xcache</span> OR <span class="pre">apcu</span> OR <span class="pre">apc</span>
  • Either Imagick or GD PHP extension must be installed. These extensions are used for image manipulation, such as creating thumbnails, applying watermarks, etc. We recommend Imagick, because it offers better performance and quality of the processed images. Using GD can lead to crashes due to the lack of memory when large product images are uploaded.

    • Imagick is a PECL extension. The official PHP documentation has detailed installation instructions for Imagick. ImageMagick version 6.5.3-10+ and PHP 5.4.0+ must be installed on your server.

      We strongly recommend using at least ImageMagick 6.9.3-10 or higher, as it includes a critical vulnerability fix. ImageMagick 7 is only supported starting with Multi-Vendor/CS-Cart 4.7.2.

    • GD is included in PHP, however PHP should be compiled with the <span class="pre">--with-gd</span> flag. The official PHP documentation has detailed installation instructions for GD. Please make sure your GD configuration includes the FreeType font library.

  • If you use Apache as your web server:

    • mod_rewrite should be enabled (for SEO to work);

    • mod_headers should be enabled (for CORS and widget mode to work);

    • mod_ssl should be enabled (for SSL to work);

    • mod_security should be disabled; if you don’t want to disable it fully, configure it to work with Multi-Vendor/CS-Cart as described in <span class="pre">this</span> <span class="pre">file</span>;

    • the .htaccess file should allow the following directives:

      <span class="pre">DirectoryIndex</span> <span class="pre">Deny</span> <span class="pre">Allow</span> <span class="pre">Options</span> <span class="pre">Order</span>
      <span class="pre">AddHandler</span> <span class="pre">RewriteEngine</span> <span class="pre">RewriteBase</span> <span class="pre">RewriteCond</span> <span class="pre">RewriteRule</span>
  • If PHP was compiled with the Suhosin extension, then configure it in the php.ini file as follows:

    <span></span><span class="nx">suhosin</span><span class="o">.</span><span class="nx">memory_limit</span> <span class="o">=</span> <span class="mi">0</span>
    <span class="nx">suhosin</span><span class="o">.</span><span class="nx">post</span><span class="o">.</span><span class="nx">max_vars</span> <span class="o">=</span> <span class="mi">3000</span>
    <span class="nx">suhosin</span><span class="o">.</span><span class="nx">get</span><span class="o">.</span><span class="nx">max_totalname_length</span> <span class="o">=</span> <span class="mi">3000</span>
    <span class="nx">suhosin</span><span class="o">.</span><span class="nx">session</span><span class="o">.</span><span class="nx">encrypt</span> <span class="o">=</span> <span class="nx">Off</span>
    <span class="nx">suhosin</span><span class="o">.</span><span class="nx">session</span><span class="o">.</span><span class="nx">cryptua</span> <span class="o">=</span> <span class="nx">Off</span>
    <span class="nx">suhosin</span><span class="o">.</span><span class="nx">cookie</span><span class="o">.</span><span class="nx">cryptdocroot</span> <span class="o">=</span> <span class="nx">Off</span>
    <span class="nx">suhosin</span><span class="o">.</span><span class="nx">session</span><span class="o">.</span><span class="nx">cryptdocroot</span> <span class="o">=</span> <span class="nx">Off</span>
    

    Suhosin is a PHP extension intended for protection. However, it can cause various issues with Multi-Vendor/CS-Cart.

Multi-Vendor/CS-Cart Architects Team Recommends This

  • Use a virtual or dedicated private server instead of a shared hosting; this allows for smoother upgrades.
  • Install and enable Openssl PHP extension to generate more secure session keys.
  • Install Redis or APCu and set it as a Multi-Vendor/CS-Cart cache backend.
  • Install OPcache.
  • Install the mod_deflate Apache mod.
  • Disable MultiViews on the server.

Enabled MultiViews option may cause unexpected results, if an URL (for example, an URL of a SEO name) matches the structure of folders in the root directory of the store.

Compatible Hosting Providers

As you can see, the requirements for the web server environment are quite typical. Thousands of hosting providers meet them. But if you can’t decide on the hosting for your web store, we recommend Progreso.pl or Zahid.host.

Server Hardware Requirements

Requirements to server hardware depend on multiple factors. The more products, customers, and functionality your store has, the higher-performing server you’ll need.

Here’s an example of the server hardware sufficient for 50 visitors per hour:

HDD 10 Gb
CPU One core, 2.4 GHz
RAM 1024 Mb