Different PHP versions per directories using SuPHP

We had few requests to support different PHP versions per directory . While this is not available using PHP Selector UI , it is fairly simple to do manually .

The important requirement is that PHP must be set to run in SuPHP mode. We are going to release our own PHP module for Apache soon – it will also support such mode of operation. Tested with cPanel however it will work on any other server.

Here is quick how-to:

1. Configure handlers for different versions and point them to already provided php-cgi binaries, they all are visible from CageFS inside. Add the following section to [handlers] section in /opt/suphp/etc/suphp.conf :

2. Add suPHP handlers for each version, this should be done before other configs. On cPanel server, edit /usr/local/apache/conf/includes/pre_virtualhost_global.conf and add the following section:

3. Restart Apache.

That’s it, now Apache understands what binary should be used for different mime types. To use desired version in a particular directory, just add a line to .htaccess in that directory (or create .htaccess file with that line, if it is not there).

For example, for php5.4, add the following line:

Subdirectories will use the same PHP version as the parent, unless you override it with another .htaccess entry in that subdirectory.

To match PHP extensions selection with extensions selected by end user for that PHP version in PHP Selector you have to follow http://docs.cloudlinux.com/index.html?php_extensions.html .

This is not an ‘officially’ supported way to run multiple PHP per account, but it is a safe hack that will work for anyone using suPHP.

Leave a Reply

Your email address will not be published. Required fields are marked *