null Alfresco Community Edition 7.1をディストリビューションzipからインストールする

こんにちは。てらしたです。先日、Alfresco Community Edition 7.1がリリースされたことをご紹介する記事で、Docker Composeを使用して起動する方法をご紹介しました。今回はDockerを使わずにディストリビューションzipからインストールする方法をご紹介します。

今回ご紹介する手順はVirtualBoxでCentOS 7.9のVMを作成して試しています。また、使用したソフトウェアとバージョンは以下のとおりです。

  • Alfresco Community Edition 7.1 (alfresco-content-services-community-distribution-7.1.0.1.zip)
  • Alfresco Search Services 2.0.2 (alfresco-search-services-2.0.2.zip)
  • OpenJDK 11.0.13
  • PostgreSQL 13.4
  • Tomcat 9.0.54
  • ActiveMQ 5.16.3

OSや各ソフトウェアのバージョンについては有償版のSuppoted Platformsに載っているバージョンとメジャーバージョンを合わせておけば問題になることは少ないと思います。

本記事の手順を参照していただくにあたって、いくつか注意点があります。

  1. Alfrescoを起動するための最低限の手順を簡略化してご紹介するために全てのコマンドをrootで実行しています。本番環境で使用する場合は起動用ユーザを作成してディレクトリやファイルに適切に権限を付与するといった対応が必要になります。
  2. AlfrescoとSolrを相互認証して通信をSSLで暗号化する手順は省略しています。
  3. サムネイル/プレビューの作成やコンテンツ変換、メタデータの抽出等に使用されるLocal Transformation Serviceの設定手順は省略しています。Alfrescoの内部で処理をするLegacy Transformation Serviceが7.0で廃止されたため、本記事の手順に従ってインストールしてもサムネイル/プレビューの作成等は機能しません(Local Transformation Serviceの設定方法については今後ブログでご紹介する予定です)。

なお、ざっくりでいいからAlfrescoを起動して試せればよいという方は本記事の手順でも十分ではないかと思いますが、非常に詳細なインストール手順を紹介している記事があったため、しっかり構築したいという方は以下の記事を参照していただくのがよいと思います。上記の注意点の1と3についてもこの記事の手順では解消されています。この記事ではAlfrescoのバージョンが7.0ですが、7.1でも適用できると思います。

Setup ACS-7.0.0, ASS-2.0.1 and Local Transformation Service using distribution package step by step

前置きが長くなりましたが、Alfresco Community Edition 7.1をディストリビューションzipからインストールする手順をご紹介します。

準備

JDKとPostgreSQLを環境に合わせてインストールしておいてください。インストール方法は検索すればたくさん出てくると思うのでここでは割愛します。

Alfresco用のDBの作成

psqlコマンドを実行してAlfresco用のデータベースとロールを作成します。パスワードを変更した場合は、後述の手順でalfresco-global.propertiesのdb.passwordというプロパティを合わせて変更しておく必要があります。

su - postgres
psql
create database alfresco encoding 'utf8';
create role alfresco LOGIN password 'alfresco';
grant all on database alfresco to alfresco;

ActiveMQのインストール

公式サイトからダウンロードしたパッケージを適当なディレクトリ(ここでは /opt )に展開し、起動します。

cd /opt/
tar xzvf <download_dir>/apache-activemq-5.16.3-bin.tar.gz
cd apache-activemq-5.16.3/bin/
./activemq start

ブラウザで以下のURLにアクセスし、デフォルトのユーザID/バスワード(admin/admin)を入力してログインします。ActiveMQのコンソール画面が表示されればOKです。

http://localhost:8161/admin

Tomcatのインストール

公式サイトからダウンロードしたパッケージを適当なディレクトリ(ここでは /opt/alfresco)に展開します。また、ここでは扱いやすいようにディレクトリ名をtomcatにリネームしていますが、元の名前のままでも問題ありません。

cd /opt
mkdir alfresco
cd alfresco
tar xzvf <download_dir>/apache-tomcat-9.0.54.tar.gz
mv apache-tomcat-9.0.54 tomcat

Alfrescoをインストールする前に一度Tomcatが問題なく起動できるか確認しておきます。

tomcat/bin/startup.sh

ブラウザで以下のURLを開き、Tomcatのコンソール画面が表示されればOKです。

http://localhost:8080

この後、Alfrescoのインストールを行うため一旦Tomcatを停止します。

tomcat/bin/shutdown.sh

Alfrescoのインストール

記事執筆時点(2021/12/01)ではAlfrescoの公式サイトからCommunity Editionをダウンロードしようとすると7.0がダウンロードされてしまうので、7.1のリリースノートのコメント欄に書かれていた以下のURLからディストリビューションzipをダウンロードします。

https://download.alfresco.com/cloudfront/release/community/7.1.0-build-2648/alfresco-content-services-community-distribution-7.1.0.zip

ダウンロードしたzipファイルを適当なディレクトリに展開します。ここではこのディレクトリを<distribution_zip_dir>とします。

cd <distribution_zip_dir>
unzip alfresco-content-services-community-distribution-7.1.0.1.zip

web-serverのデプロイ

Tomcatにもともと入っていたwebapps配下のディレクトリ/ファイルを全て削除し、<distribution_zip_dir>/web-server/webappsの中身をコピーします。

rm -r /opt/alfresco/tomcat/webapps/*
cp <distribution_zip_dir>/web-server/webapps/* /opt/alfresco/tomcat/webapps/

<distribution_zip_dir>/web-server配下のconf、lib、sharedについてもtomcatディレクトリ配下にコピーします。

cp -a <distribution_zip_dir>/web-server/conf/* /opt/alfresco/tomcat/conf/
cp <distribution_zip_dir>/web-server/lib/postgresql-42.2.20.jar /opt/alfresco/tomcat/lib/
cp -a <distribution_zip_dir>/web-server/shared /opt/alfresco/tomcat/

今回は使用しませんが、カスタマイズモジュールをデプロイするためのディレクトリを作成します。

mkdir -p /opt/alfresco/modules/platform
mkdir -p /opt/alfresco/modules/share

Tomcatの設定ファイルを編集します。

vim /opt/alfresco/tomcat/conf/catalina.properties

このファイルのshared.loaderを以下のように変更して保存します。

shared.loader=${catalina.base}/shared/classes

AMPの適用

<distribution_zip_dir>配下のwebapps以外のディレクトリも/opt/alfresco配下にコピーします。

cp -a <distribution_zip_dir>/amps /opt/alfresco/
cp -a <distribution_zip_dir>/bin /opt/alfresco/
cp -a <distribution_zip_dir>/licenses /opt/alfresco/

alfresco-share-services.ampをalfresco.warに適用します。

chmod +x /opt/alfresco/bin/*.sh
/opt/alfresco/bin/apply_amps.sh

alfresco-share-services.ampが適用された新しいalfresco.warが作成され、元のalfresco.warのバックアップが作成されていればOKです。

alfresco-global.propertiesの設定

ディストリビューションzipからコピーしたalfresco-global.properties.sampleをalfresco-global.propertiesとしてコピーし、プロパティを以下のように編集して保存します。

cd /opt/alfresco/tomcat/shared/classes/
cp alfresco-global.properties.sample alfresco-global.properties
vim alfresco-global.properties
# 以下の5つはコメントアウトを外して必要に応じて値を修正する
# alfresco用のDBを作成する際にパスワードを変更していた場合はdb.passwordの値を合わせておく
dir.root=/opt/alfresco/alf_data

db.username=alfresco
db.password=alfresco

db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://localhost:5432/alfresco

# 以下の4つは追記する
index.subsystem.name=solr6
solr.secureComms=none
solr.port=8983

local.transform.service.enabled=false

上記のsolr.secureComms=noneはAlfresco - Solr間の通信を暗号化しないという設定で、今回は手順の簡略化のために暗号化しない設定にしています。また、local.transform.service.enabled=falseはLocal Transformation Serviceを無効化する設定で、今回の手順ではLocal Transformation Serviceの設定手順を省略しているため入れてあります。

metadata keystoreの設定

バージョン6.2まではここまでで最低限の設定は完了だったはずですが、7.1では(おそらく7.0でも)もう1つ設定する必要があります。Alfrescoのこちらのドキュメントによると、以下の通りmatadata keystoreを自分で生成して設定しないといけなくなったようです。

The default configuration of Content Services contained a “metadata” keystore, but it was insecure if you did not regenerate it with your own password. This default keystore has been removed. To ensure your installation is secure you need to regenerate the keystore and configure the new one with the properties above.

上記によると本来であればmetadata keystoreを生成するところからやるべきなんですが、もともとContent Servicesの中に含まれていたmetadata keystoreがディストリビューションzipの中に入っているので今回はそれを使います。まず、ディストリビューションzipの中のmetadata keystoreを適当なディレクトリにコピーします(ここでは、/opt/alfresco/tomcat/shared/classes/alfresco/extension/keystore)。

mkdir /opt/alfresco/tomcat/shared/classes/alfresco/extension/keystore
cp -a <distribution_zip_dir>/keystore/metadata-keystore/ /opt/alfresco/tomcat/shared/classes/alfresco/extension/keystore/

次に、catalina.shにJAVA_TOOL_OPTIONSを設定します。

vim /opt/alfresco/tomcat/bin/catalina.sh
export JAVA_TOOL_OPTIONS="-Dencryption.keystore.type=JCEKS -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding -Dencryption.keyAlgorithm=DESede -Dencryption.keystore.location=/opt/alfresco/tomcat/shared/classes/alfresco/extension/keystore/metadata-keystore/keystore -Dmetadata-keystore.password=mp6yc0UD9e -Dmetadata-keystore.aliases=metadata -Dmetadata-keystore.metadata.password=oKIWzVdEdA -Dmetadata-keystore.metadata.algorithm=DESede"

起動確認

以上でAlfresco Search Services以外の設定は完了です。ここまでの設定が正しくできているかどうか確認するために一度Alfrescoを起動してみます。

/opt/alfresco/tomcat/bin/startup.sh

起動したらブラウザで以下のURLにアクセスし、ユーザID/パスワード(admin/admin)を入力してログインします。

http://localhost:8080/share

Alfresco Search Servicesをインストールしていないので検索はできませんが、サンプルサイトの文書ライブラリ等を閲覧することができればここまでの設定はOKです。一旦Alfrescoを停止します。

/opt/alfresco/tomcat/bin/shutdown.sh

ちゃんとプロセスが終了してくれないことがあるので、psコマンドで確認して終了していなかったらkillコマンドで終了させてください。

Alfresco Search Servicesのインストール

Alfresco Search Services 2.0.2を以下のURLからダウンロードします。

https://download.alfresco.com/cloudfront/release/community/SearchServices/2.0.2/alfresco-search-services-2.0.2.zip

ダウンロードしたzipファイルをインストール先のディレクトリ(ここでは /opt/alfresco)に展開します。

cd /opt/alfresco
unzip <download_dir>/alfresco-search-services-2.0.2.zip

Alfresco-Solr間の通信を暗号化する手順を省略するために、solrcore.propertiesのテンプレートを開きalfresco.secureComms=httpsalfresco.secureComms=noneに変更します。

vim /opt/alfresco/alfresco-search-service/solrhome/templates/rerank/conf/solrcore.properties
#alfresco.secureComms=https
alfresco.secureComms=none

複数の言語で検索する必要がある場合は、shared.propertiesで以下の設定のコメントアウトを外します。

vim /opt/alfresco/alfresco-search-service/solrhome/conf/shared.properties
alfresco.cross.locale.datatype.0={http://www.alfresco.org/model/dictionary/1.0}text
alfresco.cross.locale.datatype.1={http://www.alfresco.org/model/dictionary/1.0}content
alfresco.cross.locale.datatype.2={http://www.alfresco.org/model/dictionary/1.0}mltext

また、サジェストを有効化する場合は必要に応じて同ファイルの以下の設定のコメントアウトを外します。

alfresco.suggestable.property.0={http://www.alfresco.org/model/content/1.0}name
alfresco.suggestable.property.1={http://www.alfresco.org/model/content/1.0}title
alfresco.suggestable.property.2={http://www.alfresco.org/model/content/1.0}description
alfresco.suggestable.property.3={http://www.alfresco.org/model/content/1.0}content

以上で設定は完了です。初回の起動ではコアを作成するためのオプション-a "-Dcreate.alfresco.defaults=alfresco,archive"を付けて起動します。

/opt/alfresco/alfresco-search-service/solr/bin/solr start -a "-Dcreate.alfresco.defaults=alfresco,archive" -force

上記のコマンドの末尾に付けてある-forceオプションは、rootで起動しようとするとエラーになってroot以外のユーザで起動するか-forceオプションを付けろと怒られるので付けています。本来はroot以外のユーザで起動するように設定するのが正しい手順になります。

なお、2回目以降はコアを作成するオプションを省いて以下のコマンドで起動します。

/opt/alfresco/alfresco-search-service/solr/bin/solr start -force

起動したらブラウザで以下のURLを開き、Solrのコンソール画面が表示されればOKです。

http://localhost:8983/solr

Alfrescoを起動し、右上の検索ボックスから検索を実行して検索結果が返ってくれば成功です。

以上、ディストリビューションzipからAlfrescoをインストールする必要最低限の手順をご紹介しました。ちょっと試してみるだけであればDocker Composeを使うのが圧倒的に楽ですが、Dockerが使えない環境だったりする場合はこの手順を参考に構築してみてください。

関連記事
install
install
install

RANKING
2020.10.12
2020.11.19
2020.12.23
2020.10.05
2020.11.25