バグ報告 > その他 > MySQLプロセスが立ち上がって無い時のエラー表示が無い |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
camelmasa |
投稿日時: 2009/3/10 10:54
対応状況: 確認中
|
新米 登録日: 2009/3/10 居住地: 東京 投稿: 6 |
MySQLプロセスが立ち上がって無い時のエラー表示が無い MySQLプロセスを立ち上げてない状態でECcubeにアクセスすると、下記のエラーが/var/log/http/error.logに書き込まれ、真っ白の画面になった。
PHP Fatal error: Call to undefined method DB_Error::getCol() in /var/www/data/class/SC_DbConn.php on line 135 エラーになるのは問題ないと思うのですが、何のエラーなのかが表示されるか、エラー画面を表示するようにしたら良いのではないかと思い投稿させて頂きました。(ECcubeの設定でエラー画面の設定が出来るか知りませんが…) |
nanasess |
投稿日時: 2009/3/10 11:26
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: MySQLプロセスが立ち上がって無い時のエラー表示が無い パラメータ設定 -> DEBUG_MODE を true でどうでしょうか?
一般的に開発中はエラー表示させても問題無いと思いますが, 運用に入ったらユーザーに DB エラーの内容を表示すべきではないと思います. |
seasoft |
投稿日時: 2009/3/10 12:12
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: MySQLプロセスが立ち上がって無い時のエラー表示が無い この問題、私も気になっています。
PostgreSQL でも同様の動作だったと思います。 開発環境で、DBプロセスを落としていたときに見かけて、「あれ? どこでバグを出したかなぁ・・・」と勘違いした経験があります。 本番環境では、DBが止まっているなんていうことはまず無いので、まぁ良いか…と放置してますけど
|
camelmasa |
投稿日時: 2009/3/15 12:24
対応状況: −−−
|
新米 登録日: 2009/3/10 居住地: 東京 投稿: 6 |
Re: MySQLプロセスが立ち上がって無い時のエラー表示が無い >nanasessさん
そうですね。 運用状態であれば、エラーは表示すべきでは無いと僕も思います。 上記のエラー時、管理者が「真っ白な画面」を表示するのでは無く、「大変ご迷惑をおかけします。只今メンテナンス中です。」等のエラー画面が表示する等の設定が管理画面等で出来る方が良いのかなと思いまして^^ >seasoftさん >本番環境では、DBが止まっているなんていうことはまず無い そうですね^^ 私がこの現象を確認したのは開発環境でした。 本番環境を想定した時、seasoftさんが仰っている通り放置でも良いレベルかもしれませんね。 私が考える解決策としては、data/install.php内にDBエラー時に表示するページのパスやtrue/false等の設定があれば良いとは思うのですが…。 install.phpにはインストール時の情報が格納されているので適切では無いと思うので、新たにconfig.php等での設定が必要と考えます。 どう思われますか? |
seasoft |
投稿日時: 2009/3/16 1:18
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: MySQLプロセスが立ち上がって無い時のエラー表示が無い 個人的には、既存のエラーロジックでも良い気がします。(当該エラー箇所での利用可否は未確認ですが。) SQLの文法エラーなどと同じルートに乗れば十分かなと。
DBアクセスできない状況なので、/data/cache/mtb_constants.php で、パラメータ DEBUG_MODE を書き換えて、具体的なエラーメッセージを表示するか否かを設定することになるのかな。
|
camelmasa |
投稿日時: 2009/3/16 8:48
対応状況: 確認中
|
新米 登録日: 2009/3/10 居住地: 東京 投稿: 6 |
Re: MySQLプロセスが立ち上がって無い時のエラー表示が無い seasoftさん返信有難う御座います。
再度調査・確認をする為、php.iniがdisplay_errors = OffになっていたのをOnにし、httpデーモンをリスタートしました。その後、mysqldを停止しました。 ブラウザからEC-CUBEにアクセスすると、 data/cache/mtb_constants.php内の define('DEBUG_MODE', true); を define('DEBUG_MODE', false); にしても画面にphpのエラーが表示されてしまう不具合が確認出来ました 。 Fatal error: Call to undefined method DB_Error::getCol() in /var/www/data/class/SC_DbConn.php on line 135 共有サーバーでの運用の場合、定数DEBUG_MODEを変えても、.htaccess等でdisplay_errorsの値を変えないと、このエラー表示はコントロール出来ていないようです。 ちなみにphpのバージョンは5.1.6です。 MySQLのバージョンは5.0.45です。 |
nanasess |
投稿日時: 2009/3/16 10:16
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: MySQLプロセスが立ち上がって無い時のエラー表示が無い 引用:
この定数は, あくまでも Pear::DB の PEAR_DB_DEBUG 定数の値を true にするのみなので, すべての環境においてエラー表示をコントールするのは難しいと思います. どうしてもコントロールしたいのでしたら, display_errors や, html_errors などを ini_set でお好みの振舞いにしたら良いと思います. |
camelmasa |
投稿日時: 2009/3/16 11:42
対応状況: 保留
|
新米 登録日: 2009/3/10 居住地: 東京 投稿: 6 |
Re: MySQLプロセスが立ち上がって無い時のエラー表示が無い nanasessさん返信有難うございます。
詳細な情報有難うございます。 自分好みにカスタマイズしてみたいと思います。 |
seasoft |
投稿日時: 2009/3/16 12:42
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: MySQLプロセスが立ち上がって無い時のエラー表示が無い 先に書いた動作は、あくまでも私の脳内にある理想(妥協?)案です。
現状の EC-CUBE ではそのような動作にはならず、それが私も問題だと考えている所以です。 引用:
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |