Tuesday, November 25, 2014

Alfresco 5.0とSolr 4を手動インストールしてみた(Alfresco 5.0.b以降)

こんにちは。大谷です。

以前、「Alfresco4.2をインストールしてみよう(手動インストール編)」という記事を書いたのですが、先ごろリリースされたAlfresco Community 5.0.bで構成に大きな変更があったので、改めて手動インストールの方法を紹介しようと思います。

※ なお、インストーラを利用したインストールは以前と変わっていませんので、「Alfresco4.0をインストールしてみよう(インストーラ編)」を参照してください。インストーラを使うとウィザードに沿っていくつかの設定項目を入力するだけでAlfrescoがインストールできますので、てっとり早く試してみたい場合はインストーラの利用をお勧めします。

「大きな変更」とはSolr 4への対応のことで、これまでの手順に加えてSolr 4のセットアップが新たに必要になりました。これまでは検索エンジンとしてLuceneを使ったインストール手順を紹介していましたが、Alfresco Community 5.0.bからはLuceneをサポートしなくなっています。なお、本記事では以下のような構成を想定しています。
  • OS : Windows
  • Java : JDK7
  • Alfresco : Alfresco Community 5.0.b
  • アプリケーションサーバ : Tomcat 7
  • RDBMS : MySQL Community Server 5.6
  • Solr 4はAlfrescoと同じTomcatインスタンス上にデプロイ
  • Alfresco - Solr間は非SSL通信


JDKのインストール


  1. こちらのサイトからJDK7をダウンロードします。Alfresco 5.0ではJDK7が必要になります。
  2. ダウンロードしたファイルを実行し、JDKをインストールします。


Tomcatのインストール


  1. Alfresco用のディレクトリを作成します。ここでは、Cドライブ直下にalfresco50bというディレクトリを作成し、以下ではALF_HOMEと表記します(ALF_HOME = C:/alfresco50b)。
  2. Apache TomcatのサイトからTomcat 7をダウンロードします。
  3. ダウンロードしたファイルをALF_HOMEに展開します。展開するとALF_HOME以下にapache-tomcat-<バージョン番号>という名前のディレクトリが作成されますので、このディレクトリをTOMCAT_HOMEと表記します(TOMCAT_HOME = C:/alfresco50b/apache-tomcat-7.0.xx)。


MySQLのインストール


  1. MySQL Developer ZoneからMySQL Community Server 5.6をダウンロードし、インストールします。また、後ほど利用するMySQL Connector/J 5.1(JDBCドライバ)をここからダウンロードします。


Tomcatの設定


  1. Alfresco Community Editionのダウンロードサイトにアクセスし、Alfresco 5.0.b Community -> alfresco-community-5.0.b.zipをダウンロードします。
  2. ダウンロードしたファイルを適当なディレクトリに展開します。このうち、alf_data, amps, bin, solr4ディレクトリをALF_HOMEにコピーし、web_serverディレクトリの中身をTOMCAT_HOMEにコピーします(webapps等既存フォルダへのファイル追加も行われます)。
  3. JDBCドライバをTomcatのクラスパスに配置します。先ほどダウンロードしたMySQL Connector/Jを展開し、mysql-connector-java-5.1.xx-bin.jarを<TOMCAT_HOME>/libにコピーします。
  4. Tomcatの設定を変更します。<TOMCAT_HOME>/conf/catalina.properties のshared.loaderプロパティを以下のように変更します。
  5. shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
  6. <TOMCAT_HOME>/conf/server.xml の8080番ポートのConnector設定を以下のように変更します。AJPを利用する場合は8009番についてもURIEncoding設定を追加します。
  7. <Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"
               connectionTimeout="20000"
               redirectPort="8443" />
  8. <TOMCAT_HOME>/bin/catalina.bat に以下の行を追加してJVMの設定を変更します。JRE_HOMEや最大/最小ヒープサイズ等はPCの設定・スペックに応じて変更してください。alfresco.homeは<ALF_HOME>のパスを指定します。
  9. set JRE_HOME=C:\Program Files\Java\jdk1.7.0_xx\jre
    set JAVA_OPTS=-Xms1024m -Xmx2048m -XX:MaxPermSize=512m -server -Dalfresco.home=C:/alfresco50b -Dcom.sun.management.jmxremote
  10. <ALF_HOME>/solr4/context.xml を <TOMCAT_HOME>/conf/Catalina/localhost/solr4.xml にリネーム/コピーし、環境変数の値を環境に応じて設定します。
  11. <Environment name="solr/home"        type="java.lang.String" value="C:/alfresco50b/solr4" override="true"/>
    <Environment name="solr/model/dir"   type="java.lang.String" value="C:/alfresco50b/alf_data/solr4/model" override="true"/>
    <Environment name="solr/content/dir" type="java.lang.String" value="C:/alfresco50b/alf_data/solr4/content" override="true"/>


データベースの作成


Alfrescoはコンテンツのメタデータをデータベースで管理し、コンテンツのファイル実体をファイルシステムで管理します。データベースについてはAlfrescoが起動時に必要なテーブルを自動生成するため、まずはデータベース(とユーザ)を作成しておくだけで構いません。
  1. コマンドプロンプトで以下のコマンドを実行し、MySQLにログインします。
  2. mysql -u root -p
  3. 以下のコマンドでMySQLにAlfresco用のデータベースを作成します。この例では、データベース名をalfrescoとし、ユーザ名/パスワードもalfresco/alfrescoとなります。
  4. create database alfresco default character set utf8 collate utf8_bin;
    grant all on alfresco.* to 'alfresco'@'localhost' identified by 'alfresco' with grant option;


Solrの設定


  1. <ALF_HOME>/solr4/workspace-SpacesStore/conf/solrcore.properties と <ALF_HOME>/solr4/archive-SpacesStore/conf/solrcore.properties のdata.dir.rootプロパティ(インデックス格納先)とalfresco.secureCommsプロパティ(SSL通信か否か)を以下のように変更します。パスは環境に応じて変更してください。
  2. data.dir.root=C:/alfresco50b/alf_data/solr4/index
    alfresco.secureComms=none


外部ツールのインストール


次に、Alfrescoが利用する外部ツールのインストールを行います。ここではLibreOffice, ImageMagick, Ghostscript, SWFTools(pdf2swf)について説明します。この4つのツールの用途は以下のとおりですので、必要に応じてインストール、設定を行ってください。
  • LibreOffice : Alfrescoでファイルフォーマット変換を行う際に使います。PDF変換機能などを利用する場合に設定する必要があります。(手元の環境では少し古い4.1.0.4を利用)
  • ImageMagick : コンテンツのサムネイルやプレビューを生成する際に使います。(手元の環境では6.8.6.9を利用)
  • Ghostscript : ImageMagickが間接的に利用します。(手元の環境では9.10を利用)
  • SWFTools : 一部コンテンツのプレビューを生成する際に使います。(手元の環境では0.9.0を利用)


Alfrescoの設定


続いて、Alfrescoの設定を行います。大きく分けると、データベース接続設定、ファイルシステムの設定、外部ツール連携設定の3つがあります。
  1. <TOMCAT_HOME>/shared/classes/alfresco-global.properties.sample をalfresco-global.propertiesにリネームします。以下のプロパティ設定は全てalfresco-global.propertiesに行います。
  2. データベース接続設定、ファイルシステムの設定について、以下のように設定します(全てデフォルトでコメントアウトされているので、コメントアウトを外して環境に合わせて設定変更してください)。
  3. #
    # Sample custom content and index data location
    #
    dir.root=C:/alfresco50b/alf_data
    
    #
    # Sample database connection properties
    #
    db.username=alfresco
    db.password=alfresco
    
    #
    # MySQL connection
    #
    db.driver=org.gjt.mm.mysql.Driver
    db.url=jdbc:mysql://localhost/alfresco?useUnicode=yes&characterEncoding=UTF-8
  4. 検索エンジンとしてSolr 4を使い、Alfrescoとの通信を非SSL化するために以下の設定を追記します。
  5. index.subsystem.name=solr4
    solr.secureComms=none
  6. 外部ツールとの連携について、環境に合わせて以下のように設定します(コメントアウトされているものもあるので適宜コメントアウトを外すなりして設定変更してください)。
  7. ooo.exe=C:/Program Files (x86)/LibreOffice 4/program/soffice
    ooo.enabled=true
    img.root=C:/Program Files/ImageMagick-6.8.6-Q16
    img.exe=${img.root}/convert.exe
    img.gslib=C:/Program Files/gs/gs9.10/lib
    swf.exe=c:/SWFTools/pdf2swf.exe


Alfrescoの初回起動と追加の設定


最後に、一度Alfrescoを起動してWARファイルを展開し、その展開されたファイルの設定を修正します。
  1. <TOMCAT_HOME>/bin/startup.bat を実行してAlfrescoを起動します。
  2. コンソールの出力内容(もしくはalfresco.logやcatalina.out)をチェックします。初回起動時はデータベースにテーブルを追加する作業やwarファイルを展開する作業がありますので時間がかかりますが、最終的にはExceptionが断続的に出力される状態となります(一部SSL通信の設定が残っているため)
  3. <TOMCAT_HOME>/bin/shutdown.bat を実行してAlfrescoを停止します。
  4. <TOMCAT_HOME>/webapps/alfresco/WEB-INF/web.xml を編集し、SSL設定に関する以下の箇所をコメントアウトします。
  5. <security-constraint>
       <web-resource-collection>
          <web-resource-name>SOLR</web-resource-name>
          <url-pattern>/service/api/solr/*</url-pattern>
       </web-resource-collection>
    
       <auth-constraint>
          <role-name>repoclient</role-name>
       </auth-constraint>
    
       <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
    </security-constraint>
    
    <security-constraint>
       <web-resource-collection>
          <web-resource-name>SOLR</web-resource-name>
          <url-pattern>/s/api/solr/*</url-pattern>
       </web-resource-collection>
    
       <auth-constraint>
          <role-name>repoclient</role-name>
       </auth-constraint>
    
       <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
    </security-constraint>
    
    <security-constraint>
       <web-resource-collection>
          <web-resource-name>SOLR</web-resource-name>
          <url-pattern>/wcservice/api/solr/*</url-pattern>
       </web-resource-collection>
    
       <auth-constraint>
          <role-name>repoclient</role-name>
       </auth-constraint>
    
       <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
    </security-constraint>
    
    <security-constraint>
       <web-resource-collection>
          <web-resource-name>SOLR</web-resource-name>
          <url-pattern>/wcs/api/solr/*</url-pattern>
       </web-resource-collection>
    
       <auth-constraint>
          <role-name>repoclient</role-name>
       </auth-constraint>
    
       <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
    </security-constraint>
    
    <login-config>
       <auth-method>CLIENT-CERT</auth-method>
       <realm-name>Repository</realm-name>
    </login-config>
    
    <security-role>
      <role-name>repoclient</role-name>
    </security-role>
  6. <TOMCAT_HOME>/webapps/solr4/WEB-INF/web.xml を編集し、SSL設定に関する以下の箇所をコメントアウトします。
  7. <security-constraint>
        <web-resource-collection>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>repository</role-name>
        </auth-constraint>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
    
    <login-config>
        <auth-method>CLIENT-CERT</auth-method>
        <realm-name>Solr</realm-name>
    </login-config>
    
    <security-role>
       <role-name>repository</role-name>
    </security-role>


動作確認


以上で設定は完了です。Alfrescoを起動して動作確認してみましょう。

  1. <TOMCAT_HOME>/bin/startup.bat を実行してAlfrescoを起動します。
  2. コンソールの出力内容(もしくはalfresco.logやcatalina.out)をチェックします。正常に起動すると、コンソールもしくはログに"Server startup in xxxxxx ms"と表示されます。
  3. 、ブラウザで http://localhost:8080/share にアクセスします。管理者ユーザのデフォルトユーザ名/パスワードは、admin/adminになりますのでそれを入力します。

  4. ログインに成功し、ユーザダッシュボード画面が表示されたら動作確認完了です!

  5. 念のため、Solrにもアクセスしてみましょう。URLは http://localhost:8080/solr4 です。以下の画面が表示されたらOKです。

以上がAlfresco 5.0(5.0.b以降)をインストールする手順となります。本番環境構築の際には、Solr 4の別建てやAlfresco - Solr間のSSL化など、さらに考慮する必要のある事項がありますが、本質的にはこの手順でいけると思います。

Alfresco 5.0の新機能については本ブログの記事「Alfresco 5.0.bの機能紹介」をチェックしてみてください。また、基本的な使い方については「Alfresco 4.2の使い方 - ユーザ管理・グループ管理」、「Alfresco 4.2の使い方 - リポジトリとサイトの準備をしよう」あたりが参考になるかと思いますので是非ご一読ください。

No comments: