Drupalのadminに入れなくなったら

DrupalのUpdateなどで手順を間違えて、admin画面が表示できなくなることがあります。そんな時の、私なりの対処方法を説明します。

先ず、http://www.5thbear.jp/?q=user
でログイン画面を表示し、インストール時に作成したユーザでログインを試みます。

しかし、ログイン画面が表示されない、あるいはユーザが認識されず、ログインに失敗する時があります。そのような時は、settings.phpの
$update_free_access = FALSE; を
$update_free_access = TRUE;
に変更し、update.phpを強制的に実行します。成功すればadmin画面に入れるはずです。ただし、
FALSEに戻すのを忘れないで下さい。

それも失敗したら、DBを直接さわり、問題を起こしているモジュールを無効にしてから立ち上げるという方法があります。先ず、/var/log/apache2などを追っかけて、問題を起こしているモジュールを特定します。モジュールの有効/無効は、“system”テーブルの“status”フラッグに登録されているので、“phpmyadmin”などで直接変更し、無効化してからサイトにアクセスして下さい。

ただし、DBを直接さわるのはおすすめできる方法ではないので、あくまでも最後の手段として、再インストール覚悟でトライして下さい。

コメント

Drupal 6を利用しております。サイトが問題なく表示されていましたがAcquia SlateにDropdownを付けようとしてSuperfishをインストールしました。しかし、上手く行かず最新のAcquia Slateテンプレートをインストールし、古いテンプレートを削除しました。
無事に完了と思いましたが、数日たってからサイトにアクセスをしようとしたら
Fatal error: Call to undefined function acquia_slate_wordlimit() in /home/www/XXXXX.com/themes/acquia_slate/block.tpl.php on line 18
というメッサージが出て、Adminに入ろうと思っても、Adminがなくなっています。あるのは単なる白い画面。
色々と調べてみたのですがなにも見つからず、どうすれば分からなくなりました。
Drupal6を再インストールすれば、DBに入っている情報はなくならないですか?
何か良いアドバイスがあれば、教えて下さい。
 
 
 
を再インストールをするとDB

コメントに気付かず返信が遅れて申し訳ありません。

エラーメッセージを見ると、acquia_slateのテンプレートで使用している関数が、見つからないようです。見つからない関数は、関数名からすればacquia_slate内にあるはずなので、この様なエラーが発生することは普通では考えられません。acquia_slateをアップグレードされたようなのですが、正常にアップグレードされてない可能性もあるので、もう一度確認されたらいかがでしょうか。

また、“/home/www/XXXXX.com/themes/acquia_slate/block.tpl.php on line 18”というメッセージも気になります。acquia_slateをドキュメントルート直下のthemesフォルダーに入れているのではないでしょうか。ドキュメントルート直下のthemesフォルダーは、コアモジュールに付属しているテーマを格納するフォルダです。

Drupalは、コアモジュールもアドオンも、アップデートが頻繁にリリースされます。セキュリティアップデートも多いので、こまめにアップデートした方が無難です。そのため、私は、アップデートが簡単にできるよう工夫しているので、参考にしてください。

Drupalは、コアモジュールとその他のファイルを明確に分離しています。アドオンのモジュールは/sites/all/modulesフォルダに、アドオンのテーマは/sites/all/themesフォルダに格納します。コンテンツに添付するファイル類は、/sites/default/filesフォルダに格納されます。

私もテーマに手を加えていますが、“Drupalのsub-themeを使ったCSSの上書き”で説明しているように、オリジナルのテーマに直接手を加えるのではなく、オリジナルのテーマを継承したサイト固有のテーマを/sites/all/themesに作成し、そこにはオリジナルのテーマを変更する部分だけを記述しています。

私は、次のような手順で、コアモジュールをアップグレードしてますが、

  1. コアモジュールの最新版を/var/wwwに展開する。
  2. 最新版の/sitesフォルダに、既存の/sitesフォルダを上書きしないようにコピーする。
  3. /sites以外の追加変更箇所に手を加える。
  4. apacheのドキュメントルートを最新版に変更してからupdate.phpを実行する。

3.の対象になるのは、robots.txtと検索サイトの認証キーファイルだけです。

また、次のような手順で、アドオンをアップグレードしてますが、

  1. /sites/all/modules(themes)から、古いモジュールをフォルダごと削除する。
  2. ダウンロードした最新版を、/sites/all/modules(themes)に展開する。
  3. 追加変更箇所に手を加える。
  4. update.phpを実行する。

3.の対象になるのは、Wysiwygで絵文字が入力できるよう手を加えた部分だけです。