In order to run, WPML requires the following:

  • WordPress 3.9 or later
  • PHP 5.6 and above with memory limit of at least 128MB while 256MB is recommended (see WP memory settings). Keep in mind that the required memory for your site depends on your content, theme and all plugins.
  • MySQL 5.6 and above.
  • That you can create tables in your database.
  • Multibyte String extension for using WPML String Translation
  • SimpleXML extension for using XLIFF files in WPML Translation Management.
  • The eval() PHP function must be enabled. More about this in the section about eval().

Using earlier versions of PHP and MySQL

WPML may run on earlier versions of PHP and MySQL, but we can’t test that. If you’re using earlier versions, we strongly recommend enabling WPML’s debug mode. This will surface any PHP errors and let you know if things don’t run as they should.

Feel free to comment here about using WPML with other versions.

How to check which version of PHP you’re actually using

Some shared hosting companies have installed both PHP4 and PHP5. The best way to check which version you’re actually using is to ask the PHP processor itself (not the technician in the hosting company).

Create a file called php_info.php and put it in your WordPress directory (just next to wp-config.php). This file should contain the following:

<?php phpinfo(); ?>

Not a big deal, right? If you need to, you’re welcome to download it as a ZIP file. Grab (of course, you’ll need to unzip it before uploading to your server).

Once there, open a browser and go to:

You should see something like this:

php-info.php showing the PHP version on the server
php-info.php showing the PHP version on the server

On top, it says which version of PHP you’re running. If it says PHP Version 4, it’s not going to fly. The best thing to do is email your hosting company and ask them how to enable PHP 5, or greater.

Permalink structure

WPML adds language information to URLs. It’s been tested with the following permalink structures:

  • The default
  • /%year%/%monthnum%/%postname%/


Other permalink structures may work too, but can cause problems on different configurations. In all our sites, we’re using /%year%/%monthnum%/%postname%/.

For pages, you’ll get the exact same URLs as with /%postname%/. However, with this permalink structure, there’s no way WordPress will confuse between pages and posts, triggering potential problems for language resolution.

Usage of the eval() function

The eval() function must be enabled because WPML uses TWIG framework for its structure and templates, which makes WPML dependable on this function.

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 WPML. 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.

18 Responses to “Minimum Requirements”

  1. Hi,
    I would like to add WMPL plugin to translate my website from English to Arabic. I have multiple questions if you can clarify those I can go to buy the plugin.
    Question no 1) how much accuracy assurance will come when doing automation with your WMPL plugin?
    Question no 2) If I found there is no accuracy(translation) are you providing refund amount.
    Question no 3) Are you providing any trail version?

    Please update as soon as possible. so that I will go ahead.

  2. Hi,

    Does WPML works with a permalink structure like this:


    and the plugin WP No Category Base (Vers. 1.1.1) enabled?

    Does Mysql 5.1.73 make WPML work?


    • You can use this permalink structure with WPML, but the No Category Base plugin and WPML don’t work together well. Both plugins modify URLs (WPML adds language information) and they cause a conflict.

      • Could you suggest me other plugins useful to remove “category” in posts permalink compatible with wpml?

        Also: do you know if WPML runs with mysql 5.x versions previous of 5.6?

        Thanks you so much
        Best regards

  3. Hi, I wanted to upgrade from to the last version and I get a lot of ”Illegal string offset ‘language_name_cache_class’ – WPML“

    So I’ve seen these (probably missing) 3 requirements
    – Multibyte String extension for using WPML String Translation
    – SimpleXML extension for using XLIFF files in WPML Translation Management.
    – The eval() PHP function must be enabled. More about this in the section about eval().

    but I do not understand how I can enable that in htaccess or where and in what code I have to put in my wordpress files.
    Could you kindly give a more clear/detailed explanation?

  4. Is this page still accurate? I am trying to install WPML Multilingual CMS 3.8.4 on WordPress 3.9.20 and the first error I get is a 500 page. Apache’s error_log mentions:

    PHP Warning: require_once(/var/www/html/wp-admin/includes/translation-install.php): failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/sitepress-multilingual-cms/classes/localization/class-wpml-download-localization.php on line 28
    PHP Fatal error: require_once(): Failed opening required '/var/www/html/wp-admin/includes/translation-install.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/wp-content/plugins/sitepress-multilingual-cms/classes/localization/class-wpml-download-localization.php on line 28

    • I have just run a test with WPML 3.8.4 and WordPress 3.9.20 and I could finish the install, activate and configure WPML, looking at the log I could see a few deprecated warnings but it does works.

      Can you please open a ticket in our support forum for that issue and paste here the link? – that way we can ask for access details and have a look at your setting on Monday.


    • This function is used in WPML in a very specific place, which also requires admin access. True, an admin could abuse this call, but we believe that admins have easier ways to modify their own sites than through a clever hacking of eval. Non admins cannot access this function.