PCRE の UTF-8 サポートがないサーバーでエラーが発生する

2016年7月1日 at 19:02

みなさんに、共有のためにここに書き残しておきます。
concrete5 のバグというより古いサーバーであるから起こったバグです。

concrete5 のファイルマネージャーにアクセスした際などに下記のエラー画面が発生します。

preg_replace(): Compilation failed: support for \P, \p, and \X has not been compiled at offset 1


これは2010年7月以前の CentOS5 / RHLE5 で PCRE の UTF-8 サポート付きでビルドされていなかったことで、 UTF-8 エンコーディングを使った preg_replace() ができないため、上記のエラーが発生します。

解決策は:

・ PCRE の UTF-8 サポート付きでビルド / コンパイルし直す。
・サーバーを乗り換える。

です。

参考記事
・Unicode Support on CentOS 5.2 with PHP and PCRE
http://chrisjean.com/unicode-support-on-centos-52-with-php-and-pcre/
・PCREはUnicode文字プロパティをサポートするとは限らない
http://d.hatena.ne.jp/hnw/20090628

タグ: