Home » Php » Is there way to use two PHP versions in XAMPP?

Is there way to use two PHP versions in XAMPP?

Posted by: admin December 3, 2017 Leave a comment

Questions:

We are running XAMPP with PHP 7.0 because our new products requires PHP 7.

But there are old project which use functions like mysql_connect, etc. Those are removed in PHP 7.0.

So is there way to easily change PHP versions in XAMPP.

Note : Please don’t suggest to upgrade old project to compatible with new versions because I am not in a position to do it because that decisions I can’t get as a developer(just a employee).

Answers:

You can download whatever versions of PHP you need and place them into their own directories, e.g.

c:\php5\

c:\php7\

All you need to do is tell your web server (Apache) which version of PHP to use, which you do by loading the appropriate module. In Apache you can do this by finding the file httpd.conf and then editing the appropriate line:

LoadModule php7_module c:\php7\libphp7.so

You’ll have to figure out the correct paths of course – this is just for illustration.

Save httpd.conf and restart your server. Note, if you don’t restart it, the changes won’t take effect.

There’s no GUI switch to be able to do this, you need to edit the .conf file and then restart Apache. Doing this only takes a couple of seconds and you could even comment out a version so “switching” only takes a couple of keystrokes, e.g.

Use PHP 5:

LoadModule php5_module c:\php5\libphp5.so
#LoadModule php7_module c:\php7\libphp7.so

Use PHP 7:

#LoadModule php5_module c:\php5\libphp5.so
LoadModule php7_module c:\php7\libphp7.so

You do not need multiple versions of XAMPP, or to dual boot, or use a different machine, or any of the other “solutions” that have suggested convoluted workarounds. The OP wants to use XAMPP and tell it which version of PHP to use. This is the quickest and most efficient way of doing it, and only requires one XAMPP installation.

Edit 1-Nov-2017: Apparently some people are saying there’s no .so files on Windows. The answer I gave was adapted from how I have things set up on my Mac (which does use .so files instead of .dll). The principle of the answer however is still exactly correct. You are using Apache’s configuration file, httpd.conf to specify where the PHP module (.so or .dll) is located on your system. So the only difference for Windows would be the file name and/or path location. The answer I’ve given is also correct for a vanilla installation of Apache/PHP (without XAMPP at all).

Questions:
Answers:

You can download and install two different xampps like I do: (first is php7 second is php5)
enter image description here

and if you don’t want to do that, I suggest you use wamp and change versions like shown here.

Questions:
Answers:

I would recommend using Docker, this allows you to split the environment into various components and mix and match the ones you want at any time.

Docker will allow you to run one container with MySQL, another with PHP. As they are separate images you can have two containers, one PHP 5 another PHP 7, you start up which ever one you wish and port 80 can be mapped to both containers.

https://hub.docker.com has a wide range of preconfigured images which you can install and run without much hassle.

I’ve also added portainer as an image, which allows you to manage the various aspects of your docker setup – from within a docker image (I did start this container on startup to save me having to use the command line). It doesn’t do everything for you and sometimes it’s easier to configure and launch the images for the first time from the command line, but once setup you can start and stop them through a web interface.

It’s also possible to run both containers at the same time and map separate ports to each. So port 80 can be mapped to PHP 5 and 81 to PHP 81 (Or PHP 7 if your watching this in 2017).

There are various tutorials on how to install Docker( https://docs.docker.com/engine/installation/) and loads of other ‘how to’ type things. Try http://www.masterzendframework.com/docker-development-environment/ for a development environment configuration.

Questions:
Answers:

You need two different versions of XAMPP.

  • Download those files from https://www.apachefriends.org/download.html and install into a directory of your choice, for example in C:\5.6.31\xampp and C:\7.1.18\xampp.
  • After every installation go to installed directory (ex. C:\5.6.31\xampp, C:\7.1.18\xampp) and start the “setup_xampp.bat” and you should see something like
    this.
  • You can make shortcuts of “xampp-control.exe” on your desktop (right click on “xampp-control.exe” Send to -> Desktop) and rename shortcuts for ex. “xampp 5.6.31” and “xampp 7.1.8”.
  • Start XAMPP control panel with double-click on “xampp-control.exe” or previously created shortcut and start Apache and MySQL servers.
  • To test installiation open your browser and type 127.0.0.1 or localhost in the location bar. You should see XAMPP start screen.
  • Do not open more then one XAMPP control panel.
  • XAMPP uninstall? Simply remove the “xampp” Directory.
    But before please shutdown the apache and mysql.
  • That’s all. You can use different php versions opening corresponding XAMPP control panel.
Questions:
Answers:

Yes you can. I assume you have a xampp already installed. So,

  • Close all xampp instances. Using task manager stop apache and mysqld.
  • Then rename the xampp to xampp1 or something after xampp name.
  • Now Download the other xampp version. Create a folder name xampp only. Install the downloaded xampp there.
  • Now depending on the xampp version of your requirement, just rename the target folder to xampp only and other folder to different name.

That’s how I am working with multiple xampp installed

Questions:
Answers:

You don’t need to waste your time with this configurations just use MAMP 🙂

MAMP have a PHP version selection feature on interface.

Questions:
Answers:

Use Docker. Simplest way to deal with different version problems

Leave a Reply

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