カテゴリー
webアプリ サーバ管理

CentOS mecabのインストール

1)MeCabのインストール

  • UTF8で使用する。
  • UTF-8 only modeとして使用する
wget http://downloads.sourceforge.net/mecab/mecab-0.97.tar.gz
tar xvfz mecab-0.97.tar.gz
cd mecab-0.97
./configure --with-charset=utf8 --enable-utf8-only
make
su --
make install

2)辞書ipadic2.7.0 のインストール

  • UTF8で使用する。
wget http://downloads.sourceforge.net/mecab/mecab-ipadic-2.7.0-20070801.tar.gz
tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8
make
su --
make install
2012/09/25追記

最新版をインストールしようとしたらこんなエラーが出る。

/bin/sh ../libtool --tag=CXX   --mode=link g++  -O3 -Wall    -o mecab mecab.o libmecab.la -lpthread -lpthread  -lstdc++
libtool: link: g++ -O3 -Wall -o .libs/mecab mecab.o  ./.libs/libmecab.so -lpthread -lstdc++ -Wl,-rpath -Wl,/usr/local/lib
./.libs/libmecab.so: undefined reference to `__sync_val_compare_and_swap_4'
collect2: ld returned 1 exit status
make[2]: *** [mecab] Error 1

gcc4.4をインストールしてconfigureオプションを渡してあげる

$ sudo yum install gcc44 gcc44-c++
$ ./configure --with-charset=utf8 --enable-utf8-only CXX='g++44'

※makeをやり直す場合は make clean してから行う事

参考:mecabのインストール - 気ままに書いてみました日記

カテゴリー
OpenPNE

OpenPNEのパッチファイルをあてる方法

OpenPNEのパッチファイルをあてる方法で分かりやすかった記事

文生のメモ帳EXTRA
http://memo.fumio.net/2007/04/openpne.html

カテゴリー
OpenPNE

OpenPNE 公開日記モジュール(OpenDiary)の問題点

公開日記モジュール(OpenDiary)をOpenPNE2.8.x以降で使うと日記を「外部に公開」とすると「最新日記一覧」に反映されない。

手順通りの他に以下の箇所を修正すると「外部に公開」とした日記が最新日記一覧に表示された。

OPENPNE_DIR/webapp/lib/db/diary.php の736行目付近

修正前


//自分の日記だけを対象にする事も出来る
if ($c_member_id) {
$where = ' WHERE c_member_id = ?';
$params[] = intval($c_member_id);
} else {
$where = " WHERE public_flag = 'public'";
}

修正後


//自分の日記だけを対象にする事も出来る
if ($c_member_id) {
$where = ' WHERE c_member_id = ?';
$params[] = intval($c_member_id);
} else {
$where = " WHERE public_flag = 'public' or public_flag = 'open'";
}


or public_flag = 'open'を追加する


さらに外部公開日記にコメントを残すと「日記コメント記入履歴」(?m=pc&a=page_h_diary_comment_list)に反映されない問題も

この問題の修正もOPENPNE_DIR/webapp/lib/db/diary.php の581行目付近と600行目付近の2箇所を修正する事で解決出来る。

修正前


' AND (d.public_flag = \'public\' OR (d.public_flag = \'friend\' AND d.c_member_id IN (' . $friend_ids . ')))' .

修正後


' AND (d.public_flag = \'public\' OR d.public_flag = \'open\' OR (d.public_flag = \'friend\' AND d.c_member_id IN (' . $friend_ids . ')))' .

OR d.public_flag = \'open\'を追加する