Resources / Links
Actual Text from James McCaffrey
Installing PHP on Windows 10 and IIS
Posted on January 26, 2017 by jamesdmccaffreyI’ve always liked PHP for creating dynamic Web pages. I find PHP to be much simpler than ASP.NET for some kinds of Web sites.
However, installing PHP on a Windows machine has always been kind of a pain in the patooty. It is possible install PHP using the Microsoft Web Platform Installer, but I prefer to manually install PHP because if something
goes wrong using the Web Installer, it’s very, very difficult to fix, but errors in a manual install are easier to track down.
There are five basic steps to install PHP on a Windows 10 machine:
1. Enable (if necessary) IIS on the machine, and IIS-CGI on the machine.
2. Download and extract PHP to C:\PHP
3. Configure the php.ini configuration file
4. Configure IIS to handle PHP page requests
5. Test everything
So, here we go. My instructions are highly abbreviated and are intended for someone who has a medium amount of familiarity with Windows and IIS.
1. Configure IIS
Control Panel | Programs | Turn Windows features on or off
Check Internet Information Services
Check IIS | World Wide Web Services | Application Development Features | CGI
OK
01_configureiis
2. Install the NTS (non-thread safe) 64-bit version of PHP
Download and save onto the machine:
http://windows.php.net/downloads/releases/php-7.x.x-nts-Win32-VC14-x64.zip
Extract all the contents of the zip file to C:\PHP
02_unzip_php
Now edit the System PATH variable so IIS knows where the PHP executables are:
Control Panel | System and Security | System | Advanced System Settings
Environment Variables
System Variables | Path | Edit
New -> C:\PHP
Acumatica Open University 03_edit_path_variable
3. Configure the php.ini file. This is the part you’d never figure out without some help.
Make a copy of file C:\PHP\php.ini-development and save it as C:\PHP\php.ini
Edit file php.ini by finding the following entries, uncomment them, and change values to:
1. fastcgi.impersonate = 1
2. cgi.fix_pathinfo = 0
3. cgi.force_redirect = 0
4. open_basedir = “C:\inetpub\wwwroot”
5. extension_dir = “ext”
6. error_log=”php_errors.log”
7. uncomment the 24 Windows Extensions entries:
extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_ftp.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_intl.dll
extension=php_imap.dll
extension=php_interbase.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll
extension=php_mysqli.dll
extension=php_oci8_12c.dll
extension=php_openssl.dll
extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll
extension=php_shmop.dll
Save the edited php.ini file.
4. Configure IIS to work with PHP
Run | inetmgr
Handler Mappings | Add Module Mapping
Request path: *.php
Module: FastCgiModule (from the dropdown)
Executable (optional): C:\PHP\php-cgi.exe
Name: FastCGI
OK (Yes)
04_iis_handler_mappings
5. Test the installation and configuration
Launch Notepad with Administrative privleges. Create a file test.php and save it at C:\inetpub\wwwroot. The contents are (I use an image because my blog software would choke on HTML text):
file_test_php
Now launch a browser and navigate to
http://localhost/test.php
05_testing
And hopefully it works. There’s a LOT that can go wrong, but by Googling one error at a time you should eventually be able to get a Windows 10 machine with IIS to serve up PHP Web pages.
Blog notes:
Server=localhost\SQLEXPRESS;Database=master;Trusted_Connection=True;
Stop Microsoft SQL Server: SQL server 2019 connfiguration manager.
Stop IIS | Administrative tools | IIS | Stop
Run | inetmgr
From a command prompt:
Type NET STOP IISADMIN and press Enter.
Once the service has stopped, type NET START IISADMIN and press Enter.
Type NET START W3svc and press Enter.
http://localhost/DFXAcumaticaDB/
admin
R_M_f***e