2018년 12월 4일 화요일

사이트코어 퍼블리쉬 서비스 (Sitecore Publishing Service) 설치하기

사이트코어 퍼블리슁 서비스 (Sitecore Publishing Service)는 대량의 아이템 퍼브리쉬를 실행할때, 사이트코어의 웹서버를 이용하지 않고 별개의 퍼브리쉬용 웹서버를 만들어 High Performance의 퍼블리쉬를 실행한다.
이는 사이트를 퍼브리슁하는데 속도를 높일뿐 아니라 퍼블리쉬 상태 및 결과를 Dashboard를 통하여 쉽게 확인할수가 있다.

이번에는 어떻게 퍼블리슁 서비스를 설치하고 사용하는지 알아보자.
필자는 사이트코어를 Azure PaaS로 사용하므로 퍼블리쉬 서비스의 웹호스팅을 Azure에 새로운 VM를 만들어 IIS를 설치하고 Publishing Service Provider를 생성하였다.
  1. Sitecore Publishing Service (SPS) 다운로드
  2. SPS를 설치할 서버로 이동 후, .NET Core 프레임웍을 설치하고 Window Server Hosting을 설치한다.
  3. SPS를 설치할 컴퓨터 또는 환경으로 이동 후, IIS를 설치하고 다운받은 SPS를 "C:\inetpub\wwwroot\sitecorepublishing" 경로에 압출을 푼다.
  4. IIS의 Application Pools에서 새로운 Application Pool를 생성한다.
    *필자는 SitecorePublishProd라고 이름을 지었다.

  5. IIS의 Sites 트리에서 새로운 사이트를 추가하고, 등록한 Application Pool을 사이트에 적용한다.

  6. 등록되어진 사이트에 "IIS AppPool\SitecorePublishProd"에 READ, EXECUTE, WRITE의 권환을 준다.

  7. 만약 다른 로컬 사이트가 적용중이라면 사이트 Binding을 업데이트하고 정상적으로 사이트가 작동되는지 그리고 다른 등록되어지 도메인이름이 있는지 "C:\Windows\System32\drivers\etc\"에서 확인한다.
    *필자의 경우 해당 VM에는 SPS만 존재하므로, 로컬호스트 기본 경로를 사용한다.
  8. "C:\inetpub\wwwroot\SitecorePublishingProd\config\global" 의 경로로 이동하여 아래의 설정처럼 해당 Master, Web, Core 데이타베이스의 정보를 입력하고 반드시 "MultipleActiveResultSets=True" Attribute을 추가한다.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    <Settings>
        <Sitecore>
            <Publishing>
                <ConnectionStrings>
                    <Master>user id={userId};Password={Password};Data Source={Datasource};Database={my-sitecore-master-db;MultipleActiveResultSets=True;</Master>
                    <Web>user id={userId};Password={Password};Data Source={Datasource};Database={my-sitecore-web-db;MultipleActiveResultSets=True;</Web>
                    <Core>user id={userId};Password={Password};Data Source={Datasource};Database={my-sitecore-core-db;MultipleActiveResultSets=True;</Core>
                </ConnectionStrings>
            </Publishing>
        </Sitecore>
    </Settings>
    


  9. 사이트 설정을 마쳤으면 Host Service의 데이타베이스 엑세스가 필요하고 SPS의 필요한 데이타베이스를 추가적으로 설치하여야 하므로, "C:\inetpub\wwwroot\sitecorepublishing" 경로로 이동 후 아래의 커맨드를 Command Prompt를 통하여 실행한다.

    1
    2
    3
    4
    Microsoft Windows [Version 10.0.14393]
    (c) 2016 Microsoft Corporation. All rights reserved.
    
    C:\inetpub\wwwroot\SitecorePublishingProd>Sitecore.Framework.Publishing.Host schema upgrade --force
    


  10. Schema 업데이트가 끝나고, 사이트코어의 데이타베이스를 확인하면 추가적으로 생성된 테이블을 확인할수가 있다.

  11. IIS 세팅과 Schema 업데이트를 마친 후, 브라우저를 열고 "http://localhost/api/publishing/operations/status"로 이동하여 결과가 "{"Status" : 0}" 나오면 SPS설치는 성공적으로 완료된것이다.

  12. SPS 웹호스트 설치는 마쳤으므로, 이젠 사이트코어 CMS로 이동 후 Sitecore Publishing Service Module를 다운받고 Installation Widzard를 통하여 설치한다.
  13. 설치가 완료되면 사이트코어와 SPS 웹호스팅을 연결하기 위하여 아래의 Patch 파일을 만들고, "App_Config/Include/" 폴더에 파일(예, z.PublishingService.config) 파일을 추가한다.
    *필자의 경우 SPS 웹호스팅을 사이트코어 서버가 아닌 다른 서버에 설치하였으므로 localhost 대신 서버의 아이피 주소를 입력하였다.

    1
    2
    3
    4
    5
    6
    <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
        <sitecore>
            <settings>
                <setting name="PublishingServiceUrlRoot">http://123.123.123.123/</setting>
    
      </settings>
        </sitecore>
    </configuration>
    


  14. 모든 설치가 완료되었으며 이젠 사이트코어에 접속하여 대시보드의 Sitecore Publishing Service 버튼을 클릭하여 실행하여 본다.