web-dev-qa-db-ja.com

失敗したモジュールのインストールの修正

私はDrupal 7.にいます。64MBのPHPメモリしか提供しないホスティング会社でした。新しいモジュールをインストールするときにいくつかの問題が発生しました。私のウェブサイトはメモリ不足になり、モジュールをインストールした直後にブレーキがかかります。しかし、モジュールページをリロードすると、モジュールがインストールされて機能していることが証明されます。最後にいずれかのインストールを壊すまで、私は火で遊んでいました。私のモジュールです。これはメニューブロックでした。モジュールはインストールされているように見えますが、[モジュール]ページの[構成]リンクをクリックすると、間違ったページが表示されます。モジュールの構成ページにアクセスできませんでした。インストールは失敗しました。

より多くのメモリを備えた新しいホストに切り替えましたが、今は大丈夫です。しかし、それでもメニューブロックをインストールできません。私はそれを無効にして再度有効にしてみました...何も。まだ動作していません。次に、それを無効にしてアンインストールしました。その後、再インストールしました。何も起こらないが、それでもモジュール構成ページの誤った動作。 Drupal install?に残っている問題のあるトレースを本当に完全にアンインストールするために何をする必要がありますか?データベースにメニューブロックのテーブルがまだ存在する場合に備えて、それらを完全に削除しますか?これらのテーブルを完全に削除すると、Webサイトが壊れる危険性がありますか?メニューブロックパッケージを完全に削除してから再起動しますか?これで問題が解決しないと思いました...助けてくれてありがとう、ありがとう!

3
Marcos Buarque

メニューブロックは、インストール中にDBをまったく変更しません。 drupalコアからの 'block'および 'block_role'テーブルを使用し、いくつかの構成を格納するために 'variable'テーブルにいくつかのエントリを作成します。

だからここに私が何をするかです:

  • Admin/reports/dblogを確認してください
  • Windowsでデバッグを行う場合は、wampまたはAcquia DEVデスクトップを使用してWebサイトをローカルにインストールします(インポートタブとバックアップ移行モジュールを使用)。
  • Admin/config/user-interface/menu-blockに移動したときに呼び出されるmenu_block.admin.incの「menu_block_admin_settings_form」関数を確認します
1
Hervé Donner

失敗したモジュールを再インストールする方がはるかに簡単なdrushを使用してみることができます。

たとえば、Develモジュールを使用します。

_drush -y dre foo
_

プロジェクトのリストを無効化、アンインストール、およびインストールします。


または標準的な方法を使用して:

_drush -y dis foo && drush -y pm-uninstall foo && drush -y en foo
_

次に、キャッシュをクリアします(_drush -y cc all_)。

参照: 誤って有効にされたモジュールを検出する方法?


あるいは、たとえば次のように、インストールプロセスを強制することもできます。

  1. _foo.install_を編集し、最後にfoo_install();を追加して、関数を手動で実行します。
  2. スタンドアロンファイルとして_drush scr foo.install_を介してファイルをdrushで実行します。
  3. インストールが完了したら、追加されたfoo_install();を削除します。
0
kenorb

以下の手順に従って、メニューをクリーンアップしてインストールをブロックします。

  1. モジュールを無効にします。
  2. モジュールをアンインストールします。
  3. すべてクリアDrupalキャッシュテーブル。
  4. モジュールをインストールします。
  5. 再びすべてのdrupalキャッシュテーブルをクリアします。
  6. 「admin/structure/block/add-menu-block」リンクを試してください

それでも機能しない場合は、データベースを検査して、次のアンインストール条件が満たされているかどうかを確認して、モジュールが正しくアンインストールされているかどうかをデバッグする必要があります。

  // Delete menu block variables.
  foreach (variable_get('menu_block_ids', array()) AS $delta) {
    variable_del("menu_block_{$delta}_title_link");
    variable_del("menu_block_{$delta}_admin_title");
    variable_del("menu_block_{$delta}_parent");
    variable_del("menu_block_{$delta}_level");
    variable_del("menu_block_{$delta}_follow");
    variable_del("menu_block_{$delta}_depth");
    variable_del("menu_block_{$delta}_expanded");
    variable_del("menu_block_{$delta}_sort");
  }
  variable_del('menu_block_ids');
  variable_del('menu_block_suppress_core');
  variable_del('menu_block_menu_order');
  // Remove block configurations.
  db_delete('block')
    ->condition('module', 'menu_block')
    ->execute();
  db_delete('block_role')
    ->condition('module', 'menu_block')
    ->execute();
  cache_clear_all();
0
Anil Sagar