Step 1: Download PHP
So you have PHP 7 running under xampp, you want to add an older PHP version to it,
say PHP 5.6. Download the nts (Non Thread Safe) version of PHP zip archive
from [Link] (see archive for older versions) and extract the files under c:\xampp\php56.
The thread safe version does not include [Link].
Step 2: Configure [Link]
Open c:\xampp\php56\[Link] file in notepad. If the file does not exist copy [Link]-
development to [Link] and open it in notepad. Then uncomment the following line:
extension_dir = "ext"
Step 3: Configure apache
Open xampp control panel, click config button for apache, and click Apache (httpd-
[Link]). A text file will open up put the following settings at the bottom of the file:
ScriptAlias /php56 "C:/xampp/php56"
Action application/x-httpd-php56-cgi /php56/[Link]
<Directory "C:/xampp/php56">
AllowOverride None
Options None
Require all denied
<Files "[Link]">
Require all granted
</Files>
</Directory>
Note: You can add more versions of PHP to your xampp installation following step 1 to 3 if you
want.
Step 4 (option 1): [Add Directories to run specific PHP version]
Now you can set directories that will run in PHP 5.6. Just add the following at the bottom
of the config file to set directories.
<Directory "C:\xampp\htdocs\my_old_project1">
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</Directory>
<Directory "C:\xampp\htdocs\my_old_project2">
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</Directory>
Step 4 (option 2): [Run older PHP version on a separate port]
Now to to set PHP v5.6 to port 8056 add the following code to the bottom of the config
file.
Listen 8056
<VirtualHost *:8056>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</VirtualHost>
Step 4 (option 3): [Run an older PHP version on a virtualhost]
To create a virtualhost (localhost56) on a directory (htdocs56) to use PHP v5.6
on [Link] create directory htdocs56 at your desired location and add
localhost56 to your hosts file (see how), then add the following code to the bottom of
[Link] file.
<VirtualHost localhost56:80>
DocumentRoot "C:\xampp\htdocs56"
ServerName localhost56
<Directory "C:\xampp\htdocs56">
Require all granted
</Directory>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</VirtualHost>
Finish: Save and Restart Apache
Save and close the config file, Restart apache from xampp control panel. If you went for
option 2 you can see the additional port(8056) listed in your xampp control panel.
Update for Error:
malformed header from script '[Link]': Bad header
If you encounter the above error, open [Link] again and comment out the
following line with a leading # (hash character).
SetEnv PHPRC "\\path\\to\\xampp\\php"