CentOSではPCREが標準ではUnicodeをサポートしていない

CentOSではPCREが標準ではUnicodeをサポートしていない

- Tatsuya Shirai の投稿
返信数: 3

こちらのディスカッショントピックと関係があります.

 MoodleのサーバをWindows XPからCentOS5に変更してから,ほとんどグローバルサーチを使用していませんでした.先日,試したところエラーが出る.調べたところ,CentOS5のPCREはUTF-8をサポートしているものの,標準のコンパイルされたパッケージではUnicodeに対応していないようです.

http://d.hatena.ne.jp/hnw/20090628
http://www.redistribution.cc/blog/20100301_1510.html
http://ameblo.jp/katyos/entry-10357760194.html
http://framework.zend.com/manual/ja/zend.search.lucene.charset.html

今は時間がありませんので対策を行いませんが,もしどなたかリーズナブルな解決方法をご存知の方はアドバイス頂けないでしょうか.リビルドか,パッケージを別から入手するか.

Tatsuya Shirai への返信

Re: CentOSではPCREが標準ではUnicodeをサポートしていない

- Tatsuya Shirai の投稿

 でも,グローバルサーチだけではなく,preg_matchやpreg_replaceにも影響を与えるようなことが書かれていますので,実は早く手を打たなくてはいけないのかも知れません.


http://junrei.dip.jp/wordpress/nagios/pnp4nagios%EF%BC%880-6-2%EF%BC%89%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/

こちらの情報に基いて当方のサーバはPCREを更新しました.ただしあくまで参考であって推奨するものではありません.


Unicode Supportが有効なPCREに更新したことで,グローバルサーチが正常に機能するようになりました.

Tatsuya Shirai への返信

Re: CentOSではPCREが標準ではUnicodeをサポートしていない

- river 34 の投稿

CentOS5.5でmoodle2も使ってみたいと思い、CentOS5標準のPHP5.1ではなくPHP5.2をyumでremiのリモジトリを利用してインストールしました。remiで配布されているPCREは以下のようにUnicode propertiesはONの状態でした。

PCRE version 8.02 2010-03-19
Compiled with
  UTF-8 support
  Unicode properties support
  Newline sequence is LF
  \R matches all Unicode newlines
  Internal link size = 2
  POSIX malloc threshold = 10
  Default match limit = 10000000
  Default recursion depth limit = 10000000
  Match recursion uses stack

ご指摘のmoodleでの問題に関しては動作確認していませんがご参考になりますでしょうか。

river 34 への返信

Re: CentOSではPCREが標準ではUnicodeをサポートしていない

- Tatsuya Shirai の投稿

utterramblingsからインストールしたPCREのpcretest -Cの結果です.

PCRE version 8.02 2010-03-19
Compiled with
  UTF-8 support
  Unicode properties support
  Newline sequence is LF
  \R matches all Unicode newlines
  Internal link size = 2
  POSIX malloc threshold = 10
  Default match limit = 10000000
  Default recursion depth limit = 10000000
  Match recursion uses stack

同じバージョンのようですね.とりあえずこれでグローバルサーチは動作するようになったのですが,依然としてバックアップが失敗するコースがありますねぇ.max_execution_timeはコード中でも50分(3000秒)に変更しているようですので,時間切れでは無いと思うのですが,明確なエラーがログに残っていないのでちょっと困っています.