This tutorial is a shorter version of the previous post upgrading to PHP 7.1 on Windows 10 and it is intended as a follow-up on how to upgrade your PHP to the latest version (in this case PHP 7.2) if you have already installed the previous version of PHP 7 in your Windows system.
Steps to Upgrade from PHP 7.1 to PHP 7.2
-
Download PHP for Windows. Since we’re using PHP as FastCGI, we’ll use the 64-bit Non-Thread Safe (NTS) version (i.e., php-7.2.1-nts-Win32-VC15-x64.zip).
-
PHP 7.2 is also the first version that requires Visual C++ Redistributable for Visual Studio 2017. If you don’t have it installed, you can download it from here (64-bit). If you have a 32-bit OS, please check on the download section below and select the one for x86.
-
We also need to upgrade our WinCache version for PHP 7.2. Download the WinCache php_wincache-2.0.0.8-7.2-nts-vc15-x64 and extract the file as well.
-
Extract both downloaded zip files (just double-click them and they will be extracted into their sub-folders) as shown below:
-
If you check the WinCache folder php_wincache-2.0.0.8-7.2-nts-vc15-x64, look for two files with the following names: php_wincache.dll and php_wincache.pdb.
-
Copy the two files from the WinCache folder to a sub-folder (“ext”) within the PHP folder (i.e., php-7.2.1-nts-Win32-VC15-x64/ext).
-
Now, copy the whole content of php_wincache-2.0.0.8-7.2-nts-vc15-x64 folder into a new folder and name it v7.2.
-
Copy the php.ini file from v7.1 to v7.2.
-
You might want to modify certain parameters in the php.ini as highlighted below:
[WebPIChanges] error_log=C:\WINDOWS\temp\PHP72x64_errors.log upload_tmp_dir=C:\WINDOWS\temp session.save_path=C:\WINDOWS\temp cgi.force_redirect=0 cgi.fix_pathinfo=1 fastcgi.impersonate=1 fastcgi.logging=0 max_execution_time=300 date.timezone=Australia/Melbourne extension_dir="C:\Program Files\PHP\v7.2\ext\"
And make sure you also have the PHP_WINCACHE set.
[PHP_WINCACHE] extension=php_wincache.dll
The change is pretty simple and we can compare the two php.ini files between v7.1 and v7.2 as below:
-
Open IIS Manager and click on FastCGI Settings.
-
You can create a new entry for PHP 7.2 by following Step 8 from previous post, except for PHPRC where you want to update the value to 7.2 (i.e., C:\Program Files\PHP\v7.2).
Once completed, just click OK.
-
Go back to IIS Manager and click on Handler Mappings.
-
Look for PHP_via_FastCGI and double-click on it. Make sure the path for the Executable is updated accordingly. Click OK when done.
Update Windows Environment Variables
Finally, once again we need to update the path of the new PHP in Windows Environment Variables.
-
Click on the Windows start button and type in “system” and click on System Control panel.
-
In System window, click on Advanced system settings and on System Properties window, make sure you have Advanced tab opened. And you can follow the path shown in the picture to update the path to where your PHP 7.2 is located.
-
Click on Environment Variables… button.
-
Under System Variables, click on Path and Edit… button.
-
Click on where the current PHP is located and double-click it or click on Edit button.
-
Change the value to the location of the new PHP (i.e., C:\Program Files\PHP\v7.2)
-
Click OK button on each window to close.
That’s it! Now using the same test.php file with the following code:
<?php phpinfo(); ?>
Run it from your browser (i.e., http://localhost/test.php). If PHP is installed with the correct version, you will see the PHP version will be updated similar to the picture below:
Further Reading
How to Install PHP on Windows 10 Using Web Platform Installer
FastCGI
Difference between PHP thread safe and non thread safe binaries
Using FastCGI to Host PHP Applications on IIS 7
WinCache Extension for PHP
Download
Download PHP For Windows: Binaries and sources Releases
WinCache 2.0.0.8 PHP Extension Direct Download
Microsoft Visual C++ Redistributable for Visual Studio 2017
Hi,
This might be a daft question, but if the current version is in directory say c:\PHP can I just save the php.ini to another location, delete the old version file then copy the new ones in and add the php.ini back? That would save having to go into IIS and change the various paths? Or am I being too simplistic?
Thanks
Everything was good, I just need to add that I was installing the version 7.4.5 which is the last one as of right now, and the only issue I found was that I needed to Install C++ Redistributable Package 2019. After it, everything was really good.
Thanks for your comment Richard. It’s also good for other readers to note that it’s better to install the newer version of C++ Redistributable Package and PHP since the principle should be the same. Just make sure you test it first before production use.
One thing to add — this is the first major release of PHP from windows.php.net that requires the 2017 C++ Distributable, so make sure that’s installed as well. (This is the “VC15” in php-7.2.1-nts-Win32-VC15-x64.zip.)
A lot of times this part is taken for granted because it got installed with Visual Studio 2017. I added this point to the guide. Thanks for mentioning this Ed.
Much appreciated..thank you