ダッシュボードが表示できない場合の対処法  【解決済み】

質問全般・改善要望
返信する
kyama
メンバー
メンバー
記事: 8
登録日時: 2012年7月17日(火) 23:11

ダッシュボードが表示できない場合の対処法

投稿記事 by kyama »

-----
ご利用のサーバ:シーサイドネット 共用サーバー(サブドメイン)
MODXのバージョン:MODX Revolution 2.2.0-pl2 (traditional)
PHPのバージョン:4.4.7
MySQLのバージョン:5.1
ブラウザ:Firefox13.0.1,IE9
-----

はじめての投稿です。modx、データベース含め初心者です。大変困っています。

昨日まで問題なく表示されていたダッシュボードが表示されなくなってしまいました。
正しいユーザー名とパスワードを入れてもログイン画面から移動しません。
はじめ、いつも使っているFirefoxで、ログインしようとして、ログインボタンを押したら、ユーザー名等の入力スペースがクリアされた状態に戻るだけだったので、次にIEにそのURLをコピーして表示しようとしたら、ログイン画面が表示されずいきなりダッシュボードが表示されたので、とりあえず1度ちゃんとログアウトしようとセッション初期化(?)を行いました。以降、IEでもダッシュボードが表示されなくなりました。
もしかすると昨日、権限まわりをいじってしまったのかもしれません。(覚えはないですが…)
実はほとんど権限を与えていないユーザー名では入れるからです。(Super Userとそれと同等の権限のユーザーだと入れません。私がわかる範囲のユーザー名でしか検証していませんが。複数人で管理しているサイトです。ちなみにまだ確認中ではありますが、他のユーザーが権限を編集してしまった可能性は低いです。)
入ることができるユーザーではユーザー管理やロール・アクセスポリシーなどが編集できません。

こういった場合の対処法などもしありましたら、教えてください。
neran
メンバー
メンバー
記事: 22
登録日時: 2009年10月23日(金) 00:47

Re: ダッシュボードが表示できない場合の対処法

投稿記事 by neran »

そういった状況そのものには見覚えありませんが、
情報が少なく対処も大雑把な事しか言えなそうです。

-

取り敢えず、ほとんどリスク無しに試せるとしたら、キャッシュのクリアです。
ログイン可能なユーザーでキャッシュクリアできるなら管理画面から、
それが出来ないなら、/core/cache の中身を全て削除してみて下さい。
キャッシュの破損などで問題が起きているのであれば、復旧するかも知れません。
キャッシュクリアで復旧しない場合、もっとリスクのある方法を採る必要があります。

ひとつは、DBの編集。
MODXはMySQLなりのDBにほとんどの設定値やリソース、エレメントが入ってますから、
いざとなればDBを直接叩いて、管理画面にアクセス出来ない場合でも問題解決は可能です。
お使いのシーサイドネットであれば、phpMyAdminが用意されているようなので、
そちらからユーザー情報の編集などを試みられるかも知れません。
万が一DBのデータに破損があった場合は、MODXのソースを読みながら、
必要な値を手動でDBに設定する必要があり得ます。

ちなみに、OnHandleRequestなど一切の表示に関わるイベントにバインドして、
問題のあるプラグインを書いてしまった場合など、ちょくちょくDBから修正を行います。
もし同様の原因で問題が起きているのであれば、
修正の際は、DBの修正後にキャッシュもクリアしないと、変更が反映されない可能性があります。

もうひとつは、ファイルの復旧。
なんらかの理由でcoreなどのファイルが破損したのであれば、
DBを残したまま再インストールすることで、復旧するかも知れません。

どちらの方法も、下手に触れば更に状況を悪化させる可能性があるので、
必ず全てのファイルとDBのデータをバックアップした上で試みて下さい。

-

もうちょっと情報が無いと、これぐらいしかお応えできないです。
正確に今の状況を把握するために、ブラウザのバージョンや設定などの確認と、
例えばFirefoxのLiveHTTPHeaders拡張などを使って、
リクエストとレスポンスの中身も確認した方が良いです。
案外ブラウザの問題かも知れません。
kyama
メンバー
メンバー
記事: 8
登録日時: 2012年7月17日(火) 23:11

Re: ダッシュボードが表示できない場合の対処法

投稿記事 by kyama »

返信ありがとうございます! たいへん助かります!

もっと情報をとのことですが、エラーメッセージは出ないし、サイトそのものは表示できるし、ログインできるユーザーでは管理にかかわる情報は見れないし(操作やエラーのログとか…)…で、正直どこのどんな情報を出せばいいのかも??な状態ですが…、とりあえず教えていただいたことを落ち着いてひとつひとつ試してみたいと思います。(一晩考えてうっすらデータベースを16日の段階に戻せないかな~?と思ってました。その前に試せることを教えていただいてよかったです。)

結果はまたお知らせします。
neran
メンバー
メンバー
記事: 22
登録日時: 2009年10月23日(金) 00:47

Re: ダッシュボードが表示できない場合の対処法

投稿記事 by neran »

管理操作のログは(プレフィクス_)manager_log というテーブルから直接で見られます。
但し分かるのは、MODXの管理画面を経由した操作だけです。

-

この問題に、自分だったら何をしてみるか、ざっと洗い出してみました。
kyamaさんが直接使えないものもあるかも知れませんが、参考になれば。

■ 問題の定義
扱い易くしたいので、
「特定のユーザーのみ管理画面にログインできず、入力がクリアされたログイン画面が再表示される」等々、
問題と考える状況をなるべく平易な表現で言語化しておく。

■ 状況の確認
問題が起きている状況の中で、容易に確認できる情報を確認する。
・エラーメッセージ
・ログ
・時系列
・問題が起きているユーザー
・ブラウザとそのバージョン
・ネットワーク
・MODXのバージョン 等々

■ 推測
問題で、有り得そうなケースを考えておく。
・ブラウザが原因で、ログイン時のJavaScriptの実行やセッションに問題が起きている
・プラグインが原因で、管理画面の表示に問題が起きている
・ユーザーや権限情報の破損が原因で、認証処理に問題が起きている
・MODXの破損が原因で、認証処理に問題が起きている 等々

■ 調査
簡単で有望そうなところから。

・ログや時系列から原因になりそうな操作を探す
Administrator権限周りの操作が一番有り得そう。
プラグインが原因なら、パッケージのインストールや設定変更も可能性がある。

・実際にどういう流れで「入力がクリアされたログイン画面が再表示」なのか
HTTPのレスポンスヘッダを見たり、Firebugなどでクライアント側のログイン処理を追いかけたりしてみる。

・DBを眺める
権限周りでなにか変なとこ無いかなー、ぐらいで、取り敢えず眺める。
怪しい所があったら、値を控えて、いじってみる。
但し、その値に依存して他の値があれこれ書き変わりそうなら、フルバックアップ後に。

こんなとこから始めると思います。

-

Revoの場合、権限周りが分厚く複雑で、強力な分、設定ミスが起きやすいです。
ある程度のミスが起きても管理画面から対応できるように、
緊急時用のSudoユーザーを用意しておくと、助かる場合があります。
kyama
メンバー
メンバー
記事: 8
登録日時: 2012年7月17日(火) 23:11

Re: ダッシュボードが表示できない場合の対処法

投稿記事 by kyama »

いろいろありがとうございます。あせるとろくでもないことをしてしまいそうなので、落ち着いて対処しようと、詳しい状況を書き出しているうちに、原因に思い当りました。


■ 現状

 Super Userとそれと同等の権限のユーザーが管理画面にログインできず、入力がクリアされたログイン画面が再表示されます。
 実際はログインボタンを押した後、3~4秒後に入力フィールドがクリアされた状態に戻ります。
 この3~4秒の間、Firefoxですと、タブに「接続中」と表示され、下部に「~に接続しています...」「~応答を待っています...」「~接続しました...」等が表示されています。
 サイトは問題なく表示できています。


■ 考えられる原因

 実は権限まわりの設定がうまくいかなくて、とりあえず編集にかかわる人全員にmodxにもともと作成してあるロール「Super User(特権レベル 0)」を割り当てていました。その状態で昨年の9月ごろから複数で入力作業をしてきたわけですが、この土曜日(7/14)に特権レベル0の人が複数いるとリソースグループ等の挙動が意図したとおりにならないっぽいということがわかって、代表となるユーザー名にSuper User(特権レベル 0)を与え、それ以外の編集ユーザーにはSuper Userロールをコピーした同じ権限で特権レベルを1に設定したロールを割り当てようとしました。このときにコンテキストmgrの許可グループに追加し忘れたことに、今日になって気が付きました。この作業をした後、即ダッシュボードが表示できなくなったわけではないのですが、このあたりが原因かなと思っています。その割にいじってないはずの代表ユーザーでも管理画面に入れなかったりするんですが…^^;(たぶん何かしてしまったんでしょう…|||orz)


■ 最近行った他の変更

 上記以外に7/15~16に行った作業といえば、FormItのメール本文用のチャンクを書き換えたり、フォーム表示用のリソースを編集したりくらいなので、関係ないかな?と思っています。


■ その他の状況

 全員からまだ報告ないのですが、私と少なくとももう一人の編集担当は、上記ユーザーで管理画面に入れません。
 また、modxデモサイトの管理画面には入れることから、ブラウザのせいでもなさそうな気がします。デモサイトの管理画面に入れたことから、コンテキストmgrにアクセス許可がないユーザーを作ったら、困っている症状と同じになりました。(「アクセス許可がありません」とか別に表示されないのですね。)お騒がせして申し訳ありませんでしたが、身から出た錆というか、当然の挙動だったのですね…。


 …というわけで、どうにかして代表ユーザーでダッシュボードが表示できるようになれば、他のユーザーも管理画面に入れるように設定できるような気がします。(教えていただいたことはこれから試します。)
kyama
メンバー
メンバー
記事: 8
登録日時: 2012年7月17日(火) 23:11

なんとかできました!  【解決済み】

投稿記事 by kyama »

neranさん、ありがとうございました! なんとかできました!

まず、キャッシュクリアは使っているFTP機能では権限無いとか言われてできなかったので、
おっかなびっくりデータベースをいじってみました。
正しい状態がよくわからなかったので悩みましたが、access_contextとuser_group_rolesをいじってそれなりに権限があるロールで管理画面に入り、その後、ユーザー・ユーザーグループ・ロール・ポリシー・コンテキストなどを一から見直しました。なんだかやった覚えがない状態になってました^^; 夜中とか明け方とかに寝ぼけ半分でいじってはいけないと思い知りました。

データベースの見方もわかっていなかったので、今回良い勉強になりました。本当にありがとうございました!
返信する