カテゴリ | |
サマリ | PHP5.2.1_2との組み合わせ |
バージョン | 1.4.7 |
投稿者 | 山中 伸夫 |
状態 | 完了 |
投稿日 | |
FreeBSDの6.2-p1にPHP5.2.1で運用しています。今回PHPを5.2.1_2にしたところ、
PHP Fatal error: Maximum execution time of 30 seconds exceeded
in .../lib/html.php on line 394
となってPukiWikiが動作しなくなりました。
これはPukiWiki側の問題なのでしょうか?
- 本日(2007/02/21) 10:00AMごろダウンロードした開発版のスナップショットでも、同様のエラーが発生しました。 -- 山中 伸夫
- lib/html.phpの387行目、$str = strip_htmltag(make_link(preg_replace($NotePattern, '', $str))); の部分で止まるようです。 -- 山中 伸夫
- 上記の行をコメントアウトすると、lib/make_link.phpの97行目、$string = preg_replace_callback('/' . $this->pattern . '/x', array(& $this, 'replace'), $string); の部分で止まります。 -- 山中 伸夫
- その部分もコメントアウトすれば、ページが表示されることはされます。 -- 山中 伸夫
- ちなみにPHP5.2.1の_1から_2にかけては、ext/standard/string.cに変更があり、Z_STRVAL_P(result) = target = safe_emalloc(char_count, to_len, len); が Z_STRVAL_P(result) = target = safe_emalloc(char_count, to_len, len + 1); に修正されています。 -- 山中 伸夫
- 判らんなら変なとこいじっちゃあかんよ。メッセージしっかり読めば、これはPukiwikiではなくて、PHPのエラーだと判るはず。 --
- ようするに何かの処理でPHPの実行時間30秒じゃ足りないよと言ってるんだから、php.iniのmax_execution_time(ただし、これは、PHP4のなので、PHP5だと違うかも知れん)を大きくして、httpdを再起動する。 --
- ところで、何か処理の重いプラグインを入れてるとか、パッチ当ててるとかしていない?根本原因はその辺ではないかなぁ? --
- ちなみに当方もかなり重いの入れてるんで90秒にしないと動かないプラグインが有るんで。 --
- 今まで普通に動いていたものが、PHPのパッチで動かなくなるっていう状況なので、30秒をのばせばよいというものではありません。が、何秒に伸ばせば動くかは、こちらで試してみます。 -- 山中 伸夫
- ちなみに、PHPの5.2.1_1までは、何の問題もなく動いています。PHPの5.2.1_2で動かなくなりました。 -- 山中 伸夫
- 今、PHPの最新版をダウンロードしてmakeしているところです。結果はのちほど。 -- 山中 伸夫
- 直後の質問箱/3621でも同一と思える現象の質問が着てますね。単純にPHP 5.2.1_2の問題かも? --
- 5.2.1_2で入った修正を見ると、それで動かないならPukiWikiに何か潜在的な問題があるのでは?と心配しています。 -- 山中 伸夫
- ちなみに「わからないのに変なところをいじっている」わけではありません。念のため(笑) -- 山中 伸夫
- php5.2-200702210130をインストールしたら、PukiWikiの動作が正常になりました。この問題はPHP5.2.1_2の問題だと判断できます。 -- 山中 伸夫
- ちなみに、5.2.1_2のままでは、300秒に伸ばしてもNGでした。ループしているのでしょうね。 -- 山中 伸夫
- 以上の結果から、PHP5の問題と思われますので、この件はクローズとしたく思います。ありがとうございました。 -- 山中 伸夫
- 質問箱/3621のものですが、php5.2-200702010130はどこのサイトにあるのでしょうか?教えてください? -- 武蔵
- PHP5.2.1_3でもまだ動作しませんね --
- /usr/local/etc/php/extensions.ini で mbstring と session が定義されていないようなので追記. http://d.hatena.ne.jp/stereocat/20070304#1172978130 --
- php5-5.2.1_1 に戻しても駄目だったので,extensions のほうに入ってる子モジュールが原因っぽいです.誰か切り分けた人いません? --
- /usr/local/etc/php/extension.iniのextension=filter.soをコメントアウトしたら直りました(php5.2.1_3) --
- ↑超感謝 -- とおりすがり
- 私も超感謝です。これってFreeBSDだけの問題なんでしょうか? -- アイリーン
- extension=filter.soをextension.iniの最終行にもってくるのでもいいみたいです。(php5.2.1_3) --
- うちではextension=filter.soをextension.iniの最終行にもってくるのでもコメントアウトでも駄目でした。(php5.2.1_3) -- 山中 伸夫
- apache2.2.4にしたら直ります。php5がpcre-7.0を使うことを想定しているのですが、apache上ではapache付属のpcreを利用するためだと思います。apache2.2.4では付属のpcreが新しくなっています。 -- たがし