Friday, April 17, 2020

MultiPHP versions in single XAMPP Installation

Follow the below steps to add multiple versions of php in your XAMPP / WAMP etc. installation.

Step 0: Install Latest XAMPP

Step 1: Download PHP versions of your choice
      PHP Archives
Step 2: Extract to XAMPP Root (c:\xampp)
      name the folder according the the version like php56, php70, php71
Step 3: Configure php.ini inside the newly created folder. If the file does not exist copy php.ini-development to php.ini, Then uncomment the following lines

extension_dir = "ext"       // remove ; to uncomment

// Similarly uncomment all the extensions as per your requirements. for example


Step 4: 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
    SetEnv PHPRC "C:/xampp/php56"

The above code to be adjusted based on the version of PHP selected. like for PHP 7.0 replace php56 with php70.

Congratulations now you are all set to use the installed versions of PHP on your sites. You can use the particular version by creating a virtual host for each website and telling the apache to use a particular version by setting an appropriate handler as shown below. Open the xampp\apache\conf\extra\httpd-vhosts.conf and use the below code for each website with appropriate handlers based on the above config in step 4. DocumentRoot must be set to the location where your project files are present.

<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs56"
    ServerName localhost56
    <Directory "C:\xampp\htdocs56">
        Require all granted    
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi

Note: Dont forget to uncomment the NameVirtualHost *:80 to enable virtual hosts.

No comments:

Post a Comment

Binod Blog - A Simple Vulnerable Web App for Pen Testing

 Checkout the repo for testing various types of web attacks like SQL Injection, CSRF & XSS, Bruteforce etc.