These are the minimum requirements to run Toolset plugins:
- WordPress 5.0–6.0.2 (it’s always a good idea to run the latest and greatest version of WordPress).
- PHP 5.6 and above.
- MySQL 5.6 and above.
- 128MB RAM (see WP memory settings). Keep in mind that the required memory for your site depends on your content, theme and all plugins.
- The eval() PHP function must be enabled. More about this in the section about eval().
- Multibyte String extension (mbstring) must be enabled.
- PHP 8.1 is currently not supported due to some issues. We’re working on fixing this. In the meantime, please use PHP 8.0 version.
- While Toolset works with PHP 5.6+ and MySQL 5.6+, they reached the official End Of Life, and are not recommended for security and performance reasons.
- To be able to use the Module Manager Library on your site, you need to enable the allow_url_fopen option in your server’s PHP configuration or contact your server administrator.
- To be able to successfully upload Toolset plugins to your site, your server’s PHP settings should have sufficiently high values set for post_max_size, upload_max_filesize, and max_execution_time. Please note that the values required for these settings may depend on your particular usecase, server speed and setup.
How to check the PHP version
You can check the version of PHP that’s running on your server using a WordPress plugin (such as WordPress phpinfo()) or by uploading a tiny test file to your site.
To create your own php_info.php file, do this:
- Create a new file called php_info.php. The file should contain just a single line:
- Use an FTP program to upload it to your site’s root folder.
You should see something like this:
On the first line, you will see which version of PHP you are running. If you are using PHP version earlier than 5.6, Toolset will have problems running on your site. Your best option is to email your hosting company and ask them to upgrade you to PHP version 5.6 or later. Currently, we recommend PHP 7 and later versions.
Usage of the eval() function
The eval() PHP function must be enabled because Toolset uses TWIG framework for its structure and templates. Additionally, some deprecated functions in Toolset also use TWIG, so it is needed for backward compatibility reasons. You can take a look at the list of Toolset files where eval() PHP function is used.
Most popular templating engines, such as Smarty and TWIG, have found that it is faster to write the PHP code to a file. In that way, it can take advantage of the OPcode caching and avoid to require a run-time building of template code.
TWIG runs a lot of checks and sanitation to avoid possible attacks and it is safe to be used with Toolset. However, we cannot assure that other developers have made the same checks we did in our Quality Assurance process.
We are still investigating possible solutions which do not require compiling templates on-the-fly and would make the use of the eval() function unnecessary. However, at the moment, this is the best solution.
Please note that usually, the eval() function cannot be disabled in PHP, but some extensions such as Suhosin can do that. These extensions might be installed and configured by your hosting provider.
Troubleshooting server-related issues
If you run into any server-related issues, such as the so-called “White screen of death” or 500 Server Errors, there could be many different causes for this.
There are some basic things that you can do yourself:
- Make sure that your server follows the recommended (or at least the minimum) server requirements. If it does not, contact your hosting provider and ask them for a setup that will match the requirements.
- Increase the memory-limit option in WordPress. Often, issues arise from low memory allocation. You can try to increase the allocated memory by editing your site’s wp-config.php file. For more information on how to do this, please read the official WordPress documentation on increasing memory allocated to PHP.
- If the above recommendations do not help, please visit our documentation about debugging Toolset plugins.