Alfrescoのインストール作業をコマンド単位で丁寧に記載します

  • 186
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

Alfrescoとは

AlfrescoはCMS(コンテンツマネジメントシステム)です。
詳しくは前回記事を参考にしてください。
脱ファイルサーバ!!個人でも会社でも使えるOSSのドキュメント管理システム!その名も「Alfresco」!

今回の構成

今回は以下のような構成でいきます!
スクリーンショット 2015-07-19 7.29.34.png

  • Alfrescoの5.0.dは2015/07/19現在の最新です。
  • DBをMySQLにしたのは、他のOSSで使っているので、同居できるからです。
  • OSに関してはもはや個人の好みでしかないですね。
  • UBUNTUが好きです。
  • Nginxを入れる理由は、コンテンツキャッシュが優秀なのと、アクセス制御やログを取ろうかなと思ったからです。

ubuntu環境整備

ホスト名の変更

  • hosts編集
/etc/hosts
127.0.0.1 localhost
127.0.0.1 [hostname] [hostname].localdomain

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

  • hostname編集
/etc/hostname
[hostname] 

  • hostname確認
$ hostname

[hostname]

リポジトリアップデート

  • aptのアップデートとaptitudeのインストール
$ sudo apt-get update
$ sudo apt-get install -y aptitude
$ sudo aptitude -y update

MySQL

  • Alfrescoで使用するDBをはじめに作成します

参考:ubuntuにdebパッケージでMySQL5.6をインストール・アンインストール

インストール

今回は5.6.19をインストールする

  • インストール
$ sudo aptitude install -y mysql-server-5.6

インストールの途中でrootパスワードを求められるので、「[pass]」を入力

  • 確認
# mysql -V

mysql  Ver 14.14 Distrib 5.6.19, for debian-linux-gnu (x86_64) using  EditLine wrapper

MySQL設定

  • my.cnf編集
$ sudo vim /etc/mysql/my.cnf

slow_query_log_file     = /var/log/mysql/mysql-slow.log
long_query_time = 60


bind-address        = 0.0.0.0

................
character-set-server    = utf8
default-storage-engine  = InnoDB
innodb_buffer_pool_size = 512M
innodb_log_file_size    = 128M
innodb_log_files_in_group       = 2
innodb_flush_log_at_trx_commit  = 1
innodb_file_per_table   = 1
innodb_buffer_pool_dump_at_shutdown     = ON
innodb_buffer_pool_load_at_startup      = ON

mysqlユーザのHOME作成

起動時のエラーをなくすために必要な作業

  • HOMEディレクトリ作成
$ sudo mkdir /home/mysql
  • 権限付与
$ sudo chown mysql /home/mysql/
  • mysqlにHOMEディレクトリを追加
$ sudo usermod -d /home/mysql/ mysql
  • 確認
$ sudo getent passwd mysql

mysql:x:103:106:MySQL Server,,,:/home/mysql/:/bin/false

MySQLの起動

  • 起動
$ sudo /etc/init.d/mysql start

テーブルの設定

  • MySQLにログイン
mysql -u root -p

パスワード入力

  • テーブル確認
mysql> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
  • データベース作成
mysql> create database alfresco character set utf8;
Query OK, 1 row affected (0.00 sec)
  • データベースの所有者設定
mysql>  grant all privileges on alfresco.* to 'alfresco'@'%' identified by '[pass]' with grant option;
Query OK, 0 rows affected (0.00 sec)
  • ユーザ確認
mysql> SELECT host,user FROM mysql.user;

+--------------+------------------+
| host         | user             |
+--------------+------------------+
| %            | alfresco         |
| 127.0.0.1    | root             |
| ::1          | root             |
| c8a18cfc871b | root             |
| localhost    | debian-sys-maint |
| localhost    | root             |
+--------------+------------------+
6 rows in set (0.00 sec)
  • 権限確認
mysql> SHOW GRANTS FOR alfresco;

+-----------------------------------------------------------------------------------------------------+
| Grants for alfresco@%                                                                                   |
+-----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON **.** TO 'alfresco'@'%' IDENTIFIED BY PASSWORD '***************' |
| GRANT ALL PRIVILEGES ON `alfresco`.* TO 'alfresco'@'%' WITH GRANT OPTION                             |
+-----------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
  • データベース確認
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| alfresco        |
+--------------------+
4 rows in set (0.00 sec)

MySQLドライバー

  • ダウンロード
$ sudo wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.34.tar.gz -P /opt

こちらも説明の便宜上/optに配置

  • 解凍
$ tar -xzvf mysql-connector-java-5.1.34.tar.gz

Alfresco

ダウンロード

公式ページからCommunityEditionをダウンロードして任意のディレクトリに配置
今回は説明の便宜上、/opt/に配置したものとする

LibreOffice依存ライブラリのインストール

$ sudo apt-get install -y libice6 libsm6 libxt6 libxrender1 libfontconfig1 libcups2

インストール

  • 実際にインストールする前に何をインストールするか決めましょう。

  • 今回は以下のようにしました。

項目 インストールするか 説明
Java ⚪︎ javaが入っているならいりません。
PostgreSQL × MySQLを使うので、インストールしない
Alfresco ⚪︎ もちろん入れる
Solr1 × Solr4が選択できるので、これは入れない
Solr4 ⚪︎ 検索エンジンがなければ入れる
SharePoint ⚪︎ WindowsでのOffice編集がいい感じになるからいれる。
Web Quick Start ⚪︎ ドキュメントの共有に使える。
Google Docsの統合 × GoogleDocでオンライン編集ができる!でも個人的にGoogleDocは使わないので入れない。便利なので、インストール推奨
LibreOffice ⚪︎ Officeのプレビューで必要
  • インストーラー起動
$ sudo /opt/alfresco-community-5.0.d-installer-linux-x64.bin

Language Selection

Please select the installation language
[1] English - English
[2] French - Francais
[3] Spanish - Espanol
[4] Italian - Italiano
[5] German - Deutsch
[6] Japanese - 日本語
[7] Dutch - Nederlands
[8] Russian - Русский
[9] Simplified Chinese - ?体中文
[10] Norwegian - Norsk bokmal
[11] Brazilian Portuguese - Portugues Brasileiro
Please choose an option [1] : 6   #← 日本語がいいよね。。
----------------------------------------------------------------------------
ようこそ Alfresco Community セットアップウィザードへ。

----------------------------------------------------------------------------
インストールの種類

[1] 簡易 - サーバーをデフォルトの設定でインストールします。
[2] アドバンスド - サーバーのポートとサービスのプロパティを設定します。: 追加でインストールするコンポーネントも選択できます。
オプションを選択してください [1] : 2 #← カスタマイズするので、2

----------------------------------------------------------------------------
インストールするコンポーネントを選択してください。準備ができたら“次へ“をクリックしてください。

Java [Y/n] :Y 

PostgreSQL [Y/n] :n

Alfresco : Y (Cannot be edited)

Solr1 [y/N] : N

Solr4 [Y/n] :Y

SharePoint [Y/n] :Y

Web Quick Start [y/N] : N

Google Docsの統合 [Y/n] :n

LibreOffice [Y/n] :Y

上記選択部分が正しいことを確認してください。 [Y/n]: Y

----------------------------------------------------------------------------
インストールフォルダ

Alfresco Communityをインストールするフォルダを選択してください。

インストール先フォルダ: [/opt/alfresco]: #← 便宜上、/opt/alfrescoにインストール

----------------------------------------------------------------------------
データベースの設定

JDBCのURL: [jdbc:mysql://localhost:3306/alfresco?useUnicode=yes&characterEncoding=UTF-8]: #← MySQLのドライバーはこのように設定

JDBCドライバー: [org.gjt.mm.mysql.Driver]:  #← こちらもこのまま貼り付けて設定してください。

データベース名: [alfresco]:  #← 今回作成したDB名

ユーザー名: [alfresco]: #← 今回作成したユーザ名

パスワード: [********] : #← 今回作成したパスワード
確認: [********] :
----------------------------------------------------------------------------
Tomcatのポート設定

Tomcatで使用する設定パラメータを入力してください。

Webサーバードメイン: [127.0.0.1]:  #← ポート各自設定

Tomcatサーバー用ポート: [8080]: #← ポート各自設定

Tomcatのシャットダウン用ポート: [8005]: #← ポート各自設定

TomcatのSSLポート [8443]: #← ポート各自設定

TomcatのAJPポート: [8009]: #← ポート各自設定

----------------------------------------------------------------------------
Alfresco FTPのポート

統合されたAlfresco FTPサーバーに使用するポート番号を選択してください。

ポート: [21]: #← ポートは各自設定

----------------------------------------------------------------------------
管理者パスワード

Alfresco管理者アカウントのパスワードを入力してください。

管理者パスワード: [**********] : #← 「admin」ユーザのパスワード
パスワードの再入力: [**********] :
----------------------------------------------------------------------------
Alfresco SharePointのポート

SharePointプロトコル用のポート番号を選択してください。

ポート: [7070]:  #← ポートは各自設定

----------------------------------------------------------------------------
サービスとしてインストール

必要に応じて、Alfresco Communityをサービスとして登録できます。サービスとして登録すると、コンピュータを起動するたびに、Alfresco 
Communityが自動的に開始されます。

Alfresco Communityをサービスとしてインストールしますか? [Y/n]: Y #← 特にこだわりがなければサービスにしましょう。


----------------------------------------------------------------------------
LibreOfficeサーバーのポート

LibreOFFICEサーバーがデフォルトでリッスンするポートを入力してください。

LibreOfficeサーバーのポート [8100]: #← ポートは各自設定

----------------------------------------------------------------------------
お使いのコンピュータに Alfresco Community をインストールする準備が整いました。

続けますか? [Y/n]: Y 
  • MySQLドライバーの設置
$ sudo cp /opt/mysql-connector-java-5.1.34/mysql-connector-java-5.1.34-bin.jar /opt/alfresco/tomcat/lib/

これでインストール作業は完了

ブラウザで http://localhost:8080/share にアクセスできるばず。

Nginx

リバプロとファイルキャッシュのため、Nginxをいれる。
このレイヤーでログをとったり、アクセス制御できるので、便利

インストール

参考
How To Install The Latest Version Of Nginx On Ubuntu 14.10

  • デフォルトパッケージのバージョン確認
$ sudo aptitude show nginx

Package: nginx                           
State: not installed
Version: 1.4.6-1ubuntu3.2
Priority: optional
Section: web
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all

1.4.6は低すぎるので、最新を探す

  • keyのダウンロード
$ cd /tmp/ && wget http://nginx.org/keys/nginx_signing.key
  • apt設定ファイル作成
/etc/apt/sources.list.d/nginx.list

deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx
  • aptアップデート
$ sudo aptitude update
  • バージョン確認
$ sudo aptitude show nginx

Package: nginx                           
State: not installed
Version: 1.9.0-1~trusty
Priority: optional
Section: httpd
Maintainer: Sergey Budnevitch <sb@nginx.com>
Architecture: amd64
Uncompressed Size: 1,105 k
Depends: libc6 (>= 2.14), libpcre3, libssl1.0.0 (>= 1.0.1), zlib1g (>= 1:1.2.0), lsb-base, adduser
Provides: httpd
Provided by: nginx-core, nginx-extras, nginx-full, nginx-light, nginx-naxsi
Description: high performance web server
 nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server.
Homepage: http://nginx.org

完璧です

  • インストール
$ sudo aptitude install -y nginx
  • バージョン確認
$  nginx -v

nginx version: nginx/1.9.0

nginxの設定は長くなるので、省略

参考記事を貼っておきます。
quota exceed msg when no quotas are set
NGINXのLOCATION設定について、優先順位の基本と意外な罠
インストール nginx + OpenSSL(新規・更新)
nginxの設定、その4 - TLS/SSLの設定

Alfrescoの設定

再起動

設定反映のためにはもちろん再起動が必要なので、先に再起動の方法を書きます。
Solrのインデックス作成に時間がかかるので、再起動時間及び、起動後利用できるようになるまで時間がかかる。

$ sudo service alfresco restart

LDAP設定

参考
AlfrescoのLDAP連携

/opt/alfresco/tomcat/shared/classes/alfresco-global.properties

ldap.authentication.userNameFormat=%s@[domain]
ldap.authentication.java.naming.provider.url=ldap://[domain]:389
ldap.authentication.defaultAdministratorUserNames=Administrator,alfresco
ldap.synchronization.java.naming.security.principal=[user]@[domain]
ldap.synchronization.java.naming.security.credentials=[pass]

ファイルの後ろの方にこんな感じで書けばいける

メール設定

  • hostを編集(メールのURLに関連するので。)
/opt/alfresco/tomcat/shared/classes/alfresco-global.properties

alfresco.context=alfresco
#alfresco.host=127.0.0.1 ← コメントアウト
alfresco.host=[Domain] #← ドメイン記入。なければIP
alfresco.port=443 #← HTTPSにした
alfresco.protocol=https #← HTTPSにした

share.context=share
#share.host=127.0.0.1 #← コメントアウト
share.host=[Domain] #← ドメイン記入。なければIP
share.port=443 #← HTTPSにした
share.protocol=https #← HTTPSにした

  • メール設定の追加
/opt/alfresco/tomcat/shared/classes/alfresco-global.properties

mail.host=[fqdn] #← メールサーバ
mail.port=25
mail.username=[user]
mail.password=[pass]
mail.encoding=UTF-8
mail.from.default=[address]
mail.from.enabled=false
mail.smtp.auth=false
mail.smtp.timeout=30000

Libre Office設定

この設定はやらないとうまいことOfficeのプレビューができない

  • 設定ファイル編集
/opt/alfresco/libreoffice/scripts/libreoffice_ctl.sh

# Libre Office
SOFFICE_PATH="/opt/alfresco/libreoffice/program"
SOFFICE_PORT="8100"
SOFFICEBIN=/opt/alfresco/libreoffice/program/.soffice.bin
SOFFICEWRAPPER=/opt/alfresco/libreoffice/program/soffice.bin
#SOFFICE="$SOFFICEWRAPPER --nofirststartwizard --nologo --headless --accept=socket,host=localhost,port=$SOFFICE_PORT\;urp\;StarOffice.ServiceManager"   #← コメントアウト
SOFFICE="$SOFFICEWRAPPER --nofirststartwizard --nologo --headless --accept=socket,host=localhost,port=$SOFFICE_PORT;urp;StarOffice.ServiceManager" #← 追加
SOFFICE_STATUS=""
  • ファイル名変更
$ sudo cp /opt/alfresco/libreoffice/scripts/libreoffice_ctl.sh /opt/alfresco/libreoffice/scripts/ctl.sh
  • 依存ライブラリインストール
$ sudo aptitude install -y libxinerama1 libcups2 libdbus-glib-1-2 libfontconfig1

データディレクトリの変更(必要であれば。)

1つのディスクにMySQLもファイルデータもSolrのインデックスも置いちゃえば、バックアップが簡単でいいよねw
ということで、全て寄せる。これはやらなくてもいい作業です。
今回は/dataという場所にディスクをマウントして、ディレクトリを作成したという前提で話を進めていきます。

  • Alfrescoの停止
$ sudo service alfresco stop
  • MySQLの停止
$ suo service mysql stop

データの移行を行うので、サービスの停止はお忘れなく

データの移行

$ sudo cp -a /opt/alfresco/alf_data/ /data/

Alfresco

  • ファイル場所の設定変更
/opt/alfresco/tomcat/shared/classes/alfresco-global.properties

#dir.root=/opt/alfresco/alf_data
dir.root=/data/alf_data

Solr

  • Rootディレクトリ場所設定変更
/opt/alfresco/tomcat/conf/Catalina/localhost/solr4.xml

<?xml version="1.0" encoding="utf-8"?>
<Context debug="0" crossContext="true">
  <Environment name="solr/home"        type="java.lang.String" value="/data/solr4" override="true"/>
  <Environment name="solr/model/dir"   type="java.lang.String" value="/data/alf_data/solr4/model" override="true"/>
  <Environment name="solr/content/dir" type="java.lang.String" value="/data/alf_data/solr4/content" override="true"/>
</Context>

  • アーカイブディレクトリ場所設定変更
/opt/alfresco/solr4/archive-SpacesStore/conf/solrcore.properties

#
# solrcore.properties - used in solrconfig.xml
#
# data is in ${data.dir.root}/${data.dir.store} 

#data.dir.root=/opt/alfresco/alf_data/solr4/index
data.dir.root=/data/alf_data/solr4/index
data.dir.store=archive/SpacesStore
enable.alfresco.tracking=true
  • ワークスペース場所設定変更
/opt/alfresco/solr4/workspace-SpacesStore/conf/solrcore.properties

#
# solrcore.properties - used in solrconfig.xml
#
# data is in ${data.dir.root}/${data.dir.store} 

#data.dir.root=/opt/alfresco/alf_data/solr4/index
data.dir.root=/data/alf_data/solr4/index
data.dir.store=workspace/SpacesStore
enable.alfresco.tracking=true
  • server.xml編集
/opt/alfresco/tomcat/conf/server.xml

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" URIEncoding="UTF-8" protocol="AJP/1.3" redirectPort="8443" />

    <Connector port="8443" URIEncoding="UTF-8" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
               maxThreads="150" scheme="https" keystoreFile="/data/alf_data/keystore/ssl.keystore" keystorePass="kT9X6oe68t" keystoreType="JCEKS"
 secure="true" connectionTimeout="240000" truststoreFile="/data/alf_data/keystore/ssl.truststore" truststorePass="kT9X6oe68t" truststoreType="JCEKS"
               clientAuth="want" sslProtocol="TLS" allowUnsafeLegacyRenegotiation="true" maxHttpHeaderSize="32768" />

MySQL

参考
Ubuntu の MySQL を標準以外のディレクトリで動かす
AppArmor を使ってみる

ubuntuは実ファイルをそのまま移行するだけだとダメらしいね

  • データ格納場所設定変更
/etc/mysql/my.cnf

#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
#datadir                = /var/lib/mysql
datadir         = /data/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
  • 権限設定
/etc/apparmor.d/local/usr.sbin.mysqld

# Site-specific additions and overrides for usr.sbin.mysqld.
# For more details, please see /etc/apparmor.d/local/README.

/data/mysql/ r,
/data/mysql/** rwk,

  • apparmor再起動
$ sudo service apparmor restart
  • MySQL起動
$ sudo service mysql start
  • 元のディレクトリをみているものがないことを確認
$ mysql -uroot -p -e "show variables" | grep /var/lib

ログファイルの出力先変更

デフォルトだとAlfrescoのホームディレクトリに吐かれてしまって、邪魔なので。

  • ログファイル出力先のディレクトリ作成
$ sudo mkdir /data/log/alfresco
  • alfresco.log
/opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/log4j.properties

###### File appender definition #######
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.File.File=alfresco.log                   #← コメントアウト
log4j.appender.File.File=/data/log/alfresco/alfresco.log  #← 追加
log4j.appender.File.Append=true
log4j.appender.File.DatePattern='.'yyyy-MM-dd
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
  • share.log
/opt/alfresco/solr4/log4j-solr.properties

###### File appender definition #######
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.File.File=solr.log #← コメントアウト
log4j.appender.File.File=/data/log/alfresco/solr.log #← 追加
log4j.appender.File.Append=true
log4j.appender.File.DatePattern='.'yyyy-MM-dd
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] %m%n

最後に

長々と書きましたが、以上です。
本当はまだまだ書きたいことがあるのですが、この辺でやめておきます

ここまで設定できれば、普通に使えると思いますので、是非チャレンジしてみてください。
Let's Enjoy Alfresco!!