TODO #12489

windows + xamppの対応願い

加藤 朗1年以上前に追加. 1年以上前に更新.

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

0%

カテゴリ:-
対象バージョン:-

説明

フォーラムより改善要望が上がっています。

http://forum.basercms.net/modules/newbb/viewtopic.php?topic_id=2226&forum=9

windowsにxamppを使った環境でbeserCMS ver.3.0.8〜3.0.10がエラーが出て、インストールができません。

sukusyo.png (75.618 KB) 加藤 朗, 2016/06/16 11:27

1593

履歴

#1 加藤 朗1年以上前に更新

  • ファイル sukusyo.png を追加

社内のPCでも同様の現象が発生します。

#2 加藤 朗1年以上前に更新

#3 加藤 朗1年以上前に更新

  • ファイル を削除 (sukusyo.png)

#4 坂口 昌己1年以上前に更新

  • 担当者 を削除 (江頭 竜二)

調査したところ、
app/webroot/index.phpの25行目で

$fileName = $_SERVER['SCRIPT_FILENAME'];

にてファイル名を取得しているが、
WindowsのXAMPP環境で$_SERVER['SCRIPT_FILENAME']を取得すると内容が
C:/xampp/htdocs/ 

という形で取得されその後の処理でROOT定数にセットされます。

しかし、他の定数組み立て時はDS定数を使いパスの区切りが¥でセットされるので、
TMP定数などが

C:/xampp/htdocs\app\tmp\

という形で定義されてしまいます。

インストールの途中でlib/Baser/basics.php の
checkTmpFolders の中で
$folder->create(TMP . 'logs', 0777); などが実行される時に
TMPが/と¥が混在しているのが原因でフォルダが作成できず、
今回のエラーになっているようです。

元々は

define('ROOT', dirname(dirname(dirname(__FILE__))));

で取得していたのを何かの対策(2012/10/27, 2013/12/24)で
$fileName = $_SERVER['SCRIPT_FILENAME'];
           :
define('ROOT', dirname(dirname(dirname($fileName))));

に改修されているのが原因なのですが、何のための改修かわからず
どのように対応したら良いのか現状不明な状態です。

他に影響がなければ、

$fileName = $_SERVER['SCRIPT_FILENAME'];


$fileName =  __FILE__;

に戻したいところです。

色々他に影響がありそうでしたら、
Windows環境では/と¥を混在しないように
置換する処理を追加するとか、ですかね。

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

FILE を利用せず、$_SERVER['SCRIPT_FILENAME'] に変更しているのは、どこかのサーバーで、__FILE__ が期待を返さなかった事に起因します。

できれば、$_SERVER['SCRIPT_FILENAME'] で、置換処理をかました方が安全かと思います。

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