ドキュメント管理システム KnowledgeTree の Community Edition を CentOS 5.5 にインストールしたときのメモ。

を走り書き。後で整理する。

現時点での KnowledgeTree の最新バージョンは 3.7.0.2 のようだが今回は日本語化されているのが
確認できている Community Edition バージョン 3.5.4a を入れた。

knowledgeTree日本語への道筋
を参考にしながらインストール。

インストーラ
http://sourceforge.net/projects/kt-dms/files/ からたどった ktdms-oss-3.5.4a-linux-installer.bin をダウンロード。

# chmod +x ktdms-oss-3.5.4a-linux-installer.bin
# ./ktdms-oss-3.5.4a-linux-installer.bin

でインストール。
このとき apachemysql のポート番号を聞いてくるのですでに入っている
apache mysql のポート番号と重ならないように
apache: 8080
mysql: 3307
とした。

インストール先は /opt/ktdms
以降このディレクトリからの相対パスで書く。

同梱されている apache などのサーバの起動

sh dmsctl.sh

これで準備OK。

Webブラウザから

http://インストールしたマシン:8080/

にアクセスして
ユーザ名:admin
パスワード: admin
でログインすればOK。

最初つながらなかったのでsystem-config-securitylevel-tuiコマンドを使って
ファイアウォールSELinux を無効にしたらつながった。

日本語化は Japanese Language Pack にある
kt354jp01.zip: Japanese Language Pack
を参考に
knowledgeTree/plugins の下に japanesePlugin.php と translation を入れたのち

admin で login して
DMSAdministration => Miscellaneous = Plugins => Reread plugins
=> Japanese plugin をチェック => Update
一度 logout してログイン画面の Language から Japanese を選んで再度 login する

でOK。

ここまでは比較的問題なし。
ここから KnowledgeTree に同梱されている apachephp ではなく
CentOS に元々入っているものを使うように設定する。
(mysql は移動時に楽なようにそのまま同梱のものを使うことにした)

まずログインできるうちに knowledgetree の設定を先に変更しておく。
admin で login して

システム管理 => システム設定 => 一般設定
のところで
External Binaries の
  php: /opt/ktdms/php/bin/phpphp に変更。

knowledgeTree の
  RootUrl を /knowledgetree に変更。

Server Settings の
  Internal Server Port: 8080 を 80 に変更。

CentOS 5.5 に標準で入っている PHP は 5.1 なのだが KnowledgeTree は
5.2 でないとまずいので PHP 5.2 を入れる。

手順は RedHat Linuxにphp5.2のアップグレード に書いてあるとおりの

# wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh
# yum update php

でOK。
カレントディレクトリに RPM-GPG-KEY.art.txt と
atomic-release-1.0-12.el5.art.noarch.rpm
というファイルがダウンロードされていたので消した。

次は apache

knowledgeTree/lib/config/config.inc.php の 213行目辺りに
             'protocol' => $this->flatns['db/dbProtocol'],
             'socket' => $this->flatns['db/dbSocket'],
を追加。

config.ini の [db]セクションのところに
 dbProtocol       = unix
 dbSocket         = /opt/ktdms/mysql/tmp/mysql.sock
を追加。

・パーミッション関係

knowledgeTree/bin/scheduler.php の chown -R nobody しているところを

// // If this is *nix and we are root then make sure file permisions are correct
// if(!OS_WINDOWS && (get_current_user() == 'root'))
// {
//     // The log files...
//     try {
//         $default->log->debug( 'Scheduler: setting owner to nobody on - '.$default->logDirectory);
//         exec('chown -R nobody:0 '.escapeshellcmd($default->logDirectory));
//     } catch(Exception $e) {
//         $default->log->debug('Scheduler: can\'t set owner to nobody - '.$e);
//     }
// }

のようにコメント化。

Documents と var/log と var/tmp を apache から書けるように
chmod 0777 Documents var/log var/tmp する。

OS に入っている php を使うので
bin/*.sh に書いてある /opt/ktdms/php/bin/php の部分は php に書き換える。

knowledgeTree/lib/util/ktutil.inc の 172行目の
            $internal_url .= !empty($default->rootUrl) ? $default->rootUrl : '';
のようにコメントをはずす。

/etc/httpd/conf.d に以下の内容の knowledgetree.confファイルを作成。

Alias /knowledgetree/ "/opt/ktdms/knowledgeTree/"
Alias /knowledgetree "/opt/ktdms/knowledgeTree"


    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all


/etc/php.ini の設定
memory_limit = -1
post_max_size = 2000M
upload_max_filesize = -1
に変更。

sh dmsctl.sh stop
で KnowledgeTree同梱のサーバを停止。

/etc/init.d/httpd restart
で apache の再起動。

dmsctl.sh の start_apache と stop_apache の呼び出し部分をコメントにする。

KnowledgeTree 同梱の apache以外のサーバの起動
sh dmsctl.sh start

これで
http://インストールしたマシン/knowledgeTree

でアクセスできる。

以上。