1.0.9J でページが表示されない。  【解決済み】

質問全般・改善要望
返信する
saki...
メンバー
メンバー
記事: 17
登録日時: 2013年3月17日(日) 15:42

1.0.9J でページが表示されない。

投稿記事 by saki... »

こんばんは

1.0.9J のクリーンインストールで現象が再現したので報告します。
原因については私のほうでも調査をしていますが、よく判りません。
あまり検証していませんが、上書きコピーでインストーラーを動かす前なら、表示されるっぽいので、
インストール・アップグレード操作で何か起きている模様です。

・クリーンインストール(展開した 1.0.9J をそのまま配置、httpdの alias で /dev/に割り当て、.htaccess をセット)
 デモサイト無し
・インストール終了後、管理画面には入って操作は可能。
・サイトをプレビューなどで表示すると、「Missing base_url」の表示になる。

以下はシステム情報の詳細情報の抜粋です。サーバーはローカルの仮想マシンで立てています。
  • Apache/2.2.15 (CentOS)
    OS Linux 2.6.32-358.2.1.el6.x86_64 #1 SMP Wed Mar 13 00:26:49 UTC 2013 x86_64
    PHPのバージョン 5.3.14
    セーフモード off
    php_sapi_name apache2handler
    MySQLのバージョン 5.6.10
    MySQLホスト情報 Localhost via UNIX socket
    MODXのバージョン 1.0.9J
    サイトのURL http://centos6.local/dev/
    ホスト名 centos6.local
    MODX_BASE_URL /dev/
httpd の acces.log でも下記のとおりですので、サブディレクトリに入れた設定自体は問題なさそうです。(ローカルのサブネットは伏字にしました)
192.168.***.2 - - [21/Mar/2013:22:35:32 +0900] "GET /dev/index.php?id=1 HTTP/1.1" 200 16 "http://centos6.local/dev/manager/index.php?a=1&f=tree" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"

1.2.0J-b2 までは特に問題なく動いていました。各 php ファイルの差分を追いかけていますが、原因がよくわかりません。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.9J でページが表示されない。

投稿記事 by yama »

https://github.com/modxcms-jp/evolution ... aec41ef25c
上記、initialize.inc.phpの赤い部分を緑の部分の記述に書き換えてみると、改善されるでしょうか?

https://github.com/modxcms-jp/evolution ... nc.php#L97
該当の処理はここにあります。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.9J でページが表示されない。

投稿記事 by yama »

間違えました、緑の部分を赤に戻す、です
saki...
メンバー
メンバー
記事: 17
登録日時: 2013年3月17日(日) 15:42

Re: 1.0.9J でページが表示されない。

投稿記事 by saki... »

お手数をおかけします。
ご指摘の書き戻しは効果がありませんでした

コード: 全て選択

	echo "[{$_SERVER['SCRIPT_FILENAME']}]<br />";
	echo "[{$_SERVER['SCRIPT_NAME']}]<br />";

	if(strpos(str_replace('\\','/',$_SERVER['SCRIPT_FILENAME']),$_SERVER['SCRIPT_NAME'])===false)
該当処理の前に上記の echo 入れて確認したところ、
[/var/www/modx-1.0.9J-dev/index.php]
[/dev/index.php]
Missing base_url

となったので、$_SERVER['SCRIPT_NAME'] にサブディレクトリがくっついているのが原因らしいのですが、
なぜそのように変化したのでしょうか。。。

23:31 追記
うまく動いている 1.2.0-b2 に同じエコー文を入れてみたところ、変数が出力されなかったので、もともと関数が働いていなかった
(別のところで $base_path が設定されていた)ように思えます。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.9J でページが表示されない。

投稿記事 by yama »

$_SERVER['SCRIPT_FILENAME']が/var/www/modx-1.0.9J-dev/index.phpになっているのが気になります。
/modx-1.0.9J-dev/というのは、何か心当たりはありますか?
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.9J でページが表示されない。

投稿記事 by yama »

saki... さんが書きました:うまく動いている 1.2.0-b2 に同じエコー文を入れてみたところ、変数が出力されなかったので、もともと関数が働いていなかった
(別のところで $base_path が設定されていた)ように思えます。
ですね。なぜか if(strpos(str_replace('\\','/',$_SERVER['SCRIPT_FILENAME']),$_SERVER['SCRIPT_NAME'])===false) に判定が渡っているので、そこが少し気になります
saki...
メンバー
メンバー
記事: 17
登録日時: 2013年3月17日(日) 15:42

Re: 1.0.9J でページが表示されない。

投稿記事 by saki... »

サイトをドキュメントルートとは別に配置して conf.d のエイリアスで下記のとおり設定しています。

Alias /dev /var/www/modx-1.0.9J-dev

サイトは http://centos6.local/dev に出来上がります。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.9J でページが表示されない。

投稿記事 by yama »

なるほどそういうことなら。
https://github.com/modxcms-jp/evolution ... aec41ef25c
さっき上記を書き換えてうまくいかなかったとのことですが、書き換えたうえで、管理画面のキャッシュをクリアするか、グローバル設定を空更新してみてください。
saki...
メンバー
メンバー
記事: 17
登録日時: 2013年3月17日(日) 15:42

Re: 1.0.9J でページが表示されない。

投稿記事 by saki... »

ふむむ。。。

manager/includes/initialize.inc.php を次のとおり書き戻しして、サイトリフレッシュ、管理画面のログインログアウト
を繰り返してみましたが、やはり状況が変わっていません。assign_base_url($base_path)が呼ばれてしまうようです。

コード: 全て選択

<?php
// check PHP version. MODX Evolution is compatible with php 4 (4.4.2+)
if(version_compare(phpversion(), '5.0.0') < 0)
{
	echo 'MODX is compatible with PHP 5.0.0 and higher. Please upgrade your PHP installation!';
	exit;
}

// automatically assign base_path and base_url
if(!isset($base_path)) $base_path = assign_base_path();
if(!isset($base_url))  $base_url  = assign_base_url($base_path);
if(!isset($site_url))  $site_url  = assign_site_url($base_url);
if(!isset($core_path)) $core_path = "{$base_path}manager/includes/";
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.9J でページが表示されない。

投稿記事 by yama »

assets/cache/sitePublishing.idx.php内の$base_urlが使われるはずですが、変ですね。
global宣言しちゃえばとりあえず簡単に解決できそうですが、そのへんはあまり変えてないはずなので少し気になります。調べてみます
saki...
メンバー
メンバー
記事: 17
登録日時: 2013年3月17日(日) 15:42

Re: 1.0.9J でページが表示されない。

投稿記事 by saki... »

上記のキャッシュファイルの中を調べてみたらこんな感じで、$base_url は無いみたいです。

コード: 全て選択

<?php
$cacheRefreshTime = 0;
$cache_type = 1;
$site_sessionname = 'bayn3d6gsygcc0o8w8sg0w0w8';
$site_status = '1';
$error_reporting = '1';
$site_url = 'http://centos6.local/dev/';
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.9J でページが表示されない。

投稿記事 by yama »

そうすると・・・グローバル設定の更新が関係してるかも。グローバル設定の「ベースURL」が正しい値であることを確認のうえで、グローバル設定を更新していただけますでしょうか。
saki...
メンバー
メンバー
記事: 17
登録日時: 2013年3月17日(日) 15:42

Re: 1.0.9J でページが表示されない。  【解決済み】

投稿記事 by saki... »

設定途中で、グローバル設定のベースURL を消していたようです。

・グローバル設定のベースURLを書き込む
・initialize.inc.php の先頭3行を前の状態に戻す

との処置で表示されるようになりました。
お手数をおかけしました。
ありがとうございます。(とりあえず、本番サイトのバージョンアップにとりかかれます^^;;)
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.9J でページが表示されない。

投稿記事 by yama »

saki... さんが書きました:・initialize.inc.php の先頭3行を前の状態に戻す
ここが重要だったみたいですね。レポートありがとうございました。この部分は元の状態が正しいので戻します。
返信する