問題点 #6164

インストール時に管理者ユーザーが作成されず、インストールが完了しない

坂口 昌己3年以上前に追加. 7ヶ月前に更新.

ステータス:担当開始日:
優先度:通常期日:
担当者:坂口 昌己進捗率:

0%

カテゴリ:インストール
対象バージョン:-

説明

ブラウザからインストールをするとステップ4で「管理者ユーザーが作成できませんでした」
というエラーが出てインストールに失敗してしまいます。
DBを調べると、実際に管理者ユーザーが作成されていない状態でした。

原因は、PCRE (Perl Compatible Regular Expressions) のバージョンが低いと
正規表現のUnicode 文字プロパティ( \p{L}など) がサポートされておらず、
ユーザーデータの作成時のEメールのバリデーションで正しいメールアドレスであるにもかかわらず、
エラーと判別されてしまい、管理者ユーザーが作成されない状態となっているようです。

※ 不具合発生時:
PCRE Library Version 6.6 06-Feb-2006

※ baserCMS公式サイト:
PCRE Library Version 8.32 2012-11-30

※ 暫定的な対応としては
lib/Cake/Utility/Validation.php

app/Utility/Validation.php
にコピーして、該当箇所(2箇所)を旧バージョンのCakePHPの記述に変更することで
対応できますが、できればコア側でチェック、対応などができれば、と思います。

参考サイト
http://www.php.net/manual/ja/regexp.reference.unicode.php

履歴

#1 江頭 竜二3年以上前に更新

インストーラーの環境チェックでPCREのバージョンチェックを行う方法がよいでしょうね。

#2 江頭 竜二約3年前に更新

  • 対象バージョン4.0.1 にセット

#3 おさだ ゆうせい約3年前に更新

ご無沙汰してます。

ひさびさにチケットを漁っています(独り言風です)

こちら、PCREのバージョンが推奨以上であればOKかなと思ったのですが、
厳密にはUnicode Propertyのサポートが、ONになっていることも含めるべきなんでしょうか

実は自分もこれで一度インストールに失敗したことがありました。
ずばり、PCRE version 6.6 06-Feb-2006 だったのですが、再コンパイルしたところ、Unicode Property SupportがONになり
続行できました。(CentOSは5.0でした)
つまり、たとえPCREバージョンが古くても、Unicode Property SupportがONになってれば、
大丈夫なケースもありうるので。。

とはいえあまり厳密にやりすぎても、そもそも一般ユーザー的にはなんじゃこりゃ?という気もするので、
まずは最低限ということで、PCRE Library Version 8.32以上であれば OK という感じですかね。

(サーバのではなく、PHPバンドルのPCREを使ってる場合は、pcretestコマンドの結果とずれるとかどこかに書いてありました)

一応、今後似たようなケースが出て再検討の際に何かの参考になればと思い記載させていただきました。

以上です。

#4 江頭 竜二2年以上前に更新

  • トラッカーTODO から 問題点 に変更

#5 江頭 竜二10ヶ月前に更新

  • 対象バージョン4.0.1 から 4.0.2 に変更

#6 江頭 竜二7ヶ月前に更新

  • 説明 を更新 (diff)
  • 担当者坂口 昌己 にセット
  • 対象バージョン を削除 (4.0.2)
  • 開始日 を削除 (2014/06/20)

坂口さん、おさださんからアドバイスが入ってるようですね。確認お願いしますー

他の形式にエクスポート: Atom PDF