Windows Server 2008 Core screencast – Installing Open Source Software

ws2008 If you are going to run web workloads, you'd be remiss not to evaluate Windows Server 2008 and IIS7.  In fact, Windows Server 2008 includes a Core installation option that is an excellent platform for a variety of computing workloads.  One thing you might not have thought about is using open source software on our platform.  Well think again.

In this screencast series, I'll show you how to take advantage of Internet Information Server 7 as a premier platform for some popular products including PHP, MySQL and WordPress.  Now you might be thinking I've gone off the deep end.  No worries, I'm still sane (at this moment in time).  If you are going to run those products, we'd rather have you run them on Windows than Linux or UNIX.

We don't really go into hosting provisioning, management and performance but you'll get an idea of how to setup and configure the products.  The screencasts were recorded using Windows Server 2008 Core.  I plan to record a similar screencast series in the next day or so on Windows Vista to give you an idea of how a developer workstation could be configured with open source software.  I hope you enjoy both.  It's always funny to listen to yourself after the fact when I record these things. Sometimes I sound like such a Texas hick from the sticks.  Oh well, it's me.  I'll try and work on my grammar pardner. 

For this screencast series I decided to go through a brief description of each section and then I provided links to all of the videos later in the post.  I have also provided links to the non-streaming versions of the videos in case you want to download them and watch them offline.

Part 1 - Installing IIS 7 Roles and Features in Windows Server 2008 (video length = 7:42)

In this section we introduce you to Windows Server 2008 and the Core installation option.  Installation of the IIS7 web server roles and features are demonstrated and discussed. 

InstallCGI.cmd contents:

Start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-ApplicationDevelopment;IIS-CGI;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;WAS-WindowsActivationService;WAS-ProcessModel

Part 2 - Configuring PHP (video length = 7:34)

We need to configure IIS7 to use PHP as a CGI execution environment.  All of the .cmd files in this section were created by me to ease the typing pain in the webcast.  We'll first configure FastCGI to use PHP with the demonstrated PHP1.cmd script. 

PHP1.cmd contents:

appcmd set config /section:system.webServer/fastCGI /+[fullPath='C:\php\php-cgi.exe']

The next thing we need to do is setup the handler and module mapping for IIS7 so that it understands the available verbs and how to call PHP for request processing.  This is demonstrated in the video by executing the PHP2.cmd file in the video.

PHP2.cmd contents:

appcmd set config /section:system.webServer/handlers /+[name='PHP-FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='C:\php\php-cgi.exe',resourceType='Either']

And finally for the PHP configuration section, we setup IIS7 default document processing with PHP3 and PHP4.cmd

PHP3.cmd contents:

appcmd set config "Default web site" /section:defaultDocument /enabled:true

PHP4.cmd contents:

appcmd set config "Default Web Site" /section:defaultDocument /+files.[value='index.php']

You'll notice in the commands above we are using the IIS7 appcmd.exe program to modify the settings and therefore the behavior of IIS7.  In the screencast we also modify the INI file that contains the PHP configuration settings so that we can turn on the needed PHP extensions.  Lastly for this section we open the MySQL firewall port ahead of the actual installation and configuration of that product.

Part 3 - Installing and Configuring MySQL (video length = 5:36)

WordPress needs a database for its operation and MySQL fits the bill nicely.  In this screencast section, we install and configure MySQL by creating the wordpress database, granting permissions to the database, assigning passwords, etc. 

Part 4 - Configuration of WordPress (video length - 5:37)

The last screencast is short and sweet as we create and modify the wp-config.php file which contains the userid, password and database configuration information.  Then it's time to test the WordPress interfaces from another virtual machine to see if everything above actually worked.  In the webcast I delivered, I left off a single ; in the MySQL configuration so the databases weren't created properly.  A one character error can do that to you.  Be careful and take your time. 

Screencast Video Downloads - please right mouse click the links below and SAVE AS

Program Downloads and Links

Windows Server 2008 -



WordPress -

Comments (14)
  1. Murray Wall says:

    How about an article on how to install PowerShell on Windows 2008 Core?

  2. Keith Combs says:

    Today it isn’t possible to run PowerShell on Core.

  3. I heard that there will be a ‘special Server 2008 .NET Framework’-version so PowerShell and .NET websites will run on Win2k8 Core.

    Is that correct?

  4. Keith Combs says:

    Someone get an electrode and shock me whenever I say "got" instead of "have".  I sound like a hick from Conroe.  Wait, I am a hick from Conroe.  Ha!  It’s funny how you use "crutch" words when presenting or speaking.  I’ll try to work on my verbal skills.  It’s annoying me.  Not enough to record again though.  Grin.

  5. Anonymous says:

    This was the hardest session for me to pull together links for. As I noted in my session, I just don’t

  6. Stephen Edgar says:

    Thanks for the videos Keith and I am just about done with a x64 install under Hyper-V as a member server in AD.

    If you download the latest MySQL you may get a ‘side-by-side’ error when launching ‘MySQLInstanceConfig.exe’ and you can find the workaround here.,195569,195569#msg-195569


    Stephen Edgar

  7. mike says:

    I followed all these tuts to the T and it just did not work. I think a lot of configuration was left out. For example. My first try around, there was access granted to the database but it wouldn’t build any tables. I’ve been trying all day and night to get this working to no avail. The other times around I would get just a blank page. Then I started thinking about the wordpress config where it asks for a uname. Where does this uname come from? One has to be setup before it can connect to it right? So just how do you create a database username?

  8. S.Richmond says:

    Hi Keith,

    Thanks for the great screencast. Really helpful. Though i have a problem right at the end here. I go to hit up /wp-admin/install.php and i get an "500 – Internal Server Error".

    The only difference on this end is that i followed your tut on a Server 2008 FULL install, not a core install. Though al lthe steps work perfectly.

    What could possibly cause this issue? I have done a fair share of googling on this already.

    Any help would be greatly appreciated.


  9. Keith Combs says:

    What version of MySQL did you use?  The installers for some of the recent versions seem to be broken and don’t work.

  10. S.Richmond says:

    At first i used the latest (5.0.51a), but the Instance Config Wizard is broken in that version under VISTA/2008, so i rolled back to 5.0.45, the one you were using.

    I realise the 500 error code is very broad. But any help on isolating the issue would be great.

    UPDATE – I installed the IIS7 Tracer app and it turns out WordPress was cracking the shits, unable to perform certain commands.

    Rolling back to version 2.3.1 fixed the 500 error code. But now i have all new problems. The blog works perfectly fine inside my network. But to anyone else it either never loads or it loads in text only ‘notepad style’, as if the CSS sheet is not being downloaded.

    ANy ideas? Do i need to set any specific permissions? I’ve heard a little about needing a .HTACCESS file in order to do the IIS equivilent of Apache’s mod_rewrite.


  11. S.Richmond says:

    Hiya Keith,

    I’ve figured it out. It seems IIS is passing on my internal address out into the internet!

    For example all my hotlinks are

    It, of course SHOULD be

    Why is this?

  12. nick says:

    Can windows 2008 core install Visual studio?   I can’t seem to get either VS2008 or VS2005 to install on the core.

  13. floyd mcmichael says:

    is there no way to use something akin to the php5isapi.dll? or is the only way to do it is to use the cgi exe?

Comments are closed.

Skip to main content