In previous articles on this site I have provided tutorials for installing DotNetNuke to a local machine, however, I typically avoid the topic of installing DotNetNuke to a remote web hosting provider. I have been asked many times why and the answer is simple; installations to remote hosts are not standardized, depending on the hosting providers environments the steps to install can differ greatly. However, due to popular demand I have created this tutorial which will provide you the basic overview of how to perform a clean installation of DotNetNuke on a remote web hosting provider. In the article I will try to point out the most common differences between different hosting providers, I will also be providing specific examples regarding the use of the Plesk control panel which is what my hosting provider (3Essentials) uses. This article is my third revision updated to add some more clarifying points, be sure to share any feedback in the comments section at the bottom of the article!
First of all prior to starting this tutorial you must make sure that you have an established hosting account, an active domain name pointed to this hosting account, and you must be aware of all login information to your specific provider. This login information includes but is not limited to FTP, Database, and control panel logins. Below is a listing of each step that we will follow during this tutorial.
- Prepare the hosting environment
- Setup file permissions
- Configure Database (if not already completed)
- Validate ASP.NET Version
- Download and Prepare DNN Files
- FTP Upload of website
- Triggering of DNN Installation Process
Preparing the hosting environment
This first portion of the install process is typically the most complicated and is ideally the only section of this article that will vary depending on your hosting provider. Below I am providing installation instructions assuming the usage of Plesk as the application control panel, and working with 3Essentials as the hosting provider. The reason I mention this is that with Plesk you must also contact your hosting provider and I know that the following processes work with 3Essentials as they are my provider..
Setup File Permissions
This step of the installation process is the one that is most commonly overlooked, therefore I am putting this as the first item on the agenda. Due to the nature of DotNetNuke and the manner in which it allows you to dynamically install modules/skins/containers and the like you must ensure that the ASP.NET worker process account (ASPNET in Windows 2000 / NETWORK SERVICE in Windows 2003) has full permissions to the ENTIRE installation directory. Typically on a hosted environment you are NOT able to configure this using your control panel. My recommendation is to submit a support request to your hosting provider with text similar to the following. Please note that in a shared hosting environment you MIGHT have a different user account that represents the ASP.NET Worker Process so I would avoid referencing a specific account name.
I am preparing to install DotNetNuke on my ____________ account. Can you please ensure that the ASP.NET Worker Process has full file permissions to the root of this domain.
The good news is any hosting provider should be able to understand this request and they can quickly make the needed changes. If you have a file permissions utility via your control panel, ensure that you are able to modify the root file permisisons. 3Essentials has a file permission utility, however, they do not allow customers to modify the permissions to the root folder, therefore I must submit a ticket to have my permissions modified. If you are unsure, lean towards the side of caution and submit a request to your hosting provider!
Improper configuration during this step of the installation process WILL result in a failed installation and you will have to restart.
DotNetNuke requires a SQL Server database to operate and this is something that must be configured. Depending on your hosting provider the database and database user account might have already been configured, if not you might need to create the database and user. The point of this step is to ensure that you have the following informaiton for your environment.
- Database Server Name (The name/ip of the server where your database resides, never include HTTP in the name)
- Database Name (The name of the database where you can store information)
- Database User (The user account that you may use to access the database. NOTE: this account should have DBO permissions)
- Database Password (The password for the username listed above)
You can obtain the Database Server Name from your hosting provider, most of them provide this information on their support sites. This value might be a fully qualified domain name (db1.3essentials.com) or as an ip address (10.12.12.5) or potentially a few other styles of values depending on their configuration. The remaining pieces of information all relate specifically to YOUR databaase on their server. If you are using Plesk you can obtain all needed information from the "Databases" section of your control panel.
If you are unsure of where to obtain this information contact your hosting provider.
Validate Trust Level (Optional)
This optional step is something that might help you later in your DotNetNuke experience. Some 3rd party modules, especially those that communicate to external sources require full-trust permissions within the ASP.NET application. This is something you might consider asking your hosting provider if they support, if they do I would have them enable it. 3Essentials supports full-trust by default.
Validate ASP.NET Version
This simple step is also one of the most common errors when installing DotNetNuke to a remote site. If you are installing 4.8.2 as this article is guided towards you MUST ensure that your website is configured to use ASP.NET 2.0. If you are using Plesk to manage your domain you can view the ASP.NET version in the settings page for your website, ensure that the version indicates (2.0.50727). Other hosting providers and control panels might provide a user accessible method for changing this or you might have to submit a support ticket, this all depends on the provider.
Once you have completed this step and received confirmation that you have ALL proper data values you can no proceed to the process of downloading and configuring the DotNetNuke installation files.
Downloading and Preparing DotNetNuke Files
To install DotNetNuke on a remote system you must first download the "Install" package of DotNetNuke 4.8.2 to your local machine, you must then UNZIP all files to a location on your computer to store the files before you migrate them to your hosting provider. So the first step is to download the files and unzip them to a location on your machine. For the ease of explaination I am going to assume that you unzipped the files to C:\DotNetNuke.
Now that you have your files on your local machine we need to make a few modifications.
- Rename the release.config file to web.config. This file is located in the root of the extracted files (C:\DotNetNuke\release.config in our example)
- Open the web.config file in your favorite editor, or Visual Studio whichever you desire.
- Modify the circled sections, this is configuring the connection to the database so substitute your values for "Server", "Database", "uid", and "pwd". This format of connection string will work for any version of SQL Server. You may use other valid connection string settings if desired, you may visit http://www.connectionstrings.com for assistance with other formats. Be sure that when you modify these settings that you change the UNCOMMENTED connection string, as by default two strings are provided, one of which is commented out.
- Locate a setting called <add name="AutoUpgrade" value="True" />, change the value on this to "False"
- Locate a setting called <add name="UseInstallWizard" value="True" />, change the value on this to "False"
- Save the modified document
The modifications to AutoUpgrade and UseInstallWizard are completed to ensure that you are the one to trigger the installation and bypasses the wizard since we have already configured the web.config
Now that you have completed these web.configuration changes you have a DNN Installation that is ready to be uploaded to your website.
FTP Site to Hosting Provider
This step of the process is very simple, however, there are certain circumstances with hosting providers that can cause issues. When using FTP to upload it is VERY important to make sure that ALL files are copied. Due to potential timeouts and issues with FTP clients I highly recommend copying the files to your hosting location 1 folder at a time. Copy the admin folder first, then the app_code folder, etc. This will allow you to not only closely monitor the upload but will also allow you to quickly re-upload files in the case of an error.
Be sure when uploading these files that you are loading them to the proper location on your web host.
Execute the DotNetNuke Installation Process
Now that your files have been uploaded you just need to trigger the DotNetNuke installation process. You can do this by going to the following url http://www.mysite.com/install/install.aspx (Where mysite.com is your domain name). This should bring up the DNN install process where it should let you know that it is upgrading DotNetNuke and will provide you status messages. If you receive a message that says unavailable, please try to visit the link again, be sure when you re-visit the site you must be sure that the path is still http://www.mysite.com/install/install.aspx. The installation should proceed with NO errors and should then provide a link that tells you to "Click here to access your portal". If you see any error messages be sure to note them before moving on as they will NOT be visible again! Be 100% sure that you click the link to visit your portal as if this step is skipped it is possible that the portal alias for your site will be incorrectly configured and you will be unable to login to your site.
You have now successfully installed DotNetNuke! You should be able to login to your host account with the default password of dnnhost. Be sure that you login with both the default host and admin accounts to reset the passwords and secure your DNN installation.
I hope this article has helped those looking to install DNN on a remote hosting provider. If you need assistance please make a post in the forums on this site, if you have a general comment please feel free to leave it below!