Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

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 php.net (see archive for older versions) and extract the files under c:\xampp\php56.
The thread safe version does not include php-cgi.exe.
Step 2: Configure php.ini
Open c:\xampp\php56\php.ini file in notepad. If the file does not exist copy php.ini-
development to php.ini 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-
xampp.conf). 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/php-cgi.exe
<Directory "C:/xampp/php56">
AllowOverride None
Options None
Require all denied
<Files "php-cgi.exe">
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 http://localhost56, 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
httpd-xampp.conf 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 'php-cgi.exe': Bad header
If you encounter the above error, open httpd-xampp.conf again and comment out the
following line with a leading # (hash character).
SetEnv PHPRC "\\path\\to\\xampp\\php"

You might also like