LoginSignup
5
4

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-10-17

サーバ上でインストールする際、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

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4