To run multiple PHP versions on the same XAMPP installation, follow these steps:
1. Download the Additional PHP Versions
- Go to PHP’s official website and download the additional PHP versions you need.
- Extract the PHP version files into the
xampp
directory, creating separate folders for each version, such asxampp/php7.4
andxampp/php8.0
.
2. Configure Apache to Use Different PHP Versions
- Open the XAMPP Control Panel and stop Apache if it’s running.
- Go to the
xampp/apache/conf/extra/
directory and open thehttpd-xampp.conf
file in a text editor. - Find the following lines (these specify the default PHP version):
LoadFile "C:/xampp/php/php7/php7ts.dll"
LoadModule php7_module "C:/xampp/php/php7/php7apache2_4.dll"
PHPIniDir "C:/xampp/php/php7"
- Replace the above paths with a variable so you can easily switch between PHP versions.
- Define the PHP version path variables at the beginning of the file:
Define php7 "C:/xampp/php7.4" Define php8 "C:/xampp/php8.0"
- Add these conditionally loaded versions in separate
<IfModule>
blocks:
<IfModule php7_module> LoadFile "${php7}/php7ts.dll" LoadModule php7_module "${php7}/php7apache2_4.dll" PHPIniDir "${php7}" </IfModule> <IfModule php8_module> LoadFile "${php8}/php8ts.dll" LoadModule php8_module "${php8}/php8apache2_4.dll" PHPIniDir "${php8}" </IfModule>
- To switch PHP versions, comment out or uncomment the relevant block in
httpd-xampp.conf
for the version you want to use.
3. Create Virtual Hosts for Each PHP Version (Optional)
- Open the
httpd-vhosts.conf
file located inxampp/apache/conf/extra/
. - Add separate virtual host entries for each PHP version, pointing each one to the PHP directory version you want to use:
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName php7.local
SetEnv PHP_VERSION php7
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName php8.local
SetEnv PHP_VERSION php8
</VirtualHost>
- Update your
hosts
file to include these domain names:
127.0.0.1 php7.local
127.0.0.1 php8.local
- Now, when you visit
http://php7.local
, it will use PHP 7, andhttp://php8.local
will use PHP 8.
4. Restart Apache
Return to the XAMPP Control Panel and start Apache. Now, you can run different PHP versions on the same XAMPP installation using either conditional loading in httpd-xampp.conf
or virtual hosts.