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.
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:
- VPS in Germany (Frankfurt)
- VPS in Netherlands (Meppel)
- VPS in USA (New Jersey)
- VPS in Japan (Tokyo)
- Dedicated Servers
- Knowledge Base
- 24/7 Support
Zen Cart Resources: