Installing and Configuring X-Cart > 

System Requirements

Top  Previous  Next  

X-Cart system installs/runs on:

PHP 4.0.6 or later (PHP 5 is also supported).

Make sure the configuration file php.ini meets the following requirements:

safe_mode must be disabled

file_uploads must be enabled

[PHP 5] register_long_arrays must be enabled

PCRE extension must be enabled

ini_set function must not be included in the disabled functions list

magic_quotes_sybase must be disabled

sql.safe_mode must be disabled

allow_url_fopen must be enabled

Tip: For help on PHP configuration settings, visit http://www.php.net.

The web server must have support for MySQL databases.

X-Cart is compatible with MySQL versions 3.23 and better.

Note: The most up-to-date information on compatibility with specific versions of MySQL is available on www.x-cart.com website.

You will need to have access to a MySQL database, so make sure you have the following information:

- your MySQL server name,

- your database name,

- your username and password.

The amount of space required for X-Cart database depends on the number of products, customers and orders that will be stored there. Accordingly, database space requirements may vary from as little as 1 megabyte for small shops to over 100 megabytes for large stores.
Sufficient disk space for X-Cart to run on. After the installation, X-Cart 4.1.0 uses about 25 megabytes of disk space. In addition to that, some disk space will be needed for X-Cart's cache data, image files (if you choose to store them on the file system) and files that might be added in connection with X-Cart customizations.

Advanced requirements and recommended settings

Some areas of X-Cart's functionality rely on external executable files/modules. Accordingly, your web server must be allowed to run external executable files (like Perl) and to make outgoing connections to the Internet (that is required for online payments). Loopback connections must be allowed by server firewall (required for HTML catalog feature).

The following PHP extensions are required:

pcre
mysql

The following components may be required:

An HTTPS module (like Net::SSLeay perl module, CURL executable, OpenSSL executable or libCURL PHP extension) for some of the online credit card processing modules and for shipping modules.
EXPAT extension for PHP for Intershipper, UPS or USPS shipping modules.

Important: If you are planning to use a Windows hosting, please make sure that X-Cart gets installed at a location from which it can freely access any external executable files which it might need for its work:

     1) the full path to X-Cart installation directory must not include any space symbols;

     2) the filepaths to the  external executable files must not include any space symbols.

Examples of bad paths:

     C:\My Websites\xcart

     C:\Program Files\Perl\bin\perl.exe

OpenSSL PHP extension for iDEAL Advanced and iDEAL RaboBank Professional payment modules.
GDLib 2.0 or higher (for X-Magnifier addon).
ftp - to be able to upload files to GoogleBase
zlib - for data compression on the fly
mcrypt - highly recommended to speed up the Blowfish data encrypting process

Make sure the functions exec, popen and pclose are not included in the disabled functions list in php.ini:

PHP function "exec()" must be allowed for the correct functioning of most of the CC payment processing modules used with X-Cart (CyberCash, CyberPac (LaCaixa), DataTrans, PayBox, CyberSource, PaySystems Client, VaultX), HTTPS modules (Net::SSLeay, CURL, OpenSSL, https_cli), GnuPG/PGP, X-Carts Patch/Upgrade functionality.
PHP functions "popen()" & "pclose()" must be allowed for the correct functioning of some HTTPS modules (CURL, Net::SSLeay), payment modules (Saferpay, CyberSource, iDeb), shipping modules (DHL/Airborne, Canada Post, UPS Online Tools, Intershipper, AntiFraud module.

An SSL certificate is highly recommended to ensure security of online transactions at your store.

Tip: Please refer to the page http://www.x-cart.com/ssl_certificates.html for a list of recommended SSL certificates.

Recommended PHP options

Set the error reporting level in the configuration file php.ini. In PHP 4 and PHP 5 the default value is:

error_reporting = E_ALL & ~E_NOTICE

It is recommended not to show E_NOTICE level errors, which may be useful for debugging purposes only.

To speed up Smarty template engine, it is advisable to enable the output_buffering PHP option. The recommended value is 4096:

output_buffering = 4096 

The following values are recommended for the corresponding PHP options:

disable_functions = NULL

post_max_size >= 2M

upload_max_filesize >= 2M

max_execution_time >= 30

memory_limit >= 8M

max_input_time >= 30

sendmail_from = ...@domain.com (an email address, from which sending mail is allowed)

Other settings

PHP must be compiled with the "--enable-memory-limit" option (highly recommended)
The real amount of memory, which PHP scripts are allowed to use must equal to or be more than 16Mb (if PHP has been compiled without the "--enable-memory-limit" option).
Call stack size must be equal to or more than 10 000 (except Windows).
During product import, product modification or upgrading process, more than 24 Mb of memory might be necessary.
PHP "mail()" function must be allowed to send email notifications, news messages, etc.
External mail program, such as qmail or postfix (available on Unix systems only) instead of the PHP "mail()" function.
SMTP server to send mail from the store, using SMTP Authentication instead of the PHP "mail()" function.

Recommended MySQL configuration

1. MySQL version

Version: 3.23 - 5.X
Recommended version: 4.1.22

2. MySQL server settings

MAX_CONNECTIONS >= 200

3. MySQL user privileges

Basic privileges:

select_priv
insert_priv
update_priv
delete_priv
lock_tables_priv
index_priv

Privileges, required for software installation/upgrade:

create_priv
drop_priv
alter_priv

4. MySQL user limitations

MAX_QUESTIONS - no limitations
MAX_UPDATES - no limitations
MAX_QUERIES_PER_HOUR - no limitations
MAX_USER_CONNECTIONS - no limitations
max_allowed_packet - 2-8 Mb recommended
wait_timeout - 28800 recommended but 7200 at least

Note: a 'Lost connections' error may appear if the values of the two abovementioned options are too low.

Some limitations are possible on small visitor numbers.

 

These are the basic system requirements. Some specific settings may be needed for different store configurations.