Successfully installing DotNetNuke begins with making sure that all prerequisites are taken care of. This Wiki post aims to be the definitive guide to all DotNetNuke prerequisites. Should you miss something, please go ahead and add it, or start a discussion on the discuss page.
DotNetNuke can run on every windows version from Window 2000 to Windows 2008r2, as long as the particular windows version supports running IIS. We do however recommend using Windows 2008r2, because of better security policies and better support for ASP.NET. IIS 7.x (first available in Windows 2008) offers high integration with .NET, making a lot of tasks much faster, easier and more secure. Also, especially when you are embarking on a new web project with DotNetNuke, it is important to realize what the support window for several Windows version is. Official Microsoft support for Windows 2000 ended July 13 2010, and support for Windows 2003 will end July 14 2015. In the rest of this document we are assuming that the operating system is Windows 2008r2.
From DotNetNuke version 05.03.00, .NET 3.5 sp1 is required to run DotNetNuke. On Windows 2008r2, .NET is available, but not installed by default. From DotNetNuke 5.4 support for .NET 4.0 is built in the application. .NET 4.0 is a separate installation that can be downloaded from the Microsoft download site.
It is very important to make sure that prior to installing IIS, all .NET bits have been installed, otherwise registration within IIS is not done correctly.
Internet Information Server (IIS)
When setting up IIS, it is important to think about which services you want to have installed with it. DotNetNuke requires ASP.NET to be installed, but you can also think about adding support for static and dynamic compression, windows authentication and request filtering.
Should you install IIS prior to adding support for ASP.NET, you can still install ASP.NET afterwards, but you will have to register ASP.NET with IIS. You can do this using the ASP.NET registration tool. Typically you would use this command with the tool:
IIS 7.x uses configuration files on the following levels:
- Web server
- Virtual or Physical directory
When setting configuration at a different level than Site Level, be aware that there might be compatibility issues with DotNetNuke. Part of the DotNetNuke installation and upgrade process is to automatically update web.config in the application root with modifications that are needed for the updated version of DotNetNuke.
When running a different .NET application in a sub directory of the DotNetNuke application, one of the options would be to add a location element in the DotNetNuke web.config. Please note that DotNetNuke does not support that, future upgrades will fail if a location element is present in web.config. An alternative option would be to use the “enableConfigurationOverride” setting of the application pool.
The security of any ASP.NET application, including DotNetNuke, begins with a good security configuration of IIS.
Ideally, every application runs in its own application pool, thus making sure that code from one application cannot touch the other. It is recommended to use a different identity for every application pool that is defined in IIS. IIS 7.5, by default, uses a virtual identity, referred to as the Application Pool Identity. This virtual identity can be given access to the file system, and to a SQL server database (provided that that database is running on the same server). Although this is a valid setup for smaller installations, larger installations would definitely benefit from using Active Directory accounts to run application pools under.
When running the application pool with a custom identity, it is also important to note that this identity has the proper permissions on several key windows directories.