1.0.14J AjaxSearch 1.10.1アップデート後エラー  【解決済み】

質問全般・改善要望
返信する
アバター
min-o
メンバー
メンバー
記事: 318
登録日時: 2009年10月07日(水) 18:32

1.0.14J AjaxSearch 1.10.1アップデート後エラー  【解決済み】

投稿記事 by min-o »

-----
ご利用のサーバ:ロリポップ
MODXのバージョン:1.0.6J →1.0.14Jアップデート
PHPのバージョン:5.2.17
MySQLのバージョン: 5.1.59-community-log
ブラウザ:firefox 29.0.1
-----

おせわになっております。

数日前にAjaxSearchの脆弱性対策で
http://forum.modx.jp/viewtopic.php?f=7&t=1388
から対策済みのindex-ajax.phpをダウンロードし、インストールしました。

対策版の1.0.14Jがリリースされたので、MODX本体をアップロードしました。
この時点では問題なかったのですが、AjaxSearchスニペット1.10.1にアップデートしたところエラーが出てサイトが表示できなくなりました。
« MODX Parse Error »
MODX encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
PHP error debug
Error : set_time_limit() [function.set-time-limit]: Cannot set time limit in safe mode
ErrorType[num] : WARNING[2]
File : /home/users/1/holy.jp-xxxxxxx/web/assets/snippets/ajaxSearch/classes/ajaxSearch.class.inc.php
Line : 78
Source : set_time_limit($asCfg->cfg['timeLimit']);
Basic info
REQUEST_URI : /
Resource : [202]サイト名
Current Snippet : AjaxSearch
Current Plugin : phx(OnParseDocument)
Referer : http://xxxxxxx.org/manager/index.php?a=1&f=menu
User Agent : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0
IP : 61.45.201.25
Benchmarks
MySQL : 0.0735 s (14 Requests)
PHP : 0.0762 s
Total : 0.1498 s
Memory : 3.53 MB

Backtrace
1 DocumentParser->executeParser()
index.php on line 144
2 DocumentParser->prepareResponse()
manager/includes/document.parser.class.inc.php on line 356
3 DocumentParser->outputContent()
manager/includes/document.parser.class.inc.php on line 461
4 DocumentParser->parseDocumentSource()
manager/includes/document.parser.class.inc.php on line 492
5 DocumentParser->invokeEvent()
manager/includes/document.parser.class.inc.php on line 1917
6 DocumentParser->evalPlugin()
manager/includes/document.parser.class.inc.php on line 2879
7 eval()
manager/includes/document.parser.class.inc.php on line 1453
8 PHxParser->OnParseDocument()
manager/includes/document.parser.class.inc.php(1453) : eval()'d code on line 23
9 PHxParser->Parse()
assets/plugins/phx/phx.parser.class.inc.php on line 46
10 PHxParser->ParseValues()
assets/plugins/phx/phx.parser.class.inc.php on line 61
11 DocumentParser->evalSnippets()
assets/plugins/phx/phx.parser.class.inc.php on line 111
12 DocumentParser->_get_snip_result()
manager/includes/document.parser.class.inc.php on line 1545
13 DocumentParser->evalSnippet()
manager/includes/document.parser.class.inc.php on line 1636
14 eval()
manager/includes/document.parser.class.inc.php on line 1496
15 require()
manager/includes/document.parser.class.inc.php(1496) : eval()'d code on line 18
16 AjaxSearch->run()
assets/snippets/ajaxSearch/snippet.ajaxSearch.php on line 409
17 set_time_limit()
assets/snippets/ajaxSearch/classes/ajaxSearch.class.inc.php on line 78
AjaxSearchスニペットは
assets/snippets/AjaxSearch フォルダ差し替え(旧フォルダ削除済み)
スニペットとプラグインは以下ファイルをコピペしました。
install/snippet.ajaxSearch.tpl
install/plugin.searchHighlight.tpl
※module.ajaxSearchLogManager.tpl、plugin.advSearchHighlight.tpl はこれまで未インストールです。

使用しているテンプレートからAjaxSearchを外すとエラーはでなくなります。

よろしくお願いします。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: 1.0.14J AjaxSearch 1.10.1アップデート後エラー

投稿記事 by soushi »

エラーを見ると「set_time_limit()関数はsafe modeでは利用でいない」という内容のようです。
利用しているサーバ上でphpのsefe modeが有効なようですが、こちらを無効にすれば動作するようになると思います。
(余談ですがsefe modeは非推奨になっていて、phpの5.4から機能自体が削除されています)

またset_time_limit()で実行時間制限のコントロールをしているだけなので、以下の行の先頭に「//」を付けてコメントアウトするか、思い切って削除しても動作はすると思います。

・./ajaxSearch/classes/ajaxSearch.class.inc.phpの78行目付近

コード: 全て選択

$dbg = $asUtil->dbg; // first level of debug log
set_time_limit($asCfg->cfg['timeLimit']);

include_once AS_PATH . "classes/ajaxSearchCtrl.class.inc.php";
これをこんな感じです。

コード: 全て選択

$dbg = $asUtil->dbg; // first level of debug log
//set_time_limit($asCfg->cfg['timeLimit']);

include_once AS_PATH . "classes/ajaxSearchCtrl.class.inc.php";
これで起きる副作用としては実行時間制限のコントロールがajaxSearch側できなくなるくらいだと思います。
アバター
min-o
メンバー
メンバー
記事: 318
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.14J AjaxSearch 1.10.1アップデート後エラー

投稿記事 by min-o »

soushi さん

返信ありがとうございます。
確認したところsefe mode onになっていました。
サーバーの設定でphpバージョンアップが可能なので、今後のためにもphp5.4にアップデートしてみます。

phpアップデート後もまだ症状でるようなら
いただいたset_time_limit()の削除を試してみます。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
min-o
メンバー
メンバー
記事: 318
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.14J AjaxSearch 1.10.1アップデート後エラー

投稿記事 by min-o »

php5.4アップデートでうまくいきました。
検索機能も問題ありません。
ありがとうございました。 :D
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
返信する