Before You Begin
This process assumes you have already installed or have available:
- A Windows based server running Internet Information Services(referred to later as IIS) with ASP.NET Installed
- A Windows based server with an appropriately licensed version of SQL Server 2008 R2 or higher installed
- For a full list of hardware and software requirements for production, please review our Hardware and Software Requirements
This process also assumes you have a functional knowledge of the following:
- Basic SQL Server management capabilities including creating databases, executing SQL and managing database security.
- Manipulating file system permissions in a Windows environment.
- Basic IIS management and configuration including creating new websites and managing IIS application pools.
- Locating and managing services in a Windows environment.
If you are unfamiliar with any of these it is suggested you contact a system administrator for your organization or consult the documentation on your operating system version, IIS and SQL Server.
Step 1: Unzip and Deploy the Installation Files
1. If you downloaded a zip file from our website or another location, windows may have blocked the file for security reasons. Before proceeding, be sure to unblock the file. Generally this can be done by right-clicking the zip file and selecting the Unblock button or checkbox on the appropriate tab. The location of this however can vary for different versions of Windows. Consult the documentation for your version of Windows for more information.
2. Extract the files to a known location you will also reference in future steps.
3. Locate the Web folder in the package and copy it to the location* on your web server where you want the website files to live permanently. You can choose to rename the web folder if you wish. This location will now be referred to as the web site installation folder.
*If you do not plan on running your site in a web farm environment or plan using an alternative location for file storage in your community then it is recommended that the web files be installed in a folder on the root of the drive you are using to avoid long file paths that can cause issues later on. You should also never use user based folders or libraries to store the web files in because they can cause issues with file permissions. This includes folders in windows like Documents/My Documents, Downloads, Desktop, Music and Videos.
4. Locate the Job Service folder in the installation package you unzipped in the first step of this section. Copy this folder to the server that will be running your job service. Place the folder on that server where you wish to permanently store the job services program files. You can rename the JobService folder if so desired. This folder will now be referred to as the job service installation folder.
5. Copy the filestorage folder from the web site installation folder in to the root of the drive being used for storage. It is common practice to separate out the filestorage from the web site files, especially in a web farm since unlike the web system files there can be only 1 file storage location for the entire environment. It should be stored at the drive root to ensure no issues with path lengths. This location will now be referred to as the filestorage folder going forward.
If this is a single server non-production/development environment you can leave this folder where it is in the web site root but still be mindful that if the folder is not at the root of the drive you could have file path length issues.
6. Generate a communityserver_override.config file. Both the web and the job service will require this file later on. Using a text editor create a file named communityserver_override.config and copy the following into it:
<?xml version="1.0"?> <Overrides> </Overrides>
Once it is saved, copy it to the root of web site installation folder and job service installation folder.
7. Connect File Storage. Locate the communityserver_override.config file in the root of the job service installation folder and web site installation folder. * Add the following between the <Overrides /> nodes. NOTE: These files can differ between job service and web so if there is already content between these nodes, insert this before the closing override tag.
<Override xpath="/CommunityServer/CentralizedFileStorage/fileStoreGroup[@name='default']" mode="change" name="basePath" value="FULL PATH TO FILESTORAGE" />
The path to filestorage should be the full disk path to the filestorage folder you deployed in the first steps. If this is a single server non-production environment and you left the filestorage in the root of the web folder you still must provide the full disk path to the filestorage folder in the web site installation folder.
*If this is a single server non-production environment and you left the filestorage in the web installation folder then modifying the communityserver_overrides.config file to specify file storage is only required for the job service as the web server will default to looking for the filestorage folder in its root. It is still a good idea to create an override in this configuration as it makes changing it later easier.
Step 2: Create Your Website
1. Open your IIS Management Tools.
2. Create a new website*. The naming of this website is not important, it should merely align to your own needs and standards.
*You can choose to run community as a sub-application/virtual directory of an existing website, however doing so can create conflicts between the 2 sites without alterations to the web configuration files. This can make for a more complicated installation process and more complicated future upgrades. We recommend avoiding this type of install if possible.
3. Create a new application pool. Creating a website in some versions of IIS will automatically create a new application pool of the same name. It is acceptable to use that one instead of creating a new one. Do not share an application pool with another site or application.
4. Configure the application pool .NET CLR version to 4.0. If not already done, edit the application pool basic settings and set the .NET CLR Version to the highest version to v4.0.X(X being the highest valued revision available)*. Ensure Managed Pipeline mode is set to Integrated.
*If a 4.0 version of .NET is not available in this dropdown, you may need to alter the features of your web server to include ASP.NET and/or install the latest version of the .NET framework 4.5 depending on your operating system version.
5. Configure the application pool Identity. This can be done in advanced settings for the application pool. Most commonly people use a domain account specially created for this purpose. You must be able to configure permissions for this account on multiple servers(For example SQL and Web servers) making the domain account the most logical choice. For single server non-production/development environments you can use a local account, the default application pool account or NetworkService.
6. Edit the website to point to your web files. In the first section you copied web files to their final place on the web server. Enter the path to that folder in the website's basic settings dialog physical path or use the browse feature to set it.
7. Ensure your Application Pool is being used on this website. If you allowed IIS to auto create the application pool this should be set already in the basic settings dialog. If not, select the application pool you created earlier.
8. Modify the website installation folder permissions. Locate the web site installation folder you copied the web files to and ensure that the account you chose as your application pool identity has read access to that folder and its children.
9. Modify the permissions on the filestorage folder. In the previous section you copied the filestorage folder. Locate that filestorage folder and edit the permissions so that the account you chose as the identity of your application pool has Modify, Read and Execute, List Folder Contents, Read, and Write permissions on the folder and its children.
If you are running a single server non-production/development environment you may have chose to leave the filestorage inside the web site root. This is acceptable for this environment however you still must apply the permissions described above to that filestorage folder.
Step 3: Setup The Database
1. Access your SQL Server and its management interface.
2. Create a new database. The default database name the software looks for is TelligentCommunity, however you can choose any name that is appropriate for your needs. Record the name you used for later use.
3. Run the installation script (cs_CreateFullDatabase.sql) on the new database. The cs_CreateFullDatabase.sql file is in the installation package you unzipped in the first section in the SqlScripts folder. You will need to be logged on to the SQL server as the owner(user in dbowner role) or a system administrator to do this.
If at any time this script encounters errors do not proceed any further. Evaluate the errors and see if its an issue in the database setup and/or permissions. If you are able to rectify the issue, drop the database and repeat this section. If you are having trouble contact a SQL Server Administrator or contact our support department for assistance. TIP: There many be many errors in the SQL output because one error can cause more errors later in the script. Always look for the first error encountered.
4. Create the the community. You accomplish this by executing the following SQL against the new database:
EXECUTE[dbo].[cs_system_CreateCommunity] @SiteUrl = N'http://yoursite.com', @ApplicationName = N'telligent_evolution', @AdminEmail = Nfirstname.lastname@example.org', @AdminUserName = N'admin', @AdminPassword = N'[PUT YOUR PASSWORD HERE]', @PasswordFormat = 0, @CreateSamples = 0
- SiteUrl - The fully qualified url of your site. This is the same as the url users will use to access your community. This can be changed later in Administration.
- ApplicationName - This is an internal identifier for the application, there is no need to change it.
- AdminEmail - The email address of the administrator account this process will create.
- AdminUsername* - The username of the administrator account to be created used to perform initial setup the site.
- AdminPassword* - The password for the newly setup administrator account.
- PasswordFormat - This tells the system to store the password as plain text for initial setup and should not be changed.*
- CreateSamples - This is a legacy feature that should not be used. As such the value of 0 should not be changed.
*The administrator account created here is meant for setup or for development/non-production environments. For production systems once a site is setup completely you should create a new user account, add it to the administrators role then disable or delete the account created during setup. IT IS IMPERATIVE YOU CREATE A NEW ADMINISTRATOR ACCOUNT FIRST.
5. Assign Database Roles. You can choose to use SQL authentication or Windows authentication. Most production systems tend to use Windows authentication because the account is managed outside of the SQL server and does not require you store the password in the website or job service configuration. If you unfamiliar with creating SQL users and logins, consult your SQL Server Administrator or the SQL Server documentation.
- For Windows Authentication (preferred): Create a new login for a Windows account. For the Windows account, select the user account used as the identity of the application pool you created earlier.
- For SQL Authentication: Create a new SQL based login supplying a username and password. Record the username and password for later use.
In both scenarios you must provide the new login(or the existing user if you are using a login already created on your SQL server) access to the database you just created and the must be added to the following database roles:
6. Connect your website to the database. On the web server, locate the web site installation folder. Edit the the connectionstrings.config file in the root of that folder.
Make the following changes based on the type of authentication you chose on your SQL server.
If you chose Windows Authentication, you will need the username of the identity you chose for the application pool. Your connection string should look similar to the following substituting values where specified:
<add name="SiteSqlServer" connectionString="server=[THE NAME/INSTANCE OF YOUR SQL SERVER];uid=;pwd=;Trusted_Connection=yes;database=[THE DATABASE NAME YOU CREATED]" />
For SQL Authentication you will need the username and password you created on the SQL server. Your connection string should look similar to the following substituting values where specified:
<add name="SiteSqlServer" connectionString="server=[YOUR SQL SERVER NAME/INSTANCE];uid=[THE SQL USERNAME];pwd=[THE SQL PASSWORD];Trusted_Connection=no;database=[THE DATABASE NAME YOU CREATED]" />
Step 4: Installing the Job Service as a Windows Service
1. Navigate to the Job Service installation folder and locate Install.bat in the root. This file will install the executable as a Windows service where it can be managed with other Windows services. By default the service will be installed with a name of "Telligent Community Job Service".*
*You can change the name it will install if you would like something different or if this is not going to be the only Job Service on this server. To change the name, in the job service installation folder locate and edit the jobs.config file. You will see an attribute on the jobs XML node called ServiceName. Edit the value to change the service name before installation. You must do this if you will be running multiple job servers on the same server as the name must be unique.
2. Execute install.bat as an administrator. If you are satisfied with the name or have changed it, execute the install.bat from the job service installation folder. You will need an account with administrative privileges to install the service. You must do this with the highest security.
3. Change the Service Identity. Open the Windows Services Management Console on the job server and locate the service by the name you installed it with (or the default one if you didn't change). On the property pages choose the identity you wish the job server to run as. Traditionally this is the same account the application pool is running under.
4. Modify the permissions on the filestorage folder. If you did not use the same account to run the job service that runs your application pool you will need to adjust the filestorage permissions like you did with the application pool identity. Ensure the job service account has Modify, Read and Execute, List Folder Contents, Read, and Write permissions on the folder and its children.
5. Connect the Job Server to the Database. This process is identical to the web server with a couple substitutions. If you are running Windows Authentication, then you will need to apply the same permissions on the database to the job service account as the application pool account IF they are different. See Step 6 under Setup the Database.
Step 5: Install and Configure Search
Search is required to run Telligent Community as many key features depend on it. Generally in smaller environments search can exist on the same server as the job service however for larger production environments it is its own dedicated server.
The search server must be running Java. If you do not have a current version of Java you should obtain and install the latest JRE. For 64bit versions of Windows you should use the 64bit version of the JRE.
Obtain the latest windows MSI installer of Tomcat from Apache. IMPORTANT: If you are running a 64bit JRE YOU MUST use the 64bit version of Tomcat.
1. Install Tomcat. Install either Apache Tomcat 7.0 or 8.0 by downloading the Windows Service Installer option. When installing choose CUSTOM installation when prompted on the CHOOSE COMPONENTS screen. Expand the TOMCAT node and ensure NATIVE and SERVICE are checked. You do not need to change the installation directory when prompted, however RECORD the path for future use. This will be known as the Tomcat installation folder going forward. Once complete you can test everything works by navigating to http://localhost:8080 on the search server. If it is not working consult the TOMCAT documentation for further troubleshooting.
2. Install SOLR and the Search system files. Locate the
Search directory in the installation package you extracted. First copy the
solr folder to the root directory of Apache Tomcat (e.g. C:\Program Files\Apache Software Foundation\Tomcat 7.0\solr). Next copy the
solr.war file to the Apache Tomcat root /webapps folder. Finally open the
copy to tomcat_lib folder and copy all files in there to the Apache Tomcat root /lib folder.
3. Test your SOLR install. Restart the Apache Tomcat service. Navigate to http://localhost:8080/solr to test if SOLR is running properly.
4. Connect the Job Service and Web Servers to search. Locate the communityserver_override.config file in both the web site installation root on each web server and the job service installation root on the job service server.. Add the following between the <Overrides /> nodes. NOTE: These files can differ between the job service and web site so if there is already content between these nodes, insert this before the closing override tag.
<Override xpath="/CommunityServer/Search/Solr" mode="change" name="host" value="http://[your server name]:XXXX/solr/content" />
Step 6: Finalization
1. Double check that that all steps above were complete. Its good to take a second pass to make sure everything was completed. Missing a step could cause the site to fail upon startup.
2. Start the application pool and ensure the site is running on each web server (If there are more than 1).
3. Verify the web site is running. There is a level of assumption that you understand how to navigate to sites that may not have public facing urls or at minimum internal facing urls. This may require you apply host header bindings to the new website and modify your local hosts file. If you are not familiar with doing this please consult the documentation for your operating system and IIS.
WARNING: Modifying a hosts file incorrectly can cause system problems and it is highly recommended you contact a system administrator if this is not something you are familiar with.
4. Start Tomcat on the search server.*
In order for items to appear in search you must have content in your site such as forum thread, and blog posts as an example. The job service must be running and it can take several minutes for the site to start indexing items.
5. Start the Job Services.