[email protected]Support 24/7 · Billing 09:00 – 00:00LinkedInXFacebook
NexonHost
Netherlands Dedicated ServersAmsterdam · Equinix AM6Germany Dedicated ServersFrankfurt · Equinix FR4Romania Dedicated ServersBucharest · VoxilityAustria Dedicated ServersVienna · Interxion VIEBulgaria Dedicated ServersSofia · TelepointFrance Dedicated ServersParis · Interxion PAR — Marseille · Digital Realty MRS3Ireland Dedicated ServersDublin · Equinix DB2Italy Dedicated ServersMilan · Irideos AvalonPoland Dedicated ServersWarsawSpain Dedicated ServersMadrid · Equinix MD2United States Dedicated ServersAshburn · Equinix DC
All articles
BlogsSeptember 8, 2026

OpenCart Hosting Requirements: What the Official Docs Get Wrong

OpenCart Hosting Requirements: What the Official Docs Get Wrong

OpenCart's official requirements page is short, which is usually a good sign and here is not. Read it carefully and you find a list that cannot all be true at once — and the contradiction tells you something useful about how to shop for a host.

Here are the OpenCart hosting requirements as published, what is wrong with them, and the sizing work the page does not attempt.

The official requirements, verbatim

From OpenCart's own documentation, retrieved September 2026:

Requirement Stated
PHP 8.0 or later
Database A server supporting MySQLi, PDO or PostgreSQL; MySQL or MariaDB with MySQLi (preferred) or PDO
Web server Apache recommended
Extensions Curl, GD Library, Iconv, Mbstring, OpenSSL, ZipArchive, Zlib
PHP settings file_uploads, magic_quotes_gpc, register_globals, session_auto_start

The installer checks these at install time, so anything missing surfaces immediately rather than at checkout.

The part of that list that cannot be satisfied

Look at the settings row against the PHP row.

register_globals and magic_quotes_gpc were removed from PHP in 5.4, released in 2012. They do not exist in PHP 8.0. There is no configuration on any supported PHP version that turns them on, and if a host offered to, that would be a reason to leave rather than to sign.

So the requirements page asks for a PHP version in which two of its four required settings are impossible. This is documentation drift, not a functional requirement — OpenCart 4 runs perfectly well on PHP 8 without them. But it is worth knowing for one practical reason: if a hosting salesperson tells you their stack "meets all the OpenCart requirements including register_globals," you have learned something about that salesperson.

The two settings that do still exist are worth checking properly. file_uploads must be on or the admin cannot accept product images. session.auto_start should generally be off, not on, because OpenCart manages its own session start; leaving it on is a known source of "headers already sent" noise.

What to actually verify on a candidate host

A short list that reflects the software as it exists rather than as it is documented:

  • PHP 8.1 or newer. 8.0 is the documented floor but reached end of security support in November 2023. Buy a stack you can keep patched.
  • The seven extensions. GD in particular — thumbnail generation fails without it and the failure is silent-ish, showing as missing images rather than an error.
  • MySQL or MariaDB with InnoDB. PostgreSQL appears in the docs; the extension ecosystem overwhelmingly assumes MySQL. Choosing PostgreSQL for an OpenCart store is choosing to test every third-party extension yourself.
  • A memory_limit you can raise. The docs give no figure. 256M is a workable floor for a store with extensions; imports and bulk operations want more.
  • Cron access. Scheduled tasks (feeds, currency updates, abandoned-cart mail) all need it.
  • Free, automatic TLS. Non-negotiable for a store taking card details through any gateway.

Sizing, which the requirements page does not attempt

Minimums are an install gate. Four variables decide what you actually need:

Catalogue size and option depth. Product count is the number people quote; option combinations are the number that matters. A product with 5 sizes and 4 colours is 20 combinations, and the option tables grow faster than the product table.

Concurrency, not monthly visits. "20,000 visits a month" is not a sizing input. Peak simultaneous sessions is. A newsletter that puts 300 people on the site in ten minutes is a different machine from the same traffic spread evenly.

The uncached fraction. Category and product pages cache well. Cart, checkout, account and search do not — and those are the pages that take the money. Size the server for the uncached path.

Extension count. Every OpenCart extension adds event handlers that run on page render. A store with 40 extensions does substantially more work per request than the same store with 12 on identical hardware. This is the single most common cause of "the site got slow and nothing changed."

Choosing a tier without guessing

Store profile Sensible platform
Under ~1,000 products, modest traffic, stock theme, few extensions Managed shared hosting
A few thousand products, growing traffic, custom theme, several extensions VPS
Large catalogue, heavy concurrency, custom integrations, strict uptime target Dedicated server

NexonHost's OpenCart hosting plans cover the first row and the early part of the second — from a 5 GB Starter tier at €2.49/month to a 50 GB Agency tier at €24.99/month carrying 25 sites, all NVMe-backed with free SSL, one-click installation, daily backups and a managed migration path.

Watch what storage really holds. OpenCart's code is small; the store is not. The database, every generated thumbnail size for every product image, invoices and logs are the growth. A 3,000-product catalogue with four images each produces tens of thousands of files once thumbnails exist. Shared-tier storage is consumed by images long before it is consumed by code.

When a store outgrows shared hosting, the honest next step is a Linux VPS — root access, your own PHP-FPM pool sizing, your own MySQL tuning — and past that a dedicated server where the database gets memory nobody else is competing for.

Five changes worth more than a hardware upgrade

  1. OPcache, sized so it is not evicting. PHP recompiling the class hierarchy on every request is the largest avoidable cost in any PHP store. Check opcache_get_status() rather than assuming.
  2. innodb_buffer_pool_size. The MySQL default is far too small for ecommerce. The goal is the working set living in memory instead of on disk.
  3. PHP-FPM pm.max_children set against real memory. Set it higher than RAM supports and a traffic spike becomes swapping, which is slower than refusing the connection would have been.
  4. Audit extensions annually. Disable, measure, decide. Most stores are carrying at least one extension nobody uses that runs on every page.
  5. A CDN in front of product images. They are most of the bytes and none of the logic.

Failure modes worth recognising

  • Images missing after upload. GD absent, or file_uploads off, or directory permissions.
  • "Headers already sent" in the admin. Frequently session.auto_start left on.
  • Browsing fine, checkout failing. Outbound connectivity to the payment gateway blocked by a hardened stack, or TLS version mismatch.
  • Fine until a campaign. A concurrency ceiling — PHP-FPM children or MySQL max connections, nearly always.
  • Storage full with no obvious cause. Generated thumbnails, or logs nobody rotated.

Before you migrate

Verify three things on the target host before committing: the PHP version, the seven extensions, and that session.auto_start is off. Fifteen minutes there prevents the class of problem that only shows itself once real customers are in the cart.

If you are moving providers, NexonHost's OpenCart plans include a specialist-handled migration covering files, database, theme and configuration, scheduled rather than improvised — which is what "zero downtime" actually requires. Agencies running stores for several clients should look at reseller hosting instead of buying a plan per client.

Related reading: PrestaShop hosting requirements, cPanel vs DirectAdmin vs Plesk, and DDoS-protected web hosting.

Sources

  • System Requirements, OpenCart Documentation, retrieved 7 September 2026.
  • PHP 5.4.0 release announcement, PHP.net — "Register globals, magic quotes and safe mode were removed", under "Changes that affect compatibility".
  • Supported Versions, PHP.net, retrieved 7 September 2026.
  • Plan specifications and pricing as published on nexonhost.com on 7 September 2026; check the product page for current figures.
Keep reading
OVHcloud vs NexonHost: Which Dedicated Server Provider Performs Better?
March 10, 2026

OVHcloud vs NexonHost: Which Dedicated Server Provider Performs Better?

OVHcloud vs NexonHost: Which Dedicated Server Provider Performs Better? Organizations deploying infrastructure in Europe rarely struggle to find hosting providers. The challenge is choosing the right one when performance, network stability, and DDoS resilience actually matter. Companies evaluating…

Read article
2026 Trends: Why European VPS and Dedicated Servers Are Gaining Demand
March 5, 2026

2026 Trends: Why European VPS and Dedicated Servers Are Gaining Demand

2026 Trends: Why European VPS and Dedicated Servers Are Gaining Demand Infrastructure strategy has quietly become one of the most consequential decisions modern digital businesses make. Companies launching SaaS platforms, ecommerce systems, AI applications, fintech products, or large content…

Read article
Top 10 Unmetered Windows VPS Hosting Providers in Europe
March 3, 2026

Top 10 Unmetered Windows VPS Hosting Providers in Europe

Top 10 Unmetered Windows VPS Hosting Providers in Europe If you’re searching for unmetered Windows VPS hosting in Europe, you’re likely dealing with bandwidth unpredictability, performance constraints, or Microsoft licensing requirements. European demand now centers on stable bandwidth,…

Read article
Get in Touch

Together, Let’s Build a Faster, Safer Internet.

Build scalable infrastructure with NexonHost — high-performance dedicated servers, VPS hosting, cloud hosting, and DDoS protection across Europe.

Get Started →Contact Us
[email protected]Support 24/7 · Billing 09:00 – 00:00