ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#2806 closed defect (fixed)

memory_limitの設定値が小さい環境で管理画面にログインできない

Reported by: ebihara Owned by: ebihara
Priority: critical Milestone: OpenPNE2.12.2
Component: 指定しない Version: 2.10.x & 2.12.x & 2.14.x
Keywords: OpenPNE2.10.8 OpenPNE2.13.2 Cc:

Description (last modified by ogawa)

■現象

PHPの memory_limit の設定値が 8M などある程度小さい値に設定されている環境において、管理画面へのログイン操作後に Fatal error が発生しページが表示されない。

■原因

memory_limit の設定値が小さい環境では、simplepie.inc を読み込んだだけで Fatal error となりPHPの実行が止まってしまうのが原因 (#2769)

管理画面のトップページでは無条件にこの simplepie.inc を読み込んでいた。

■修正内容

管理画面のトップページでは simplepie.inc を読み込まないよう修正する。

■関連情報

#2769 に記載されている通り、 memory_limit が 8M などある程度低い値に設定されている環境においては simplepie.inc を読み込んだだけで Fatal error となるため、 simplepie.inc を読み込んでいる箇所については事実上動作しなくなる。

これを根本的に解決するのは困難だが、 OpenPNE には admin_page_top などにおいて不用意に simplepie.inc を読み込んでいる場面が存在する。そのため、 simplepie.inc の読み込みが発生する箇所を必要最低限まで減らす。

Change History (9)

comment:1 Changed 11 years ago by ebihara

Priority: minorcritical

comment:2 Changed 11 years ago by ebihara

Milestone: OpenPNE2.12.3OpenPNE2.12.2

comment:3 Changed 11 years ago by ebihara

Owner: changed from nobody to ebihara
Status: newassigned

comment:4 Changed 11 years ago by ebihara

OpenPNE において simplepie.inc を読み込んでいるのは OpenPNE/RSS.php の冒頭部分しかありません。

そのため、実質的には OpenPNE/RSS.php を読み込んでいる箇所で、今回の問題が発生します。

コードを検索したところ、RSSが必須でない場面でもライブラリを読みに行っている箇所は、

  • webapp/modules/admin/page/top.php
    • 不要になったライブラリ読み込み
  • webapp/lib/smarty_plugins/function.t_assign_rss.php
    • パラメータの必須チェックに引っかかった場合、 RSS の取得がおこなわれないが、このファイルでは Smarty プラグインの読み込み時に必ずライブラリの読み込みをおこなっているため、修正の必要がある

となっています。

このうち、 t_assign_rss は OpenPNE 本体で使用されていないため、おそらく削除の必要がありますが、安定版ではひとまず上に挙げた事項を改善する方向で対処したいと思います。

comment:5 Changed 11 years ago by ebihara

Keywords: 確認中 added

以下のリビジョンで修正しました。

trunk のみ、未使用ファイル webapp/lib/smarty_plugins/function.t_assign_rss.php の削除をおこなっています。

ただし、自分の環境で memory_limit を 8M にして検証したところ、 webapp/modules/admin/lib/db_admin.php の読み込みに関しても、 Allowed memory size of ... というエラーメッセージが表示されてしまいました。

このチケットとは直接関係ありませんが、こちらについても原因を調査してみようと思います。

comment:6 Changed 11 years ago by ogawa

Keywords: テスト待ち added; 確認中 removed

comment:7 Changed 11 years ago by kiwa

Keywords: テスト待ち removed
Resolution: fixed
Status: assignedclosed

config.phpにてmemory_limitを8Mにして確認してみたところ、問題なく表示されました。

comment:8 Changed 11 years ago by kiwa

Summary: 不用意に simplepie.inc を読み込んでしまっている箇所があるmemory_limitの設定値が小さい環境で管理画面にログインできない

comment:9 Changed 11 years ago by ogawa

Description: modified (diff)

Description 変更。

Note: See TracTickets for help on using tickets.