How to Install the Retail Version of Sitecore 9 for Development

02.13.18   Byron Calisto

I mentioned in my earlier post that some of the steps for installing Sitecore 9 for development have changed in the general release. In this post, I have updated the steps to follow to get the retail version set up. 

Pre-Requisites

  • Microsoft Windows 8.1 or later, with IIS installed.
  • Microsoft SQL Server 2016 or later (Express version OK)
    • Once installed, execute the following configuration change:

      sp_configure 'contained database authentication' , 1;
      GO
      RECONFIGURE;
      GO
  • Apache Solr 6.6.1 (tested with 6.6.2, does NOT work with version 7 or later because of deprecated primitive field types)
  • Install the following modules in IIS using Web Platform Installer:
    • URL Rewrite 2.1
    • Web Deploy 3.6 for Hosting Servers
    • Microsoft SQL Server Data-Tier Application Framework (DACFx)
    • Microsoft SQL Server Transact-SQL ScriptDom

 

Installation

  • Install Apache Solr with SSL support (has to be accessible through https). Record the installation path, and also the Windows Service name you used when installing it as a Service.
  • Open PowerShell in Administrator mode.
  • Set the Execution Policy to RemoteSigned, using the following command:

    Set-ExecutionPolicy RemoteSigned
  • Install the Sitecore Install Framework using MyGet:

    Register -PSRepository -Name SitecoreGallery -SourceLocation https://sitecore.myget.org/F/ sc -powershell /api/v2
    Install -Module SitecoreInstallFramework
    Import -Module SitecoreInstallFramework
  • From https://dev.sitecore.net download the "Packages for XP Single" XP0 under the "Download options for On Premises deployment" section in the Downloads page.
  • Extract the contents of the downloaded ZIP file to an easy access folder (for this example, extracted under C:\Projects\Sitecore)
  • Extract the contents of the XP0 Configuration Files rev.XXXXXX.zip file into the same folder.
  • Copy your license.xml file to the same folder.
  • The Sitecore Installation Guide includes a handy script that you can use to fully automate the installation of everything you need in your local environment. This script does the following things:
    • Creates the xConnect certificates
    • Creates the xConnect Solr cores
    • Installs the xConnect site and services
    • Creates the Sitecore Solr cores
    • Installs Sitecore

    Create this script file in the same C:\Projects\Sitecore folder, you can name it something like sc-localinstall.ps1:

    sc-localinstall.ps1
    #Change the following values with your specific site data
    $prefix = "sc9test"
    $SiteDomain = "oshyn.com"
    $PSScriptRoot = "C:\Projects\Sitecore"
    $XConnectCollectionService = "$prefix.xconnect.$SiteDomain"
    $sitecoreSiteName = "$prefix.$SiteDomain"
    $SolrRoot = "C:\solr-6.6.2"
    $SolrService = "Solr662"
    #For SqlServer, use "." or "localhost" for default local instance. Use ".\INSTANCENAME" if using a local named instance.
    $SqlServer = "."
    $SqlAdminUser = "sa"
    $SqlAdminPassword = "sapassword"
     
    #Create and install xConnect client certificate
    $certParams = @{
        Path = "$PSScriptRoot\xconnect-createcert.json"
        CertificateName = "$prefix.xconnect_client"
        CertPath = $PSScriptRoot
    }
    Install -SitecoreConfiguration @certParams -Verbose
     
    #Create xDB Solr cores
    $solrParams = @{
        Path = "$PSScriptRoot\xconnect-solr.json"
        SolrUrl = $SolrUrl
        SolrRoot = $SolrRoot
        SolrService = $SolrService
        CorePrefix = $prefix
    }
    Install -SitecoreConfiguration @solrParams
     
    #Install xConnect site and services
    $xconnectParams = @{
        Path = "$PSScriptRoot\xconnect-xp0.json"
        #Replace the package name with the correct version and revision
        Package = "$PSScriptRoot\Sitecore 9.X.X rev. XXXXXX (OnPrem)_xp0xconnect.scwdp.zip"
        LicenseFile = "$PSScriptRoot\license.xml"
        Sitename = $XConnectCollectionService
        XConnectCert = $certParams .CertificateName
        SqlDbPrefix = $prefix
        SqlServer = $SqlServer
        SqlAdminUser = $SqlAdminUser
        SqlAdminPassword = $SqlAdminPassword
        SolrCorePrefix = $prefix
        SolrURL = $SolrUrl
    }
    Install -SitecoreConfiguration @xconnectParams
     
    #Create Sitecore Solr cores
    $solrParams = @{
        Path = "$PSScriptRoot\sitecore-solr.json"
        SolrUrl = $SolrUrl
        SolrRoot = $SolrRoot
        SolrService = $SolrService
        CorePrefix = $prefix
    }
    Install -SitecoreConfiguration @solrParams
     
    #Install Sitecore instance
    $sitecoreParams = @{
        Path = "$PSScriptRoot\sitecore-XP0.json"
        #Replace the package name with the correct version and revision
        Package = "$PSScriptRoot\Sitecore 9.X.X rev. XXXXXX (OnPrem)_single.scwdp.zip"
        LicenseFile = "$PSScriptRoot\license.xml"
        SqlDbPrefix = $prefix
        SqlServer = $SqlServer
        SqlAdminUser = $SqlAdminUser
        SqlAdminPassword = $SqlAdminPassword
        SolrCorePrefix = $prefix
        SolrUrl = $SolrUrl
        XConnectCert = $certParams .CertificateName
        Sitename = $sitecoreSiteName
        XConnectCollectionService = "https://$XConnectCollectionService"
    }
    Install -SitecoreConfiguration @sitecoreParams
  • In an Administrator PowerShell window, go to C:\Projects\Sitecore, and execute the script by typing \.sc-localinstall.ps1
  • Once it finishes installing (it can take several minutes), open a web browser and access the Sitecore interface. For this example, it would be accessed using http://sc9test.oshyn.com/sitecore and logging in with the default admin/b credentials.

Optional: Configuration for Sitecore Rocks

If you want to use Sitecore Rocks during development, you MUST do the following modification for the Sitecore Rocks Hard Rock Web Service to work. Add this modification in the main Web.config, under the configuration node:

Web.config modification for Sitecore Rocks
<configuration >
  <location path = "sitecore/shell/WebService" >
    <system.web >
      <authorization >
        <allow users = "?,*" />
      </ authorization >
    </ system.web >
  </ location >
</ configuration >