PHP is the language WordPress, Joomla and most websites are written in. Plesk lets you pick the PHP version per domain. Which version fits what, when you should switch, and what the most important settings are — here’s the tour.
Which PHP versions we offer
Currently:
- PHP 7.4 (legacy — end of life since 2022, only for old applications)
- PHP 8.0 (legacy — end of life since 2023)
- PHP 8.1 (stable, widely supported)
- PHP 8.2 (stable, good for modern apps)
- PHP 8.3 (current, recommended for new projects)
- PHP 8.4 (newest, for those who want the latest)
Configurable per domain. You can run two domains on different PHP versions at the same time.
Choosing a PHP version
In Plesk: Domain → Hosting & DNS → PHP Settings → PHP version.
Click the dropdown → pick the version → save.
Takes effect immediately — no downtime, no restart.
Which version for which application
WordPress
- PHP 8.2 or 8.3: recommended for current WordPress versions
- PHP 8.1: solid default
- PHP 7.4: only for very old sites with plugins that were never updated
WordPress 6.x supports PHP 7.4–8.4. We recommend 8.2 for stability, 8.3 for best performance.
Joomla
- PHP 8.1 or 8.2: current Joomla 4 versions
TYPO3
- PHP 8.2 or 8.3: TYPO3 12.x
Custom PHP applications
Take the version your application requires. If you write the code yourself: 8.3 as the default.
Legacy apps
For old forum software or old custom applications: PHP 7.4. Keep in mind: no more security patches — we only provide it for an unavoidable migration period.
Adjusting PHP settings
In Plesk: Domain → PHP Settings shows a list of the most important values.
memory_limit
Default depends on plan: 512 MB (Start), 1 GB (Pro), 2 GB (Power), 4 GB (Max).
That’s plenty for WordPress with lots of plugins. Normally you don’t need to touch this.
upload_max_filesize / post_max_size
Depending on plan: 64 MB (Start), 128 MB (Pro), 512 MB (Power), 1 GB (Max) — that’s also the plan limit.
If you want to upload even larger files (videos, large ZIP imports): use FTPS instead of PHP upload.
Keep both values in sync (post_max_size at least as large as upload_max_filesize).
max_execution_time
Default: 30 seconds.
For long imports / backups: 300 or 600.
But: the better solution is usually to run long operations asynchronously (CLI, WP-CLI) instead of raising the PHP timeout.
display_errors
Default: off (production).
When you’re debugging: temporarily on. But never permanently on in production — it gives attackers hints about server paths.
error_log
Where PHP errors get written. Default: /var/log/.... You can read it in Plesk under Statistics → Logs.
date.timezone
Default: Europe/Berlin. Affects date functions in PHP.
PHP extensions
Plesk shows the available PHP extensions:
- mysqli, pdo_mysql — for MySQL databases
- gd, imagick — for image processing
- curl — for HTTP requests
- mbstring — for UTF-8
- json, xml — for data formats
- opcache — for performance (always leave enabled)
- ionCube Loader — for encoded/licensed PHP applications, enabled by default
That covers the common applications — CMS, shops, blogs, CRM systems, forums — without extra work. If your application is still missing something: open a ticket, we’ll add it.
Performance optimization
OPcache
Pre-compiled PHP — speeds up every PHP execution by a factor of 2-5.
Should be enabled (our default).
In Plesk: PHP Settings → opcache.enable = On.
realpath_cache_size
Default: 16M. For large codebases (WordPress with 50+ plugins): raise it to 64M.
Run PHP as FPM application served by nginx
Plesk has several PHP handlers. PHP-FPM is the fastest — our default.
Switching PHP — pitfalls
Plugin incompatibility
When you switch from PHP 7.4 to 8.x: some old WordPress plugins have incompatibilities (deprecated warnings, errors).
Before switching: update all plugins to the latest version. Then WordPress Toolkit → compatibility check.
Composer vendor dependencies
If your app was installed via Composer: run composer install again after switching PHP versions so the dependencies match.
Caching
After switching PHP versions: clear all browser caches and CDN caches.
The Plesk server cache (OPcache) is cleared automatically on switch.
Config files
Some apps have PHP-version-specific php.ini values in wp-config.php or similar. Check the config when switching.
PHP version per directory
Plesk standard: the PHP version applies to the whole domain.
If you need a different PHP version in a subdirectory: create a subdomain with its own PHP config (see Domain overview).
Custom php.ini
For deeper tweaks: in Plesk → PHP Settings → Additional configuration directives you can insert custom PHP settings:
memory_limit = 512M
max_input_vars = 5000
max_input_nesting_level = 256
Takes effect immediately after saving.
Frequently asked questions
Can I test a PHP version before switching? Yes, with the WordPress Toolkit on a cloned staging site. More in WordPress Toolkit in Plesk.
What if switching PHP versions breaks the website? Switch back immediately in Plesk — takes effect instantly. Website runs again. Then do plugin updates or code fixes, then try again.
How do I see which PHP version is currently running?
- In Plesk: Hosting & DNS → PHP version
- In PHP itself: create a file with
<?php phpinfo(); ?>, open it in the browser - The WordPress Toolkit shows the version in the domain overview
How long are old PHP versions supported?
- PHP 7.4: only limited support left — we recommend migrating to 8.x
- PHP 8.0: same story
- PHP 8.1+: actively supported
How do I fully clear the OPcache? Plesk → PHP Settings → Reset OPcache. Or it’s automatically empty after a Plesk restart.
What’s the difference between PHP-CGI, PHP-FPM and Apache mod_php?
- mod_php: Apache loads PHP directly (legacy)
- PHP-CGI: PHP runs as a CGI process (slow)
- PHP-FPM: dedicated PHP worker pool (fast, modern)
We use PHP-FPM. Other modes are configurable if needed — rarely requested.
ionCube Loader, SourceGuardian — do you have those? ionCube Loader is standard and enabled for all PHP versions — encoded applications run right away. SourceGuardian and other exotic loaders we add on request, open a ticket.
Can I set the memory limit to 1 GB? From the Pro plan up, 1 GB is actually the default. If you keep hitting OOM errors, better optimize the code or consider a vServer.
What’s next
First login to Plesk
What you get after ordering, how to log in to Plesk for the first time and what to set up right away.
Plesk dashboard and navigation
How Plesk is structured: left navigation, domain list, tabs per domain, service plan limits. So you don't have to go hunting.
Domain overview and web space
What the domain detail page shows: document root, creating subdomains, DNS status, web space quota. So you know your way around your main domain.
File Manager in the browser
Upload files, edit them, set permissions — all in Plesk's built-in File Manager. When it's enough, and when FTPS is the better choice.