There is many ways to do an IIS and PHP Setup on Windows machine. It was much more complicated before, as now with Microsoft Platform Installer things got much easier. I wanted to share my experience with that. But before we'll start the few steps process, lets see which different possibilities exists to install a WAMP (or similar) stack (Windows, Apache, MySQL, and PHP/Python/Perl) on a system, and why would you need install (still) some components manually. Note that there is many LAMP based virtual appliances.
Sidenote: If you are looking for PHP Hosting, visit hostadvice.com/php-hosting to find the best rated providers,
IIS and PHP Setup – Which Possibilities do you have?
1. VMware Based Virtual Appliance – Those are not Windows based, but Linux based appliances, but at final the result is basically the same – get a developement enviroment for web based application. LAMP stack ( Linux, Apache, MySQL, and PHP/Python/Perl) based appliances available through VMware Appliances. Those are free VMware preconfigured (usually OVF files) which you can deploy and use in your vSphere /ESXi environment, and (or) also from within VMware Workstation. Usually all preconfigured and you don't have the possibility to chose the individual components as it's all baked in. On the other hand you have the possibility to chose from many different Appliances and architectures.
2. Manual Process on Windows box – Not exactly manual way, but rather All-In-One WAMP package. I've tried one of those WAMP installers for local WP testing too. Again, all baked in, but there are different versions and different packaging available too. Very easy to install on XP, Win7 or Windows Server machine.
3. Using Microsoft Platform Web Installer – This is a Microsoft way to deploy different components when constructing the LAMP stack. We'll do the walkthrough in this post.
Why would you want to go the WAMP way if you can easily to it the LAMP way?
I can already see some questions from users why would you need to do that M$ way if you can easily do it the Linux way. True, but there are situations that you just have to do it the M$ way or you just can't do it … you don't have the resources for it.
First thing in mind is that you probably have a single (physical) host which has Windows. And it is used for something else already, like file sharing etc, and you want to quickly deploy a PHP5 for testing some web based application, Intranet appli or something like that. Usually an In house system in small business lays on local Windows box which does tons of other roles… -:).
The steps:
01. Install IIS
Install IIS on your Windows Server machine. Add Roles And Services > Web Server Role (select IIS) > Role Services (select CGI). You can test succesful install by opening IE and typing in https://localhost
02. Download and Install the Web Platform Installer
Go to Microsoft Web Platform Web Installer and download the installation package. It's a tiny package, which when launched it allows you to select the components you need. Those components then are downloaded and installed in the background.
So when launched, you have a screen like this one, where all you need to do is to chose a PHP5 package. Click the Add button.
On the next screen you should just and click Install accept the license agreement. ..
03. Test if everything works
If you followed those 3 simple steps, then everything should work. The working directory for IIS is C:\inetpub\wwwroot
You can quickly create a text file with Notepad, save it as for example phpinfo.php into that directory and and inside just paste this code:
<?php phpinfo(); ?>
Then save and open open your web browser with https://localhost/phpinfo.php
You should see a nice default PHP info page like this… -:) Enjoy..
There is tons of resources and ways to install WAMP/LAMP based server/workstation. Systems allowing to test web based applications needs those 3 components to works for providing dynamic web based applications – Apache (or any other web server), MySQL (or any other DB), and PHP/Python/Perl scripting language. So this is certainly not a single way to do it..