Installing Magneto on IIS7 - Windows 7 and 2008 Server

So there is quite a bit of fuss on the net saying that Magneto Ecommerce cant or shouldn't be run on a windows system, so I thoughts I would give this a go myself, and well my findings tell me that peoples claims seem to be quite misleading.

It really couldn't be easier to install on an IIS7 enabled machine, so I am going to share how I installed this.

Ensure you have IIS7 installed of course, I also highly recommend using the Web platform installer to install the below items, it will speed this process up and also cause you much less grief.

IIS components
Using the web platform installer I installed the following components

  • Php 5.2.17
  • IIS: CGI
  • Windows Cache Extension 1.1 for PHP 5.2
  • URL Rewrite 2.0


Once you have the above IIS components installed its time to install MySQL, if you have MySQL installed, simply create a new schema, call it what ever you wish.


Ok so hopefully you have downloaded the community edition of magneto if not click here, extract the files to your desired location, be sure to note this location because you need to feed this into IIS in the next step.

Create a web.config file in the root directory of your installed, the root is defined as to where the primary index.php file is located.

Open this web.config file with notepad or your preferred text editor and then paste and save this:


xml version="1.0" encoding="UTF-8"?> 
<rule name="Imported Rule 1" stopProcessing="true"> 
<match url=".*" ignoreCase="false"/>        <conditions> <add input="{URL}" pattern="^/(media|skin|js)/" ignoreCase="false" negate="true" /> 
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
conditions> <action type="Rewrite" url="index.php" /> 

We now need to apply some permissions,  be sure to apply the ‘network service’ account  to have modify rights to the entire directory.


NOTE: I don't encourage these permissions in a production environment, its purpose is for a staging / development site only.

Setup IIS
Now we need to create a new website with in IIS, if your not sure on how to do this, follow the instructions here. When creating your website it will ask you for the physical path, this is the path to your root directory, the root being where the index.php file is found in the magneto directory.

Once you have a website created, you will have noted that a corresponding  application pool. Locate this application pool and then ensure its  ‘identity’ is set to ‘NetworkService’, you can do this by right clicking on the application pool and choosing ‘Advanced Settings’ > click on the … button under ‘Identity’ and choose ‘NetworkService’


Now we need to ensure that PHP is actually applied to the site, else the sites install will not load at all, resulting in 404’s, to do this locate the website you just created, under this find the IIS module called ‘Handler Mappings’ double click this  >  under the ‘path’ column look for something that says *.php, this should refer to a handler called ‘FastCGIModule’.

If you can not see this then PHP may not be correctly installed, if you belie it is then you will need to ‘Add Module Mapping’ (this is at the top right within IIS7)

  • Request path: *.php
  • Module: FastCgiModule
  • Executable: C:\Program Files (x86)\PHP\v5.2\php-cgi.exe (this is my path to PHP, yours may be different)
  • Name: Php-5.2.17


Install Magneto
At this point your ready to rock and roll, simply go to the host name that you added to your IIS bindings i.e. localhost and then magnetos installed should appear.


ased on my experience, when installing the application there are several check boxes, one of which is a rewrite URLS and it notes Apache, you must tick this for the install, as you are doing the IIS re-write.

Once problem that I did struggle a little with was when I did my install via the Google chrome browser, I hit some errors, it turns out that by using Mozilla Firefox to do the install, it would eliminate this error.

the errors I received using Chrome were:

There has been an error processing your request
Illegal scheme supplied, only alphanumeric characters are permitted
#0 D:\www\job\magento\app\code\core\Mage\Core\Model\Store.php(712): Zend_Uri::factory('{{base_url}}')
#1 D:\website\magento\app\code\core\Mage\Core\Controller\Varien\Front.php(313): Mage_Core_Model_Store->isCurrentlySecure()
#2 D:\website\magento\app\code\core\Mage\Core\Controller\Varien\Front.php(161): Mage_Core_Controller_Varien_Front->_checkBaseUrl(Object(Mage_Core_Controller_Request_Http))
#3 D:\website\magento\app\code\core\Mage\Core\Model\App.php(349): Mage_Core_Controller_Varien_Front->dispatch()
#4 D:\website\magento\app\Mage.php(640): Mage_Core_Model_App->run(Array)
#5 D:\website\magento\index.php(80): Mage::run('', 'store')
#6 {ma

If your after how I found this check this out

IIS , MySQL , Tips and Tricks