baserproject / basercms

baserCMS : Based Website Development Project
http://basercms.net
Other
166 stars 128 forks source link

【インストーラー】環境によってインストール時に管理者ユーザーが作成されず、インストールが完了しない #1149

Open tnagatomi opened 5 years ago

tnagatomi commented 5 years ago

(このIssueはRedmineのチケットから移行されています)

作成者: 坂口 昌己 作成日: 2014/06/20 21:32

ブラウザからインストールをするとステップ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

tnagatomi commented 5 years ago

投稿者: 江頭 竜二 投稿日: 2014/06/20 12:44:12

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

tnagatomi commented 5 years ago

投稿者: 江頭 竜二 投稿日: 2014/07/15 02:30:22

tnagatomi commented 5 years ago

投稿者: おさだ ゆうせい 投稿日: 2014/08/09 11:42:03

ご無沙汰してます。

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

こちら、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コマンドの結果とずれるとかどこかに書いてありました)

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

以上です。
tnagatomi commented 5 years ago

投稿者: 江頭 竜二 投稿日: 2015/02/20 07:51:29

tnagatomi commented 5 years ago

投稿者: 江頭 竜二 投稿日: 2016/11/15 06:24:37

tnagatomi commented 5 years ago

投稿者: 江頭 竜二 投稿日: 2017/02/20 03:30:03