October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
VGSources
Blog

How to Install Zen Cart on a VPS (Linux, Apache/Nginx, PHP and MySQL)

A complete manual Zen Cart VPS installation guide: match versions, prepare PHP and the database, upload and verify the archive, run the browser installer, and secure the finished store.
Length10 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Install Zen Cart on a Linux VPS by matching your server software to the exact Zen Cart release, creating the domain and database first, uploading and verifying the official archive, then running the browser installer. For most first-time deployments, Apache 2.4 is the easier choice because Zen Cart’s supplied .htaccess protections work with it. Nginx is supported, but you must reproduce directory-security rules yourself.

After the installer finishes, the store is not ready until you protect both configuration files, remove zc_install, set a strong administrator password, and enable HTTPS. The steps below cover a clean manual installation and the decisions that commonly cause failed or insecure deployments.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check compatibility before provisioning the VPS

Zen Cart requirements vary by release branch. Do not choose PHP or a database image first and hope it works; identify the Zen Cart version you intend to run, then provision versions listed for that release. The official server-requirements page was last modified April 25, 2026, and explicitly warns that compatibility changes by branch.

Zen Cart documentation reference PHP Database Web server
v2.2.x requirements PHP 8.2 through 8.5 Preferred: MySQL 8.x/9.x or MariaDB 11.x; supported: MySQL 5.7.8+ or MariaDB 10.2.7+ Linux with Apache or Nginx
Download-page summary for v2.1+ PHP 8.1–8.3+ MySQL 5.7+ or MariaDB Apache or Nginx

The two summaries cover different release ranges, so treat the exact release page as authoritative. If a hosting image offers PHP 8.1 only, it may suit a v2.1 release but not v2.2.x. Conversely, selecting PHP 8.5 for an older branch without checking its support statement can create plugin or extension incompatibilities.

Required PHP extensions and settings

Enable the extensions Zen Cart checks during its pre-flight test:

  • bcmath
  • ctype
  • curl compiled with OpenSSL
  • fileinfo
  • GD and getimagesize
  • iconv
  • intl (required since v2.0.0)
  • JSON
  • mbstring (required since v2.2.0)
  • mysqli and PDO MySQL
  • PCRE
  • zip
  • zlib

Set PHP memory_limit to at least 128 MB. A 256 MB or 512 MB limit is useful when the VPS has sufficient RAM, particularly during image processing, administration tasks, or extension-heavy stores. Keep allow_url_include disabled. The core documentation also advises disabling passthru, system, and shell_exec unless a specific, trusted plugin requires one of them.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose Apache or Nginx

Decision point Apache 2.4 Nginx
Documentation status Primary documented web server Supported
Configuration model Uses Zen Cart’s distributed .htaccess protections Requires equivalent directory-security rules in the server configuration
Important setup requirement AllowOverride must be All or at least Limit Indexes Options Rules that would have come from .htaccess do not apply automatically
Recommended capabilities rewrite, ssl, http2, headers, expires, env, alias, deflate, mime, plus the PHP module Use the PHP integration supported by your distribution and explicitly deny access to protected Zen Cart directories
Best fit Most straightforward first installation Administrators already comfortable translating Apache security rules

Windows/IIS is not supported. Whichever server you select, reserve enough RAM and storage for the operating system, PHP workers, the database, product images, logs, and backups rather than sizing the VPS to the application files alone.

Provision the VPS and point the domain

  1. Select a Linux VPS image. Use a currently supported Linux distribution and obtain root or equivalent administrative access. Confirm that the image can install the PHP branch, extensions, web server, and MySQL-compatible database required by your Zen Cart release.
  2. Install the web stack. Install Apache 2.4 or Nginx, the matching PHP runtime and extensions, and MySQL or MariaDB. Keep package versions within the release’s compatibility range; do not mix a newer PHP branch with an older Zen Cart release without checking its documentation.
  3. Create DNS records. Point the store’s domain (and any intended www hostname) to the VPS address. Wait for DNS to resolve before testing the installer. If you plan to force HTTPS, make sure both the certificate and DNS are ready so the installer’s SSL choice matches the final URL.
  4. Create a dedicated document root. Use a clean directory such as the virtual host’s public_html, www, or html directory. Avoid placing the archive in a shared directory containing unrelated applications.
  5. Configure the virtual host. Set the domain’s document root, enable the PHP handler, and, with Apache, permit the required overrides. Keep the database service reachable only as needed by the application; do not expose its administrative port publicly.

Before uploading Zen Cart, verify the active PHP version and extensions from the VPS control panel or a temporary diagnostic page, then remove that diagnostic page. The browser installer’s pre-flight screen is the final authority because it tests the environment from the application’s point of view.

Create the database and account first

The installer expects an empty database and credentials that can create and modify Zen Cart tables. Create them in your hosting control panel or equivalent database-management interface before opening the store URL.

Use a separate database user

  • Create a database dedicated to this Zen Cart store.
  • Create a separate database user with a long, unique password.
  • Grant that user the permissions required for the Zen Cart database, rather than using the server’s global administrator account.
  • Record the database name, username, password, host name, and port exactly as displayed by the VPS provider. A database host may be localhost, a private address, or a managed-database endpoint.

Do not preload tables or import sample data unless you know the release expects it. During installation, Zen Cart can create its schema and can optionally load demonstration data.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Download, verify and upload Zen Cart

  1. Download the official release archive. Use the project’s official download source and select the version whose requirements you confirmed. Avoid repackaged archives from unknown mirrors.
  2. Verify the published hash. The project’s installation instructions tell operators to check the published MD5 or SHA1 value. Compare the hash of your downloaded archive with the value published for that exact release; a mismatch means you should discard the file and download it again.
  3. Extract locally or on the VPS. Unzip the verified archive. The extracted directory may contain a top-level folder; upload the contents inside it, not an extra nested directory, unless you deliberately want the store below a subpath.
  4. Upload every extracted file. The official instructions state that everything inside the unzipped folder belongs on the web server, for example in public_html, www, or html. Preserve directory names and hidden files, including .htaccess files when using Apache.

If the store should open at https://example.invalid/, the Zen Cart files belong directly in that virtual host’s document root. If it should open at https://example.invalid/shop/, upload them into the shop subdirectory and use that path consistently when the installer asks for the catalog URL.

Prepare configuration files and writable directories

Zen Cart ships a distribution configuration file that must be converted for the installation. In the extracted files, rename includes/dist-configure.php to includes/configure.php. The repository instructions also require the installer to be able to write this file temporarily.

  1. Rename includes/dist-configure.php to configure.php.
  2. Make includes/configure.php writable by the web server for the duration of setup.
  3. Make the cache and logs directories writable by the web server account.
  4. Leave other directories at restrictive permissions unless the pre-flight screen specifically reports that one needs attention.
  5. Check ownership as well as mode bits. A file set to writable but owned by the wrong account can still produce a permission error.

The detailed installation guide lists additional directories when a particular release needs them. Follow the installer’s red and warning indicators rather than making the entire document root world-writable.

Run the browser installer

  1. Open the store URL. Browse to the domain or subdirectory where you uploaded Zen Cart. A new installation should redirect to the installer.
  2. Resolve every red pre-flight error. The pre-flight page checks PHP version, extensions, writable paths, and related requirements. Do not continue while a red error remains. Warnings may be informational, but read each one before proceeding.
  3. Complete system setup. Enter the server and path settings requested by the installer. Choose the SSL option to match the URL you will use. If the certificate is already installed, use the HTTPS catalog and administration URLs rather than planning to switch later.
  4. Enter database settings. Supply the database host, port if nonstandard, database name, user, and password created earlier. A connection failure is usually caused by a typo, a wrong host value, a blocked database service, or a user lacking privileges.
  5. Choose demonstration data. Select demo products only if you want sample catalog content. For a production store, start with the clean schema unless you intentionally need the examples.
  6. Create administrator credentials. Use a unique administrator name and a long password that is not reused elsewhere. Save the credentials in a password manager.
  7. Save and test both interfaces. Confirm that the catalog loads and that the administration URL accepts the new credentials. Complete this test before changing permissions, because you need to know whether a later hardening change caused a problem.

Common installer failures

  • PHP version rejected: install a release-compatible PHP branch or select a Zen Cart version supported by the PHP already available on the VPS.
  • Missing extension: install the named extension, restart the PHP handler or web server as required by your distribution, and reload the pre-flight page.
  • Configuration file not writable: check ownership, temporary mode bits, and whether PHP runs under a different account than the file owner.
  • Database connection refused: verify host, port, credentials, service status, and firewall rules; then test again without changing unrelated settings.
  • Blank page or server error: inspect the web-server and PHP error logs, confirm the PHP handler is active for the virtual host, and verify that all archive files uploaded correctly.

Harden the installation immediately

Manual installation is the official recommendation because it lets you build a secure, optimized, current system. Treat the following work as part of installation, not as optional cleanup.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Lock the generated configuration files

After the installer has written its settings, change permissions on both includes/configure.php and admin/includes/configure.php. The installation guide lists 644 or 444 depending on the server. Use the most restrictive value that still allows the application to run; verify the catalog and administration pages afterward.

Remove the installer

Delete the entire /zc_install directory from the web root once setup succeeds. Leaving it available can expose installation functions or allow someone to re-run setup.

Secure administration

  • Change the administrator password immediately if it was temporary or shared during setup.
  • Use a long, unique password and store it outside the server.
  • Restrict administrative access at the network or web-server layer when your operating environment permits it.
  • Review current Zen Cart security recommendations and apply updates compatible with your release and plugins.

Enable HTTPS everywhere

Zen Cart’s documentation says stores should always use HTTPS with an SSL certificate. Install a certificate for every hostname customers and administrators will use, set the installer’s secure URLs correctly, and redirect plain HTTP traffic to HTTPS at the web-server layer. Test login, checkout, image loading, and any payment callback after the redirect is enabled.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Review PHP exposure

Keep allow_url_include off. Disable passthru, system, and shell_exec for the core unless a specific, trusted plugin genuinely requires them. If you enable one for an extension, document why and limit access to the smallest practical scope.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Nginx-specific security work

With Apache, Zen Cart’s distributed .htaccess files can enforce protections when AllowOverride is configured correctly. Nginx does not read those files, so an apparently working store can still expose directories or files that Apache would block.

  1. Translate the release’s Apache protection requirements into Nginx server rules before going live.
  2. Explicitly deny web access to configuration, logs, cache, and other private directories identified by the Zen Cart documentation.
  3. Prevent direct execution or download of files that should only be processed internally.
  4. Reload Nginx and test protected paths from a separate browser session. A protected path should return a denial or a controlled not-found response, not directory contents.

If you are unfamiliar with Nginx location precedence, Apache is the safer first choice for this application because its default protection model is documented alongside the distribution.

Backups, updates and operational checks

A VPS gives control, but it also leaves patching and recovery to you unless your provider manages those tasks. Before accepting orders, establish:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Scheduled database backups with a tested restore procedure.
  • File backups that include product images, uploaded media, plugins, and both generated configuration files.
  • Operating-system, PHP, web-server, and database security updates compatible with your Zen Cart branch.
  • Monitoring for disk space, memory pressure, failed services, certificate expiry, and repeated authentication failures.
  • A written record of the PHP branch, database version, enabled extensions, document root, administrator URL, and any non-default security rule.

Take a backup before changing Zen Cart core files, PHP versions, database engines, or plugins. Test a restore on a separate location instead of assuming that a successful backup job is usable.

How to evaluate a Zen Cart-compatible VPS

There is no single VPS specification that fits every catalog. Compare offers against the requirements and responsibilities that affect this installation:

Evaluation axis What to confirm
Runtime support The provider offers the PHP branch and extensions required by your chosen Zen Cart release.
Database choices MySQL or MariaDB versions fall within the release’s supported range, with a practical backup and restore method.
Web-server control You can configure Apache 2.4 or Nginx, virtual hosts, rewrites, HTTPS, and directory protections.
HTTPS automation The service can issue, install, renew, and monitor an SSL certificate for every store hostname.
Resources RAM and storage leave headroom above PHP’s 128 MB minimum memory setting and the database, media, logs, backups, and operating system.
Administration You receive the root or administrative access needed to patch packages, change PHP settings, and inspect logs.
Security responsibility The contract makes clear who handles firewall rules, operating-system patches, database backups, and incident response.
Application support Support staff understand PHP, MySQL/MariaDB, Apache or Nginx, and Zen Cart rather than offering only generic VPS assistance.

Final launch checklist

  • The VPS runs a Linux release and PHP/database versions supported by the exact Zen Cart branch.
  • All required PHP extensions are enabled, with memory_limit at least 128 MB.
  • The domain resolves to the VPS and the virtual host points to the correct document root.
  • The official archive was hash-verified before upload.
  • includes/configure.php was created from dist-configure.php, and required writable directories work.
  • The pre-flight page shows no red errors.
  • The catalog and administration area both load using the intended HTTPS URLs.
  • Database credentials use a dedicated account, not a global administrator account.
  • Both generated configuration files have been restricted to 644 or 444 as appropriate for the server.
  • zc_install has been deleted.
  • The administrator password is unique and stored securely.
  • Apache .htaccess rules are active, or equivalent Nginx rules have been implemented and tested.
  • Backups, patching, certificate renewal, and monitoring are documented.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.