[1.0.15J]Missing base_urlエラーについて[解決済み]

質問全般・改善要望
返信する
shun.js
メンバー
メンバー
記事: 10
登録日時: 2015年5月21日(木) 23:26

[1.0.15J]Missing base_urlエラーについて[解決済み]

投稿記事 by shun.js »

■アップデート
ご利用のサーバ:WindowsServer2008
MODXのバージョン:1.0.15J(2016/01/17)
PHPのバージョン:5.5.30
MySQLのバージョン:5.6.16
ブラウザ:IE11,Firefox43.0.4

■新規インストール
ご利用のサーバ:Windows7
MODXのバージョン:1.0.15J(2016/01/17)
PHPのバージョン:5.5.30
MySQLのバージョン:5.6.16
ブラウザ:IE11,Firefox43.0.4

お世話になります。

「1.0.14J-r9」より「1.0.15J」にアップデートしたところ、

・プレビュー表示でブラウザ上に「Missing base_url」と表示
・エクスポートの際には、出力されたHTMLファイルに「Missing base_url」と表示されます。

新規インストールで環境を準備したところ、
サンプルサイトでも同様の現象となります。

何か原因は考えられるでしょうか。
お手数をお掛け致しますが、よろしくお願い致します。
最後に編集したユーザー shun.js [ 2016年2月10日(水) 01:27 ], 累計 2 回
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: [1.0.15J]Missing base_urlエラーについて[プレビュー、エクスポート]

投稿記事 by yama »

http://mng.demo.modx.jp/pack_pros/expand.html
こちらで確認してみましたが、確認できませんでした。さらに詳細な情報があれば教えていただいてよいでしょうか?
shun.js
メンバー
メンバー
記事: 10
登録日時: 2015年5月21日(木) 23:26

Re: [1.0.15J]Missing base_urlエラーについて[プレビュー、エクスポート]

投稿記事 by shun.js »

TO:yama様

ご確認頂き有難う御座います。
以下詳しい情報です。

■システム情報

MODX:1.0.15J
リリース日:2016/01/17
システム更新日時:2016/01/21 13:19:51
グループ管理機能を仕様:有効
サーバオフセット:0h
DB名:formodx
DBサーバ:localhost
DBのバージョン:5.6.16
DB文字コード:utf8
照合順序:utf8_general_i
テーブルプレフィックス: modx
MODX_BASE_PATH:E:/ htdocs/
MODX_BASE_URL: /
MODX_MANAGER_URL: http://[ipアドレス]/manager/
MODX_MANAGER_PATH: E:/htdocs/manager
MODX_SITE_URL: http://[ipアドレス]

■詳細情報

Apache : 2.2.31(Win32) mod_fcgid/2.3.9
OS:Windows NT 6.0 build 6002(Windows Server 2008 SP2)
php:5.5.30
セーフモード:off
php_sapi_name:cgi-fcgi
MySQLホスト情報:127.0.0.1 via TCP/IP
ホスト名 :コンピュータ名
upload_max_filesize:2M
max_execution_time:250
max_input_time:120
session.save_path:
magic_quotes_gpc: off

mbstring

internal_encoding: utf-8
http_input :pass
http_output:utf-8
http_output:UTF-8
http_ortput_conv_mimetypes: ^(text/|application/xhtml\+xml)
func_overload:0
func_overload_list :no overload
illegal_chars :0
encoding_translation:On
language:japanese
detect_oder:UTF-8,SJIS.EUC-JP,JIS,ASCII
substitute_character:63
strict_detection:off

MySQLの文字コード情報

接続メソッド:SET CARACTER SET
文字セット照合順序:utf8_general_ci
character_set_filesystem:binary
character_sets_dir: C:\Program Files\MySQL\MySQL Server 5.6\share\charsets\


以上が詳細な情報になります。

■index.php読み込み時の$_SERVER[]の値について

エラーの発生原因を特定するために「Missing base_url」メッセージ出力付近のソースコードを検証したところ、
index.php実行中のinitialize.functions.incのget_base_url()で、$_SERVER[]が以下の値になっておりました。

$_SERVER[SCRIPT_FILENAME]=E:/modx/htdocs/index.php
$_SERVER[SCRIPT_NAME]=E:/htdocs/index.php

上記の為に、既にmodxをインストール済みにも関わらず「install」フォルダの有無を判定する以下ロジックに入り、
「install」フォルダが削除済みで有るために「Missing base_url」と出力されているようです。

if(strpos(str_replace('\\','/',$_SERVER['SCRIPT_FILENAME']),$_SERVER['SCRIPT_NAME'])===false)

index.phpは「htdocs」直下にあるため、$_SERVER[SCRIPT_NAME]は/htdocs/index.phpになると予想しておりました。
先頭にドライブ名が付加される原因が分かりません。

恐縮ですが、ご教授ください。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: [1.0.15J]Missing base_urlエラーについて[プレビュー、エクスポート]

投稿記事 by yama »

調査ありがとうございます、後ほど修正します
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

[1.0.15J]Missing base_urlエラーについて[プレビュー、エクスポート]

投稿記事 by yama »

shun.js さんが書きました:$_SERVER[SCRIPT_FILENAME]=E:/modx/htdocs/index.php
$_SERVER[SCRIPT_NAME]=E:/htdocs/index.php
$_SERVER['SCRIPT_NAME']の値がイレギュラーなので、サーバ側でこれを修正する必要があります。「/index.php」が正しい値になるはずなので。といっても、サーバ側でどうにかして直せるものか分かりませんが・・

$_SERVER['PHP_SELF']の値はどうなってるか分かりますでしょうか?
shun.js
メンバー
メンバー
記事: 10
登録日時: 2015年5月21日(木) 23:26

[1.0.15J]Missing base_urlエラーについて[プレビュー、エクスポート]

投稿記事 by shun.js »

TO:yama様

調査して頂き、有難う御座います。

$_SERVER['PHP_SELF']の値は$_SERVER['SCRIPT_NAME']と同じく、
E:/htdocs/index.phpでした。

ですが、MODXではなく、
こちらの環境に依存した問題ということが分かりましたので、
サーバを引き続き調査致します。

この度はご教授頂き、有難う御座いました。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

[1.0.15J]Missing base_urlエラーについて[解決済み]

投稿記事 by yama »

index.phpの先頭行に

コード: 全て選択

print_r($_SERVER);exit;
という記述を追加してサイトにアクセスし、値が「/index.php」になっているキーを教えていただいてよいでしょうか?
shun.js
メンバー
メンバー
記事: 10
登録日時: 2015年5月21日(木) 23:26

[1.0.15J]Missing base_urlエラーについて[解決済み]

投稿記事 by shun.js »

TO:yama 様

返信が遅くなり申し訳ございません。
下記が「/index.php」となっているキーとなります。

[REQUEST_URI]
[SCRIPT_URL]

当方でhttpd.confの設定を見直したところ、mod_fcgid設定が原因でした。

FcgidFixPathinfo 1

当方の環境依存の問題でお手数をお掛けし申し訳ございません。
ヒントを頂きありがとうございました。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

[1.0.15J]Missing base_urlエラーについて[解決済み]

投稿記事 by yama »

ということは、$_SERVER['SCRIPT_NAME']の1文字目が「/」でない場合(めったにないことですが)、$_SERVER['SCRIPT_URL']の値で$_SERVER['SCRIPT_NAME']を上書きするとよさそうですね。今回はサーバ側の設定で解決したようなので、次回の改善としたいと思います。
返信する