IT Nota

  • Home
  • How To
  • .NET
  • WordPress
  • Contact
You are here: Home / How To / How to Upgrade to PHP 7.1 on Windows 10

How to Upgrade to PHP 7.1 on Windows 10

This setup should only be used as PHP development environment on Windows as it has not been tested on production.

If you followed the steps from the previous post on PHP installation on Windows using Web Platform Installer, you will now have PHP 7.0 to do your web development.

The problem using Web Platform Installer (WPI) is that most likely you won’t be using the latest version of PHP (at the time of this writing, it’s 7.0.15 and 7.1.1 and WPI only gives you version 7.0.9).

Fortunately, if you want to upgrade to the latest version, you can do it manually in a few simple steps described below.

Before we start, please keep in mind that this installation is for a local PHP server on IIS, not Apache web server.

Steps to Upgrade PHP to 7.1

  1. Open Control Panel, click on Programs and Features, and then Turn Windows features on or off. Under Internet Information Services, World Wide Web Services, Application Development Features, make sure that option CGI is checked. This enables both the CGI and FastCGI services, which is recommended for PHP applications.

    Control Panel CGI

  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.1.1-nts-Win32-VC14-x64.zip).

  3. Extract file php-7.1.1-nts-Win32-VC14-x64.zip to its own folder.

  4. Copy your current PHP7 installation from v7.0 and rename the copy to v7.1.

    Copy original PHP 7.0 to 7.1 folder

  5. Copy all files from the PHP7 zip folder (Step 3) to the new renamed v7.1 folder (Step 4).

  6. Edit the php.ini (C:\Program Files\PHP\v7.1\php.ini) to reflect the new version (7.1) under [WebPIChanges] as shown below (see highlighted changes):

    [WebPIChanges]
    error_log=C:\WINDOWS\temp\PHP71x64_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.1\ext\"
    [ExtensionList]
    ;extension=php_mysql.dll
    extension=php_mysqli.dll
    extension=php_mbstring.dll
    extension=php_gd2.dll
    extension=php_gettext.dll
    extension=php_curl.dll
    extension=php_exif.dll
    extension=php_xmlrpc.dll
    extension=php_openssl.dll
    extension=php_soap.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_sqlite.dll
    extension=php_imap.dll
    extension=php_tidy.dll
    [PHP_WINCACHE]
    extension=php_wincache.dll
    

    php.ini File Update

    Please note the change in line 1857. Although it’s not related to PHP upgrade, you need to double check that the extension=php_mysql.dll is either commented out or deleted.

    MySQL extension was deprecated on PHP version 5.5 and removed on version 7. If it’s not excluded, you’ll see the following error:

    PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Program Files\PHP\v7.1\ext\php_mysql.dll' - The specified module could not be found.
    in Unknown on line 0
    

    Line 1872-1873 are for WinCache setting. Just make sure it’s there or else you will also encounter an error.

  7. Open IIS Manager and click on FastCGI Settings.

    IIS Manager FastCGI Settings

  8. Double-click on the PHP 7.0 settings and copy all the property values including the Environment Variables (PHP_FCGI_MAX_REQUESTS, PHPRC) and Advanced Settings. We’re just going to reuse all the values from the existing installation instead of starting from scratch.

    Click Cancel button after you’re done.

    IIS Manager FastCGI Properties

    EnvironmentVariables PHP_FCGI_MAX_REQUESTS Properties

    EnvironmentVariables PHPRC Properties

  9. Now from FastCGI Settings window, click on Add Application… on the Actions pane on the right.

    IIS Manager FastCGI Settings Add Application

  10. Type in C:\Program Files\PHP\v7.1\php-cgi.exe on the Full Path box.

  11. Enter all values you copied from Step 8, except for PHPRC where you want to update the value to 7.1 (i.e., C:\Program Files\PHP\v7.1).

    Once completed, just click OK.

  12. Go back to IIS Manager and click on Handler Mappings.

    IIS Manager Handler Mappings

  13. Look for PHP_via_FastCGI and double-click on it.

    IIS Manager PHP_via_FastCGI

  14. Locate the new php-cgi.exe and change the value on the Executable (optional): accordingly. Click Yes when there’s a dialog box asking you to create a FastCGI application for this executable.

    Click OK and exit IIS Manager.

    IIS Manager Handler Mappings PHP FastCGI

Update WinCache Extension for PHP

Once PHP is upgraded to version 7.1 you may run into another issue with your WinCache PHP extension with an error message as follow.

PHP Warning:  PHP Startup: wincache: Unable to initialize module
Module compiled with module API=20151012
PHP    compiled with module API=20160303
These options need to match
in Unknown on line 0

This error was caused by an outdated version of WinCache. PHP 7.1 requires a new WinCache binaries. Look for them in the PECL packages or you can download it directly from this link.

WinCache PHP Extension PECL download

Installation should be straightforward. Just extract the zip file and follow the instructions.

Update Windows Environment Variables

Finally, we need to update the path of the new PHP in Windows Environment Variables.

  1. Click on the Windows start button and type in “system” and click on System Control panel.

    Windows System Control Panel

  2. 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 complete the rest of the steps.

    Control Panel System Environment Variables

  3. Click on Environment Variables… button.

  4. Under System Variables, click on Path and Edit… button.

  5. Click on where the current PHP is located and double-click it or click on Edit button.

  6. Change the value to the location of the new PHP (i.e., C:\Program Files\PHP\v7.1)

  7. Click OK button on each window to close.

That’s all there is. Now you can test your PHP installation by creating a test.php file with this PHP 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 something similar to this:

phpinfo 7.1.1

Compared with previous version of PHP installation on Windows:

phpinfo 7.0.9 displayed on a page

Further Reading

How to Install PHP on Windows 10 Using Web Platform Installer
How to Upgrade to PHP 7.2 on IIS (Windows 10)
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++ 2015 Redistributable Update 3

January 20, 2017 Filed Under: How To Tagged With: IIS, Internet Information Services, Microsoft, PHP, Windows, Windows 10

Comments

  1. B-rad says

    February 6, 2019 at 4:36 pm

    Worked on 8.1, just different file locations. Thank you greatly for the article!

    Reply
  2. montassar says

    November 14, 2018 at 8:29 am

    good article

    Reply
    • platt says

      November 14, 2018 at 8:56 pm

      Thanks for your feedback.

      Reply

Leave a Reply Cancel reply

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

Buy me a coffee Support this site
Buy Me a Coffee?

Categories

  • .NET
  • Coding
  • Cybersecurity
  • Database
  • How To
  • Internet
  • Multimedia
  • Photography
  • Programming
  • Resources
  • Review
  • Tips and Tricks
  • Use Case
  • WordPress
  • Writing

Recent Posts

  • How to Check Installed .NET Framework Version
  • How to Remove .NET Runtime and SDK on Mac
  • How to Solve Intermittent 403 Error in IIS
  • How to Show Hidden Folders and Files in Mac Finder
  • How to Solve MS Office VBA Compile Error UserAuthentication

Recent Posts

  • How to Check Installed .NET Framework Version
  • How to Remove .NET Runtime and SDK on Mac
  • How to Solve Intermittent 403 Error in IIS
  • How to Show Hidden Folders and Files in Mac Finder
  • How to Solve MS Office VBA Compile Error UserAuthentication
  • RSS

Tags

.NET Access AdSense ASP.NET Cdonts Dll Classic ASP Code Editor ETL FSharp Genesis Framework Git Google HP Asset Manager HTML HTML5 Hugo IIS Information Security Internet Internet Information Services iOS JAMStack Linux macOS Microsoft Microsoft SQL Server MVC PHP Python Simple Mail Transfer Protocol Smtp Server Social Media SQL SQL Server SSIS SSMS SSRS Sublime Text Visual Studio Visual Studio Code VPN Windows Windows 8 Windows 10 Windows Server

Copyright © 2011-2022 IT Nota. All rights reserved. Terms of Use | Privacy Policy | Disclosure