Installation
Requirements
- Web server: Linux and Apache 2.4+ with mod_rewrite and mod_headers
- Database: MySQL 5.7.22+ or MariaDB 10.5.0+. InnoDB storage engine
- PHP: 8.1.0 minimum (currently tested up to 8.5.10)
PHP extensions: curl, fileinfo, json, openssl, pdo, pdo_mysql, zip
The installer will do a pre-flight check to ensure your server meets the minimum requirements.
Storage space: Depends on the amount of products you want to list, and the potential traffic. A typical small-medium store on any standard shared or VPS hosting (4GB+ RAM, 1GB+ SSD storage space) should be sufficient.
Email delivery: PHP's native mail() can be used as a fallback, but for reliable email delivery (avoiding spam folders and rejections) we strongly recommend using SMTP.
Orders: To test and start accepting orders, you will need a PayPal developer account and be able to obtain sandbox and live account API credentials.
Installation
- Download the distribution zip file from your account, or from your order confirmation email.
- Create a new (blank) MySQL database on your server and note the access credentials (hostname, database name, username, password).
- Upload all files from the zip file to your server, using FTP or via your hosting control panel.
- Where you uploaded the files, run /install in your browser and follow the instructions carefully.
- If all the steps were successful, you should have access to your site admin and front-end.
SMTP Configuration
As mentioned above, to avoid emails going into spam boxes, we strongly recommend using SMTP as the mail delivery method. The popular PHPMailer library is used for the job.
To configure SMTP, edit /includes/config_smtp.php
define('SMTP_FROM_NAME', SITE_NAME); // Leave as-is
define('SMTP_FROM', 'mail@example.com');
define('SMTP_REPLY_TO', 'noreply@example.com');
define('SMTP_HOST', 'mail.example.com');
define('SMTP_USER', 'mail@example.com');
define('SMTP_PASS', 'password');
define('SMTP_PORT', 587);
define('SMTP_SECURE', 'tls');If you would prefer to use PHP's native mail() sending method, rename the /vendor/phpmailer folder to anything else, e.g. /vendor/phpmailer.disabled
PayPal Configuration
Your PayPal business account must have access to Expanded Checkout which involves completing their onboarding process form.
You won't be able to test orders, or take real orders until you have PayPal client and secret API keys. Go to the developer dashboard to get them (see Apps & Credentials).
Edit /includes/config_paypal.php
define('PAYPAL_CLIENT_ID', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
define('PAYPAL_SECRET', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
define('PAYPAL_MODE', 'sandbox'); // 'sandbox' or 'live'
define('PAYPAL_CURRENCY', CURRENCY_CODE); // Leave as-isFor a list of test card numbers, click here. An easy Visa test card number to remember is 4111 1111 1111 1111
Once you have confirmed that orders work correctly in sandbox mode, you can change the PAYPAL_CLIENT_ID and PAYPAL_SECRET to the 'live' credentials and set the PAYPAL_MODE to 'live'.
If you have any issues installing XCMS, feel free to contact us.