Help us understand the problem. What is going on with this article?

[baserCMS]インストール時STEP4でエラーが起きてしまう場合の対処(PCRE Versionの問題)

More than 5 years have passed since last update.

サーバ上でインストールする際、STEP4でエラーが起きて、インストールを完了できない場合が稀にあります。
また、フォームのメールのチェックやメール送信で、正しいメールアドレスでもエラー扱いになる場合があります。

発生するタイミングと環境

  • インストール時のSTEP4でエラーが起きて、インストール作業を完了できないとき
    • インストール時のユーザー作成時に正しいメールでもエラー扱いになってしまい、管理者ユーザーが生成されていない状態になる
  • フォームのメールのチェックやメール送信で、正しいメールアドレスでもエラー扱いになるとき
  • baserCMS 3.0.1 以降で上記症状が起きる

環境

原因

PCREのバージョンが低いときに起きます。

PCRE (Perl Compatible Regular Expressions)
PCRE Library Version    6.6 06-Feb-2006

上記バージョンの場合、正規表現で\p{L}などが使えない状態にあります。

PCRE (Perl Compatible Regular Expressions)
PCRE Library Version 8.32 2012-11-30

上記バージョンだと問題ないようです。(一例)

対策

  • /lib/Cake/Utility/Validation.php を app/Utility/Validation.php へコピーする
  • /app/Utility/Validation.php を以下のように変更する
/app/Utility/Validation.php
protected static $_pattern = array(
    //'hostname' => '(?:[_\p{L}0-9][-_\p{L}0-9]*\.)*(?:[\p{L}0-9][-\p{L}0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'
    'hostname' => '(?:[_a-z0-9][-_a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'
);
  • /app/Utility/Validation.php の public static function email() 内を以下のように変更する
/app/Utility/Validation.php
//$regex = '/^[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/ui';
$regex = '/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/i';

baserCMS 3.0.5 以降の場合

CakePHPのバージョンアップにより、上記対応に加えて以下の対応も必要です。

  • /lib/Cake/Network/Email/CakeEmail.php を /app/Network/Email/CakeEmail.php へコピーする
  • /app/Network/Email/CakeEmail.php を下記のように変更する
/app/Network/Email/CakeEmail.php
//protected $_emailPattern = '/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-.]+)$/ui';
protected $_emailPattern = null;

更に正常に稼働しない場合があります

サーバ上でインストール作業を完了した場合、STEP5画面にcss、img、jsが適用されない状態で表示されることがあります。

【現在判っている点】
/app/webroot/内にテーマフォルダ等が存在する配置では、css、img、jsが読み込まれず、画面が正常に表示できません。
/app/webroot/ 内のファイル群をドキュメントルート直下に移動した配置に変更すると、正常な動作が可能です。
配置変更後は以下の構成になります。

  • /app
  • /files ・・・/app/webroot にあったもの
  • /lib
  • /theme ・・・/app/webroot にあったもの
  • .htaccess ・・・/app/webroot にあったもの
  • index.php ・・・/app/webroot にあったもの

なんでだろ?(´・ω・)

アルファメールプレミアでのインストール留意事項

webroot内のファイル群の配置を、ドキュメントルート直下型に変更してからサーバにアップロードし、インストール作業を行うのが「吉」っぽいですね。

参考情報

http://php.net/manual/ja/reference.pcre.pattern.syntax.php#75339
http://phpexcel.codeplex.com/discussions/238547
http://basercms.net/manuals/3/base/1.html

materializing
Cakeをもぐもぐ。。。 https://github.com/materializing
http://www.materializing.net/
e-catchup
国産オープンソース baserCMS を世に送り出したWeb技術のプロフェッショナル集団です。
https://catchup.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした