I want to setup EE on an IIS server what should I be aware of before proceeding?

Never having developed a site running on a server using IIS I am hesitant. Based on initial searches I see that I can run Expression Engine 3 on an IIS server, and there seem to be some "gotchas" to have be aware of in the past. Considering the age of the articles I have found are no more recent than 2014 I wanted to pose this question again given updates to PHP etc...


  • [Resolved] If anyone has any experience with upgrading PHP on IIS after deployment I would be interested to hear how that process went.
  • Any tips or suggestions regarding config file setup

Thanks everyone

  • I've only had to do this one time on an older version of EE 2. For me, the problem areas were making sure I got the paths right and the web.config file set correctly. EE3 should be easier as far as pathing goes, and I'm sure the web.config should look mostly the same as every other version. My biggest problems came from my lack of experience with IIS. I had a problem getting emails routing correctly, but again I think that was me rather than any kind of EE "gotcha". Good luck! Dec 5, 2017 at 19:50
  • Thank you @MichaelMcGhee. I do have an IT team on site to manage the server side issues but none of them have deployed PHP on IIS. I am sure they are capable. Just want to have some sort of direction before just jumping in. I have been getting the impression that once you get the configuration setup that there is not much else to be concerned with. Only thing I have not researched yet is issues upgrading PHP on IIS. Thanks again.
    – MagRat
    Dec 6, 2017 at 13:58
  • I did find some answers regarding updates to PHP on IIS, linked in the above edit.
    – MagRat
    Dec 6, 2017 at 15:08

2 Answers 2


You can upgrade PHP on IIS using the Web Platform Installer.



Routing wouldn't work for me until...

  1. Remove index.php from Settings > URL and Path Settings > Website index page
  2. Then add the following to your webconfig file.

            <rule name="expressionengine" patternSyntax="Wildcard">
                <match url="*" />
                    <add input="{REQUEST_FILENAME}" matchType="IsFile"
                         negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory"
                         negate="true" />
                <action type="Rewrite" url="index.php" />

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.