Using multiple PHP versions on one account
When using different software on one account, you may need to use an older version of PHP while running a newer version of PHP on a different domain. For example: You can have PHP 5.4 for the site in public_html and then use PHP 5.2 in a subdirectory. You can use any combination of older PHP versions in any directory on the account.
Important! If you just want to change the version of PHP site wide you can follow the steps by clicking here.
Below is an example of having multiple directory locations using different versions on PHP. The following example shows the "public_html" is using PHP 5.4, the "public_html/othersite" using PHP 5.2 and so forth.
Using the Default PHP version
To use the system default PHP, use the following in .htaccess:
# Use system PHP5 as default AddHandler application/x-httpd-php5 .php
This will make the specific directory use the System default PHP version.
Changing the PHP version per directory
Depending on what version of PHP you want to use, you will need to placed the following code in the .htaccess of the directory you want to change the PHP version for. Below is the code you need for each PHP version.
# Use PHP 5.2 as default AddHandler application/x-httpd-php52 .php
# Use PHP 5.3 as default AddHandler application/x-httpd-php5 .php
# Use PHP 5.4 as default AddHandler application/x-httpd-php54 .php
# Use PHP 5.5 as default AddHandler application/x-httpd-php55 .php
Once you add the appropriate version code to your .htaccess your site in that directory will use that version of PHP.
Important! If you have PHP errors after adding the .PHP version code to the directory .htaccess, you may need the php.ini for that particular version uploaded to the directory and the recursive path added in order for the correct version of the php.ini to load. If there is no php.ini specific to the version of PHP you are using in the directory where the version code is added, the server will use the default php.ini. This could cause a newer php.ini version to used instead of the older php.ini version, which can cause an issue in some cases.
Using a PHP specific version of php.ini.
The following code will direct the server to the particular php.ini file. In this case the path goes to the public_html directory. This is called the recursive path.
<IfModule mod_suphp.c> suPHP_ConfigPath /home/USER/public_html </IfModule>
To point your domain to a php.ini in a subfolder you would do the following:
<IfModule mod_suphp.c> suPHP_ConfigPath /home/USER/public_html/foldername </IfModule>
This allows a php.ini to be stored in the sub directory particularly for your PHP version in that directory. Note! If you need an older version of the php.ini file restored to a specific directory, you can specify the path to whatever version you are looking for like the following.
suPHP_ConfigPath /usr/local/lib suPHP_ConfigPath /opt/php52/lib suPHP_ConfigPath /opt/php54/lib
Otherwise, you can contact tech support to have them restore the specific php.ini version to the folder you need it in.
Checking your changes
You can check to see if any changes you made took place by placing a phpinfo page in the folder area you are working on. You can then view the settings to ensure they are set correctly.
Question: Is php 5.5 supported?
2014-05-29 10:37 am
Can you update this article and add php 5.5 as well?
2014-05-29 10:39 am
This is outdated, can you update your article?
Important! You can only go backwards. You cannot use a newer version of PHP on an older PHP server. You will need to have newest version of PHP on the server to do this.
One of your Support Reps just told me this:
The PHP switcher should work for 5.5, if using suPHP.
2014-05-29 10:48 am
You can now go to a higher version using this method as well. I have updated the article to remove this warning.
2014-07-18 4:47 pm
Doesn't work...doing this just starts giving me download boxes for all of my files. This article needs to be updated.
2014-07-21 11:55 am
Please disregard - for others experiencing the same issue, I had to call support and request this feature to be added (VPS). It is now working properly.