Skip to main content

Technical Requirements

J2Commerce requires a properly configured server environment. This page details the exact requirements for running J2Commerce optimally.

Server Requirements

PHP Version

VersionStatusNotes
PHP 8.3+RequiredCurrent minimum requirement
PHP 8.2Not SupportedMay work but not tested
PHP 8.1Not SupportedNot compatible
PHP 8.0Not SupportedNot compatible

Database

TypeVersionNotes
MySQL8.0+Recommended
MariaDB10.6+Compatible with MySQL 8.0
PostgreSQLNot SupportedRequires extension

Web Server

TypeSupportNotes
Apache 2.4+Fullwith mod_rewrite
NginxFullRequires configuration
IISPartialURL rewriting setup required
LiteSpeedFullCompatible with Apache config

PHP Extensions

Required Extensions

These extensions must be installed and enabled:

ExtensionPurposeCheck
mysqli or pdo_mysqlDatabase connectivityphp -m | grep mysql
jsonJSON encoding/decodingBuilt into PHP 8+
mbstringMulti-byte string supportmb_substr() works
curlHTTP requests for APIsPayment gateways, currency updates
zlibCompressionGzip output, package installation
ExtensionPurposeBenefit
gd or imagickImage processingProduct image resizing, thumbnails
zipArchive handlingExtension installation, exports
opensslEncryptionSecure API connections, webhooks
bcmathPrecision mathAccurate price calculations
intlInternationalizationCurrency formatting, translations

Check Extensions

Run this PHP code to check installed extensions:

<?php
$required = ['mysqli', 'json', 'mbstring', 'curl', 'zlib'];
$recommended = ['gd', 'imagick', 'zip', 'openssl', 'bcmath', 'intl'];

echo "Required:\n";
foreach ($required as $ext) {
echo "- $ext: " . (extension_loaded($ext) ? "OK" : "MISSING") . "\n";
}

echo "\nRecommended:\n";
foreach ($recommended as $ext) {
echo "- $ext: " . (extension_loaded($ext) ? "OK" : "MISSING") . "\n";
}

Directory Permissions

J2Commerce requires write access to the following directories:

DirectoryPurposePermissions
/tmpTemporary files755 or 775
/logsLog files755 or 775
/administrator/cacheCache files755 or 775
/imagesProduct images755 or 775
/media/com_j2commerceMedia files755 or 775

Verify Permissions

# Check if directories are writable
ls -la /var/www/html/tmp
ls -la /var/www/html/logs

# Test write access
touch /var/www/html/tmp/test.txt && rm /var/www/html/tmp/test.txt

PHP Configuration

Required Settings

SettingMinimumRecommended
memory_limit256M512M
upload_max_filesize10M32M
post_max_size20M64M
max_execution_time300600
max_input_time300600

php.ini Example

memory_limit = 512M
upload_max_filesize = 32M
post_max_size = 64M
max_execution_time = 600
max_input_time = 600

# Required extensions
extension=mysqli
extension=mbstring
extension=curl
extension=zip
extension=gd

SSL Requirements

HTTPS is required for:

  • Payment processing (PCI compliance)
  • Payment webhook verification
  • Currency API connections
  • Some shipping carrier APIs
  • TLS 1.2 or higher
  • Modern cipher suites
  • HSTS enabled
  • Certificate from trusted CA

Hosting Recommendations

Shared Hosting

J2Commerce can run on quality shared hosting with:

  • PHP 8.3+ support
  • MySQL 8.0+ database
  • SSH or CLI access for cron jobs

VPS / Dedicated

For better performance:

  • 2 GB RAM minimum (4 GB recommended)
  • 2 CPU cores minimum
  • SSD storage for database
  • Opcode cache (APCu or OPcache)

Cloud Hosting

Compatible with:

  • AWS (EC2, Lightsail)
  • Google Cloud Platform
  • DigitalOcean
  • Linode

Environment Check

J2Commerce includes a system check in the Dashboard. To verify your environment:

  1. Go to Components -> J2Commerce -> Dashboard
  2. Look for the Setup Guide panel on the right
  3. It will alert you to any missing requirements

Troubleshooting

"PHP version not supported"

Update PHP to version 8.3 or higher via your hosting control panel or contact your host.

"Database extension not found"

Install or enable the mysqli extension in php.ini:

extension=mysqli

"Curl extension not found"

Install curl support:

# Ubuntu/Debian
sudo apt-get install php-curl

# CentOS/RHEL
sudo yum install php-curl

"Permission denied" errors

Set correct ownership for the web server:

# Apache on Ubuntu/Debian
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

# Nginx on Ubuntu/Debian
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

What's Next?