Alfrescoとは
AlfrescoはCMS(コンテンツマネジメントシステム)です。
詳しくは前回記事を参考にしてください。
脱ファイルサーバ!!個人でも会社でも使えるOSSのドキュメント管理システム!その名も「Alfresco」!
今回の構成
- Alfrescoの5.0.dは2015/07/19現在の最新です。
- DBをMySQLにしたのは、他のOSSで使っているので、同居できるからです。
- OSに関してはもはや個人の好みでしかないですね。
- UBUNTUが好きです。
- Nginxを入れる理由は、コンテンツキャッシュが優秀なのと、アクセス制御やログを取ろうかなと思ったからです。
ubuntu環境整備
ホスト名の変更
- 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編集
[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設定ファイル作成
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設定
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に関連するので。)
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にした
- メール設定の追加
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のプレビューができない
- 設定ファイル編集
# 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
- ファイル場所の設定変更
#dir.root=/opt/alfresco/alf_data
dir.root=/data/alf_data
Solr
- Rootディレクトリ場所設定変更
<?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>
- アーカイブディレクトリ場所設定変更
#
# 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
- ワークスペース場所設定変更
#
# 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編集
<!-- 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は実ファイルをそのまま移行するだけだとダメらしいね
- データ格納場所設定変更
#
# * 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
- 権限設定
# 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
###### 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
###### 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!!