Zen Cart on VPS: Free PHP E-commerce Platform with Full Control Over Your Store

26.03.2026
18:04

Zen Cart has been around since 2003 — one of the earliest open-source e-commerce engines, still actively developed and used by thousands of stores worldwide. Unlike modern SaaS platforms like Shopify or BigCommerce, Zen Cart runs on your own server: you pay only for hosting, no monthly subscriptions, no vendor lock-in, complete control over the code and your customers' data.

This guide covers what Zen Cart is, who it's for, how to install it on THE.Hosting VPS in any of 50+ locations — from Germany (Frankfurt) to Japan (Tokyo), from the US (New Jersey) to Brazil (São Paulo) — and how to configure the store for production load. No fluff, just practical steps and real commands.

What Is Zen Cart

Zen Cart is a free open-source e-commerce platform built on PHP with a MySQL database. Developed in 2003 by a group of store owners, programmers and designers as a fork of osCommerce, focused on ease of setup and operation without deep technical knowledge. Licensed under GPL2 — free to use, modify and distribute, including in commercial projects.

The current version is Zen Cart 2.2.0. The platform runs on the classic LAMP stack: Linux, Apache, MySQL, PHP. It supports PHP 8.1–8.3 (PHP 8.1 officially recommended), MySQL 5.7+ or MariaDB 10.1+. The platform is PA-DSS certified — the payment application security standard, which matters for stores accepting credit cards.

Out of the box, Zen Cart supports multiple languages and currencies, numerous payment gateways (Stripe, PayPal, Authorize.Net, and dozens more), flexible shipping rules, product attributes, promotions and discounts, SEO-friendly URL settings. The ecosystem includes hundreds of free and paid plugins on the official zen-cart.com forum.

Zen Cart vs competitors:

Zen Cart is often compared to PrestaShop, OpenCart, and WooCommerce. PrestaShop is richer in built-in features but requires paid modules for basics like one-page checkout. OpenCart is easier to learn but weaker in catalog management. WooCommerce is tightly coupled to WordPress, dragging along all its infrastructure. Zen Cart occupies its own niche — a standalone store with no dependencies, powerful product attribute management, and architecture proven over the years.

Who Zen Cart Is For

Zen Cart works best in several scenarios. First — small and medium businesses that need full control over the store and customer data without monthly SaaS payments. Second — stores with large, complex catalogs: Zen Cart handles tens of thousands of SKUs and multi-level product attributes (size, color, material) well. Third — developers who need an open-source platform to customize for specific business requirements.

Zen Cart is not the right fit if you need a marketplace with multiple sellers — CS-Cart Multi-Vendor is better for that. The platform also doesn't match Magento for scaling high-traffic projects processing hundreds of thousands of orders per day. If the priority is the fastest possible launch without technical knowledge, WooCommerce or PrestaShop with a hosting provider supporting one-click install might serve you better.

Zen Cart 2.x System Requirements

Zen Cart intentionally imposes no strict server requirements — the platform runs even on basic shared hosting with PHP and MySQL. On a VPS you get full configuration freedom and guaranteed resources.

Minimum requirements:

  • PHP 8.1 or higher (8.1 officially recommended)
  • MySQL 5.7+ or MariaDB 10.1+
  • Apache 2.4+ or Nginx
  • Minimum 512 MB RAM (1 GB+ for comfortable operation)
  • 2 GB disk space for installation

PHP extensions: curl, gd, mbstring, zip, xml, pdo_mysql, intl, openssl. The cURL extension is mandatory — without it, shipping modules and currency update features don't work.

For a production server, 2 vCPU / 2–4 GB RAM / NVMe disk is recommended. Redis or Memcached will improve performance on busy stores. An SSL certificate is required — without HTTPS, modern browsers block payment forms.

Preparing the VPS

After ordering VPS at THE.Hosting, you receive root access via email. Connect:

ssh root@your-IP-address

Update the system:

apt update && apt upgrade -y

Create a working user instead of using root:

adduser zencart
usermod -aG sudo zencart

Configure the firewall:

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Set the timezone:

timedatectl set-timezone America/New_York

Replace America/New_York with your timezone — for example Europe/Berlin for Germany, Asia/Tokyo for Japan, Europe/London for UK.

Installing the LAMP Stack

Apache

apt install apache2 -y
systemctl start apache2
systemctl enable apache2

Enable required modules:

a2enmod rewrite deflate headers expires
systemctl restart apache2

The rewrite module is mandatory for SEO-friendly URLs in Zen Cart.

MariaDB

apt install mariadb-server mariadb-client -y
systemctl start mariadb
systemctl enable mariadb

Run the secure setup:

mysql_secure_installation

Answer: set root password — yes, remove anonymous users — yes, disallow remote root — yes, remove test database — yes.

Create the store database:

mysql -u root -p

In the MySQL console:

CREATE DATABASE zencart CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'zencart_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON zencart.* TO 'zencart_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

UTF8MB4 matters if your store has emoji in product descriptions or multilingual content in non-Latin scripts.

PHP 8.1

add-apt-repository ppa:ondrej/php -y
apt update
apt install php8.1 libapache2-mod-php8.1 php8.1-mysql php8.1-curl \
php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip php8.1-intl \
php8.1-opcache php8.1-imagick -y

Configure PHP for Zen Cart. Open the config:

nano /etc/php/8.1/apache2/php.ini

Change:

memory_limit = 256M
upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 120
max_input_vars = 5000
date.timezone = America/New_York
file_uploads = On
allow_url_fopen = On
allow_url_include = Off
opcache.enable = 1
opcache.memory_consumption = 128

allow_url_fopen = On is needed for shipping modules and currency rate updates. allow_url_include = Off — must be disabled for security.

Restart Apache:

systemctl restart apache2

Verify PHP:

php -v

Installing Zen Cart

Download the latest version from GitHub:

cd /tmp
wget https://github.com/zencart/zencart/releases/download/v2.2.0/zencart-v2.2.0.zip

Install unzip and extract:

apt install unzip -y
unzip zencart-v2.2.0.zip -d /tmp/zencart-src

Move files to the web server directory:

mkdir -p /var/www/zencart
cp -r /tmp/zencart-src/zencart-v2.2.0/. /var/www/zencart/

Set correct permissions:

chown -R www-dаta:www-data /var/www/zencart
find /var/www/zencart -type d -exec chmod 755 {} \;
find /var/www/zencart -type f -exec chmod 644 {} \;
chmod 666 /var/www/zencart/includes/dist-configure.php
chmod 666 /var/www/zencart/admin/includes/dist-configure.php
chmod 777 /var/www/zencart/cache
chmod 777 /var/www/zencart/logs
chmod 777 /var/www/zencart/pub
chmod 777 /var/www/zencart/images
chmod -R 777 /var/www/zencart/images/uploads

Configuring Apache Virtual Host

Create the config:

nano /etc/apache2/sites-available/zencart.conf

Content:

<VirtualHost *:80>
    ServerName yourstore.com
    ServerAlias www.yourstore.com
    DocumentRoot /var/www/zencart

    <Directory /var/www/zencart>
        AllowOverride All
        Require all granted
        Options -Indexes
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/zencart-error.log
    CustomLog ${APACHE_LOG_DIR}/zencart-access.log combined
</VirtualHost>

Replace yourstore.com with your domain.

Enable the site and restart Apache:

a2ensite zencart.conf
a2dissite 000-default.conf
systemctl restart apache2

SSL Certificate

Install Certbot:

apt install certbot python3-certbot-apache -y
certbot --apache -d yourstore.com -d www.yourstore.com

Certbot automatically configures HTTPS and certificate renewal.

Zen Cart Web Installer

Open https://yourstore.com/zc_install/ in your browser — the setup wizard launches.

On the "System Inspection" page, verify all requirements show green. Any red items need to be resolved before continuing.

Select "Install" (not Upgrade). Enter your database details: host localhost, database name zencart, and the user and password you created earlier.

Fill in the store details: name, administrator email, currency. Create an administrator account — store the login and password somewhere safe.

After completion, the installer shows an important warning: you must delete the zc_install folder and rename the admin folder to a unique name for security.

Delete the installer folder:

rm -rf /var/www/zencart/zc_install

Rename the admin folder:

mv /var/www/zencart/admin /var/www/zencart/mystore_admin_2026

Remember the new name — this is how you'll access the control panel: https://yourstore.com/mystore_admin_2026/.

Configuring the Store

After installation, log into the admin panel and complete the basic setup.

Core settings — Admin → Configuration → My Store. Configure store name, owner, notification email, country and zone (important for correct tax calculation), weight and dimension units.

Currency and languages — Admin → Localization. Add the currencies you need and set the primary one. For a multilingual store, install language packs via Admin → Tools → Install SQL Patches or manually via FTP.

SEO URLs — Admin → Configuration → SEO URL. Zen Cart supports human-readable URLs. Enable the feature and confirm the Apache rewrite module is active.

Payment systems — Admin → Modules → Payment. Zen Cart includes dozens of built-in modules: PayPal, Stripe (via plugin), Authorize.Net, Square and others. Each module requires API keys from your payment provider.

Shipping — Admin → Modules → Shipping. Configure shipping zones and rates. Options include flat rate, weight-based calculation, and integrations with UPS, FedEx, USPS, Royal Mail, DHL.

Email — Admin → Configuration → Email Options. Using SMTP rather than PHP mail() is strongly recommended for reliable delivery. Enter your SMTP provider details (SendGrid, Mailgun, AWS SES).

Performance and Optimization

Zen Cart out of the box performs adequately, but a busy store benefits from additional tuning.

OPcache is already enabled in the PHP config. Add to /etc/php/8.1/apache2/php.ini:

opcache.revalidate_freq = 60
opcache.max_accelerated_files = 10000
opcache.interned_strings_buffer = 16

Page caching — Zen Cart includes built-in file cache. For production, enable via Admin → Configuration → Session → Cache Session. For higher-traffic projects, consider a caching plugin or Varnish in front of Apache.

Compression — add to /etc/apache2/sites-available/zencart.conf:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/jаvascript
</IfModule>

Image optimization — pre-compress all product images before uploading using ImageMagick or an online tool. Zen Cart scales images on the fly but doesn't compress them.

MySQL indexing — with a large catalog (10,000+ products) consider adding indexes on frequently queried fields. Specific recommendations are in the official Zen Cart Webserver Tuning documentation.

Choosing a VPS at THE.Hosting

For development and a test store, Ferrum VPS with 2 vCPU / 2 GB RAM / 40 GB NVMe is enough — available in all 50+ locations from €12/month. Zen Cart can start on 1 GB RAM, but 2 GB gives more comfortable headroom.

For a production store handling up to 10,000 visitors per day, go with Standard VPS with 4 vCPU / 8 GB RAM / 80 GB NVMe. Location choice depends on your audience.

European market: Germany (Frankfurt) — Europe's financial hub, ideal for DACH markets and GDPR compliance; Netherlands (Meppel) — Europe's largest internet exchange with excellent connectivity; France (Paris) — for French-speaking audiences; UK (London) — local jurisdiction matters post-Brexit.

Asian market: Japan (Tokyo) — low latency for all of East Asia; Hong Kong — optimal for China and Southeast Asia; South Korea (Seoul) — high-speed regional infrastructure.

American audience: USA (New Jersey, Secaucus) — close to New York and the East Coast; Canada (Toronto) — Canadian market with local jurisdiction; Brazil (São Paulo) — Latin America's largest market.

CIS and Eastern Europe: Moldova (Chișinău) — Dedicated servers available; Poland (Warsaw) — fast access for Central Europe; Finland (Helsinki) — minimum latency for Russia.

For high-traffic stores (100k+ monthly visitors) or large catalogs, go straight to a Dedicated Server — THE.Hosting dedicated servers are available in Finland, France, Germany, Moldova, Netherlands, USA and UK.

The key advantage of VPS over shared hosting for Zen Cart: full control over PHP version, ability to configure OPcache with the right parameters, Redis for sessions and caching, Apache tuning for load. On shared hosting all of this is either unavailable or only partially configurable via .htaccess.

Common Issues and Solutions

White screen after installation. First check the logs: tail -f /var/log/apache2/zencart-error.log. The cause is usually incorrect file permissions or a missing PHP extension. Verify all chmod 666/777 commands were applied correctly.

Installer won't complete. If the web installer hangs or throws a database connection error — check that the database name, user and password contain no extra spaces. Also verify MySQL is listening on localhost: mysql -u zencart_user -p -h localhost.

Pages load slowly. Confirm OPcache is active: php -m | grep OPcache. If it's enabled, look at MySQL connection count and configure query_cache_size in the MariaDB config.

Images won't upload in the admin panel. Permissions issue. Check:

ls -la /var/www/zencart/images/

The folder must be owned by www-data. If not:

chown -R www-dаta:www-data /var/www/zencart/images
chmod -R 777 /var/www/zencart/images

Emails not sending. PHP mail() is often blocked by VPS providers to prevent spam. Configure SMTP through Admin → Configuration → Email Options, using Mailgun or SendGrid with SPF/DKIM records on your domain.

Ready to launch your store on Zen Cart?

On THE.Hosting VPS with NVMe drives and root access you get full server control — configure PHP, MariaDB and Apache exactly as your store needs. Choose the location closest to your audience from 50+ available.

Order VPS for Zen Cart

FAQ:

Is Zen Cart free? Yes, completely. GPL2 license — download, install and use for free in any commercial project. You only pay for hosting (VPS or dedicated server) and your domain. Some plugins and themes are paid, but the core functionality needed to launch a store is available at no extra cost.

Zen Cart vs WooCommerce — which to choose? WooCommerce is more convenient if you already have a WordPress site or want to combine a blog and store. Zen Cart is better if you need a standalone store with no dependency on WordPress and its plugin ecosystem. Zen Cart is lighter on resources — it doesn't carry WordPress, multiple plugins and a complex theme. For a pure online store without a blog, Zen Cart is simpler to maintain.

How many products can Zen Cart handle? The platform handles tens of thousands of SKUs. The real limit depends on server configuration, MySQL indexing and available RAM. On a VPS with 8 GB RAM and properly tuned MariaDB, a store with 50,000+ products runs without issues. For catalogs of 100,000+ items you'll need a dedicated server and additional query optimization.

Does Zen Cart support multiple languages? Yes, out of the box. Zen Cart supports multiple languages — download a language pack (available for Russian, German, French, Spanish, Chinese and dozens of others) and install it through the admin panel. Shoppers can select their language directly on the store.

How do I migrate a store from another platform to Zen Cart? There's no built-in migration tool — Zen Cart doesn't provide official importers from PrestaShop, OpenCart or WooCommerce. Products can be imported via CSV, and orders and customer history via SQL or third-party migration services. For complex migrations (with order history, loyalty points, custom fields) seek help from developers on the zen-cart.com forum.

THE.Hosting Useful Links:

Zen Cart Resources:

Other articles

26.03.2026
14
Knowledge base / Instructions
VirtueMart: Turn Joomla into an Online Store in 30 Minutes
26.03.2026
13
Knowledge base / Instructions / Review
OXID eShop: German Enterprise Platform for Complex Integration Projects