Server requirements for jkdevstudio themes

Installation 9 min read

Every jkdevstudio theme runs on the same server baseline: PHP 8.1, WordPress 6.0, and enough memory and upload headroom for a demo import to finish without stopping halfway. Below are the exact numbers, what each one does, and what to say to your host when a value is too low.

These are not unusual numbers. WordPress publishes its own requirements, and the demo import is the only thing here that asks for more than an ordinary WordPress site does.

#The numbers

Most of these settings have two thresholds that matter: a minimum below which the theme's own checks warn you, and a recommended level where heavy operations run without you thinking about it again.

Setting Minimum Recommended
PHP 8.1 the latest stable release
WordPress 6.0 the latest release
memory_limit 128M 256M
max_execution_time 30 seconds 60 seconds, or 0 for no limit
max_input_vars 1000 3000
upload_max_filesize 32M 64M
post_max_size 32M 64M
Database any MySQL or MariaDB version WordPress still supports the latest supported version
HTTPS a working certificate a working certificate

Minimum means no warnings, recommended means it stays out of your way.

At the minimum the theme works, with some risk that a heavy operation such as a demo import stops partway. The recommended column is where you stop thinking about these numbers. On the upload limits, higher is better: the demo import moves the whole media library through them.

You do not have to read any of this off your server by hand. Open the menu carrying your theme's name in the WordPress sidebar and go to System Info: every value above is measured there, and a limit below the minimum is marked with a warning. With the Pro plugin, Diagnostics grades the same checks as pass, warning or fail.

System Info and DiagnosticsTwo tools answer the question "what state is this site in right now" without visiting your hosting panel, running phpinfo or opening files. Most support tickets close faster when the reports...JKD Toolkit

#What these settings do

These are standard PHP limits, so they behave the same way on any WordPress site you work on, and the PHP manual is the authority on each one.

memory_limit

How much memory one PHP request may use before the server stops it. A page load needs very little. Importing a demo, generating image sizes, or saving a large settings screen needs a lot more, all at once.

max_execution_time

How many seconds a single request may run. Ordinary page loads finish in well under one second. A demo import runs far longer, because it copies posts, downloads media and rebuilds menus. That is why 30 seconds is where it starts getting risky.

max_input_vars

How many separate fields one form submission is allowed to carry. WordPress settings screens post hundreds of fields at once, and when the cap is hit PHP silently drops everything past it. The page reports that it saved, and half your settings are gone.

upload_max_filesize and post_max_size

The largest file you can upload, and the largest request body the server accepts. The effective ceiling is whichever of the two is smaller, so raising only one of them changes nothing.

#PHP extensions

The theme uses seven PHP extensions, and most hosts ship all of them: curl for talking to Hub and downloading updates and demos, mbstring for text that is not plain English, gd for images, zip for the archives updates and demos arrive in, fileinfo for working out an upload's real type, and dom with simplexml for reading the demo content file.

A missing extension only disables the one feature that needs it.

The theme keeps running. With zip missing you cannot import a demo, and everything else behaves normally, which is also why a missing extension is easy to misread as a broken feature.

#What is not a number

Four more things have to work, and none of them has a number you can compare. In practice these cause more failed setups than any limit in the table above.

Outbound HTTPS requests, continuously

Your server has to reach the outside world, not just once at activation. The license re-verifies itself on a schedule, and when it cannot reach us it enters a 72-hour grace period and then stops being active. This is the usual cause behind "my site was fine and deactivated itself three days later": a firewall, a security plugin or a host that blocks outgoing connections. The site keeps loading normally the whole time, which is why nothing points at it.

WP-Cron

The scheduler built into WordPress runs that re-verification and background work in our integrations. Some hosts disable it with DISABLE_WP_CRON and replace it with a real server cron, which is fine, as long as something is actually calling wp-cron.php. If nothing is, the check never runs and never recovers on its own. The WordPress cron documentation explains both arrangements.

A writable uploads folder

Media and self-hosted fonts are stored under wp-content/uploads. If the folder is read-only, uploads and font installs fail quietly rather than reporting an error.

The REST API

The theme settings panel is built on it. Security plugins that block the REST API for logged-out visitors are fine; ones that block it entirely leave you with an admin screen that never loads.

Activating your theme licenseActivation turns a purchased theme into a working Pro install. It takes about a minute when it goes well. This page walks the whole flow and covers every point where it can stop, because tha...Licensing

How a license is checked on your siteYour site confirms its license with our server on a schedule. That is why an activation can lapse without you touching anything: one of the conditions it rested on changed, or the schedule s...Licensing

For disk space, the theme itself is about 4 MB and the Pro plugin about 10 MB with its dependencies. The demo content is what fills the disk, because it brings a full media library with it.

#When the numbers are fine and the import still fails

Read this before you spend an afternoon on limits that were never the problem.

A demo import makes a long run of outbound requests to fetch media, then writes a lot of files. Three things outside the PHP table stop it, and none of them shows up as a limit:

  • A firewall or security plugin that blocks or throttles outgoing HTTP requests, so the media downloads time out one by one.
  • A host that kills long requests at the web server rather than in PHP, which is why the import dies at a consistent point regardless of max_execution_time.
  • Distance and packet loss between your server and ours, which turns a two-minute import into one that never finishes.

The symptom is the same in all three, so the diagnostics screen tests outbound connectivity directly rather than leaving you to guess.

#How to check your own server

Open the WordPress report

Go to ToolsSite HealthInfo and expand the Server section. This screen ships with WordPress, works on any site, and shows the PHP version and most of the limits above.

Compare it against the table

Anything at or above the recommended column needs no attention. Anything sitting between minimum and recommended should be raised before you import a demo.

Open the theme's System Info screen

The theme checks the same values, plus the extensions, the uploads folder, cron and outbound connectivity, and marks the ones that need attention instead of leaving you to compare numbers.

#Raising a limit

Your host sets almost everything on this page, so where you change it depends on how your hosting is arranged.

Most managed hosts expose PHP version, memory_limit and upload limits directly in their control panel, often under a name like "PHP settings" or "PHP selector". This is the first place to look, and changes there apply immediately.

On a server you control, set the values in php.ini and restart PHP.

memory_limit = 256M
max_execution_time = 120
max_input_vars = 3000
upload_max_filesize = 64M
post_max_size = 64M

WordPress can raise its own memory ceiling, though never above what PHP allows. This helps when the host limit is high and WordPress is the thing capping it.

define( 'WP_MEMORY_LIMIT', '256M' );

If none of those are available to you, send your host this, filling in the values you need:

Hello, could you please raise the following PHP settings for my site: memory_limit to 256M, max_execution_time to 120, max_input_vars to 3000, and both upload_max_filesize and post_max_size to 64M. Could you also confirm that the curl, mbstring, gd, zip, fileinfo, dom and simplexml extensions are enabled, and that outbound HTTPS requests from the server are allowed. Thank you.

A host that will not raise a hard limit is a reason to change plan.

Working around a fixed PHP ceiling means giving up demo imports and large uploads permanently, and no setting inside WordPress can lift a limit the server imposes.

Choosing hosting for a WordPress themeThe theme installs on any host that runs a current WordPress. Trouble usually starts with a limit the host will not lift, so this is the list to work through before you pay for a plan. PHP l...Installation

#Common questions

My site deactivated itself a few days after I activated it

Almost always a blocked outbound connection rather than anything about the license. The check runs on a schedule and enters a 72-hour grace period when it cannot reach us, so the site looks fine for days and then stops.

Confirm outbound HTTPS in System Info first, then look at a security plugin or a host firewall.

My host says memory is 256M, but the check still shows a lower value

Servers often run more than one PHP configuration: one for the web, one for the command line, and sometimes one per directory. The number that counts is the one PHP reports while serving your site, which is what ToolsSite HealthInfo shows.

Send your host that screen rather than the number from their panel.

Are the requirements different for the free and Pro versions?

No. The baseline above covers both, and Pro adds features without asking more of the server.

My site works fine, so can I ignore the warnings?

For everyday editing, usually yes. The flagged values are the ones that break during heavy one-off operations, such as a demo import, a bulk media upload or saving a settings screen with hundreds of fields.

They fail on the day you are setting the site up rather than during normal editing.

Is an old PHP version a problem if the site loads?

Yes, for two reasons. PHP versions stop receiving security fixes on a published schedule, so an unsupported one carries known vulnerabilities that will never be patched. And below 8.1, the theme uses language features that do not exist at all.

A check is still flagged after my host changed something

Copy the output from the System Info screen before assuming the change did not land. It carries the PHP version, every limit, the extension list and the WordPress version in one block, measured on the configuration that serves your site rather than the one in the hosting panel.

#Still stuck

Open a support ticket and say what you tried and where it stopped. Your product, your domain, a screenshot and the exact message you saw are usually enough to settle it in one reply.

Last updated

Was this article helpful?

Related articles

FIND THE ONE THAT FITS YOUR PROJECT

Import a demo, swap the content, adjust the layout. Modern WordPress under the hood, fast even when the site fills up.