Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Switching to PHP5

From version 3.2, WordPress will cease to be supported under PHP 4, with the minimum required PHP version being PHP 5.2.

This article is to answer questions about making the move from PHP 4.x to PHP 5.x on your web hosting platform.

Switching to PHP 5

To identify the version of PHP your web server is using, download the WordPress Health Check plugin. When you activate the plugin, it will tell you if you are ready for WordPress 3.2. If it is not, contact your web hosting provider and ask them to provide support for PHP 5. Tips are available below.

Compatibility: Will PHP 5 Break WordPress Themes or Plugins?

WordPress developers and Theme and Plugin authors use the current PHP version 5.2 for some time, staying current with improvements in coding technology. Current and updated versions should be compliant and you should not run into any problems when you upgrade your hosting to a recent PHP version like PHP 5.2.x or 5.3.x.

In fact, WordPress runs better on PHP 5 than it does on PHP 4. PHP 4 is outdated and WordPress is not much tested to run on it any longer (not as much as PHP 5 by far at least). And for many plugins and themes this is the same, PHP 5.2 is supported right now on most hosts.

Some bugs do only exist when you run WordPress on PHP 4 but they do not exist when you run it on PHP 5. In these cases not PHP 5 but PHP 4 is the problem.

Some WordPress Plugin and Theme authors are working on versions that are only compatible with PHP 5 and its improved features and capabilities. So these do not even work with PHP 4 or older PHP 5 versions.

However, older Themes and Plugins may have PHP code that eventually might not work with every PHP 5 version. Check with the Theme and Plugin authors for the specific requirements of the plugins you're using. PHP 4 is officially end of life since August 2008 (that means no security patches since longer than a year ago). If your plugin has not been updated in years, please look for updated versions, or consider changing to an alternative option.

If you are using non-WordPress-specific code such as JavaScript, gadgets, widgets, or other custom or third-party PHP scripts, check with the original source for updated versions, just in case. Because PHP 5 is mostly backwards compatible you should not run into any problems normally.

Switching from PHP 4 to PHP 5.2 is known to cause an issue wherein gibberish appears above the Wordpress blog header related to "open_basedir restriction." It usually runs like this:

Warning: is_dir() [function.is-dir]: open_basedir restriction in effect.
File(/) is not within the allowed path(s):
(/home/MY_ACCOUNT:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:
/usr/local/php4/lib/php:/tmp) in /home/MY_ACCOUNT/wp-includes/functions.php
on line 1942

This can easily be corrected by editing the MySQL table. Search for wp_options and find "option_name = ‘upload_path’" and shorten the value in the column. For example, if the value in it is ‘/home/MY_ACCOUNT/wp-content/uploads,' change it to ‘wp-content/uploads’. More information can be found here

Web Hosting PHP Switch Examples

This list is intended to show examples of how to swap to PHP5 on various hosts. This is not a complete, nor official list. Please check with your web host for specific and updated information.

  • 1&1 Germany (Confirmed for WebHosting 5.0 package) - To parse all php files in php5, the following lines of code have to be added to the root directory's .htaccess file:
 AddType x-mapp-php5 .php
 AddHandler x-mapp-php5 .php
  • Blue Host (Confirmed) - Supports PHP 5 by default.
  • Dream Host (Unconfirmed) - Visit Domains > Manage Domains > Edit Domain in your control panel.
  • Gradwell - Visit the Control Panel > Hosting > Manage Domains > Click on the domain name. Change the zone file to Default hosting on php 5 cluster. Click update. In "Unix Hosting," edit the domain and switch to PHP 5.
  • GoDaddy - From the Hosting Control Center, select Content > Add-On Languages. Select "PHP 5.x" as the version, then click Continue and Update.
  • HostMonster - Supports PHP 5.2, 5.2fastCGI, 5.3, 5.4 & 5.4fastCGI by default (confirmed runs well on 5.4 & 5.4fastCGI)
 Edit your .htaccess file and add either to the top (simple)
 # To Use PHP5.4 as default
 # Standard php, not fast cgi php
 # AddHandler application/x-httpd-php54 .php
 # To Use PHP54CGI as default
 # AddHandler fcgid54-script .php
  • Media Temple - Check the knowledge base for help on upgrading.
  • OVH - To parse all php files in php5, add the following line of code to the root directory's .htaccess file:
 SetEnv PHP_VER 5
  • cPanel (checked on PAC WebHosting, but probably applies to all cPanel based web hosting services) - On the cPanel main page > Software > PHP Configuration. At the top of the PHP configuration page, where it says "The '.php' file extension will be processed by" and select PHP 5 from the dropdown box. Click the "Update" button.
  • NearlyFreeSpeech.net Log into your account, click on your site and change the server type. The change will take effect in minutes. Its as simple as that!

FAQs on Moving to PHP 5

Will I have to redo my whole site over? 
No, in most cases there would be no need to change anything on your site. If you are running a very old version of WordPress you may see better compatibility from upgrading, but then that's good advice no matter what PHP you're using.
Can I ask my web host to install PHP 5 or do I have to do it myself? 
This will vary from host to host. In some cases, a request via a support ticket will get you an answer from your web host provider. Others will offer the option through your host's control panel. It is usually a simple procedure.
What if my web host doesn't offer PHP 5? 
Most responsible host providers have already made the switch. Ask if they have plans to introduce PHP5 support. If they are planning to introduce the support soon, then it shouldn't be an issue. If they have no such plans, you might want to look around for alternative providers.
How much work and time will this take? 
If your web host provides the alternative, moving from PHP 4 to PHP 5 should be painless and fast. If there are problems with WordPress Themes, Plugins, and other scripts and PHP code, it could be more work, though most are updated by now. In most cases, though, it is as simple as clicking a button or two and waiting for it to happen.
How much money will this cost? 
Most hosts would not charge for providing PHP5. If you have paid for premium WordPress Themes or WordPress Plugins, check the support arrangements for PHP5 versions.
If my host doesn't upgrade, can I still use WordPress? 
As PHP5 only functionality becomes more common, and the possibility that a security flaw will be exploited affecting sites running on the PHP 4 platform, exploits not specific to WordPress, the need for web hosts to upgrade will become critical to providing quality customer support. It is unlikely that many will remain with the older versions. WordPress is working hard to maintain backwards compatibility as long as is feasible.
Can I test Locally? 
XAMPP (apachefriends.org FREE / Windows, Mac, Linux and Solaris), Includes Apache (2.4.4), MySQL (5.6.11), PHP (5.5.1) + PEAR, Perl, mod_php, mod_perl, mod_ssl, OpenSSL, phpMyAdmin (4.0.4), Webalizer, Mercury Mail Transport System, FileZilla FTP Server (0.9.41), mcrypt, eAccelerator and more. Have auto installers for Wordpress, Drupal and Joomla. TEST all you want, I did and Wordpress v3.6 works on these versions.

Why Switch to PHP 5

In August 2008 PHP 4 became an end-of-life product. This meant that no further effort would be expended in fixing bugs, improving, or patching security holes found in PHP version 4. Development effort moved to PHP 5.

Since then, web hosts have gradually been introducing PHP 5 based offerings into their portfolios. Most decent web hosting providers will now allow PHP 5 hosting - though for some it may not be the default.

Compared to PHP 4, PHP 5 is faster, easier for developers to maintain and code for, and integrates better into web services. Perhaps most importantly, it is also a current, supported, product.

WordPress and PHP 5

Currently WordPress works on both PHP 4 and PHP 5 based platforms. The historic viewpoint has been that WordPress would continue to have a PHP 4 minimum requirement until the user base reached a tipping point in PHP 5 adoption.

Clearly the WordPress developers cannot continue to code for PHP 4 indefinitely. Current feeling is that many PHP 5 only features may be introduced in WordPress 3.0. Some existing features, such as advanced timezone support, are already in WordPress and rely on capabilities present only in PHP 5.

The change is more likely to be a drift away from PHP 4 than a sudden detour. For example, more people have success with the Automatic Upgrade functionality when they are running on a PHP5 host.

As of September 2011, attempting to upgrade to Wordpress 3.2.1 on PHP 4 will result in your blog becoming unusable. A single line of text will display that will read:

Your server is running PHP version 4.4.9-nfsn1 but WordPress 3.2.1 requires at least 5.2.4.

If you are running PHP 4, it is highly recommended you avoid upgrading to Wordpress 3.2.1, and first focus on upgrading PHP.

This article is marked as in need of editing. You can help Codex by editing it.