Yanıtlar:
Drupal 7 system
tablo verileri şimdi parametreye config
karşı Drupal 8'deki tabloya kaydedilir core.extension
.
1. Çözüm: Yapılandırmayı güncelleyin
Aşağıdaki kodu çalıştırabilir drush eval
veya Devel modülünün provizyonunu kullanıyor olabilirsiniz Execute PHP Code
.
// Read the configuration.
$module_data = \Drupal::config('core.extension')->get('module');
// Unset the modules you do not need.
unset($module_data['MODULE_NAME']);
// Write the configuration.
\Drupal::configFactory()->getEditable('core.extension')->set('module', $module_data)->save();
Bunları hızlı bir tek astarla yapabilirsiniz drush
.
drush eval "\$module_data = \Drupal::config('core.extension')->get('module'); unset(\$module_data['MODULE_NAME']); \Drupal::configFactory()->getEditable('core.extension')->set('module', \$module_data)->save();"
2. Çözüm: PHP'yi çalıştıramıyorsanız yapılandırma tablosunu düzenleyin
Site sorunlu modül nedeniyle bozulursa ve hatta PHP kodunu çalıştıramazsanız, config
doğrudan tabloyu düzenleyebilirsiniz .
config
Tablodaki satırda name = "core.extension"
ve BLOB sütununu düzenleyin data
. data
Eğer gelen kurtulmak isteyen modülü kaldırmak zorunda tefrika PHP dizidir module
yapılandırma anahtarının.
3. Çözüm: Hızlı ve kirli çözüm
cache_config
Ancak bu çözüm, modülün dosya sisteminde mevcut olmadığını söyleyen ve sonuçların yanlış olduğu anlamına gelen mesajlarla sonuçlanabilir. Ancak en azından bozuk modül devre dışı kalıyor ve çoğu durumda sitenize erişebiliyorsunuz.
Önbelleği Temizleme
Bazen yukarıdaki adımları uyguladıktan sonra önbelleği temizlemeniz gerekebilir. Önbelleğin nasıl temizleneceğine ilişkin bu kullanışlı belgeleri okuyun .
drush eval
. Örnek bir liner: drush eval "\$module_data = \Drupal::config('core.extension')->get('module'); unset(\$module_data['example_module']); \Drupal::configFactory()->getEditable('core.extension')->set('module', \$module_data)->save();
Çıkarılan dolar işaretini not edin, böylece komut satırı $module
Bash değişkeni olarak yanlış yorumlamaz .
config
Tabloyu elle düzenleyin name = 'core.extension'
ve modülü serileştirilmiş bir dizi olan veri bloğundan kaldırın.(...s:6:"module";a:HERE;{...)
cache_config
Tabloyu phpmyadmin'den veya komut satırını kullanarak kesin .i:0;s:8:"name of the module";
s:8:"name of the module";i:0;
. @Valli'nin anlamı, modül sayısını tanımlayan dizinin, çıkarılan modüllerin sayısına göre azalması gerektiğiydi. Kurulumumdaki blobun başlangıcı a:4:{s:6:"module";a:59:{
, bir 59 modül dizisidir.
Drush'u kullanmayı düşünün. Drupal 8, hala "devre dışı bırakma modüllerinin" ne olması gerektiğini tanımlamaktadır. Bir yoktur süregelen tartışma oradaki seçenek olmalıdır yoksa kaldırılması gerektiğini eğer.
Drupal yapılandırmasıyla ilgili herhangi bir şeyi güncellemeniz gerekirse, bu durumda core.extension
, Drush kullanın:
[Bu örnekte Drush 8.x]
drush cedit core.extension
Bunun için bir modül var. Bu modül Ağustos 2013'te drupal.org sitesinde yayınlanmıştır . Birinin ihtiyacı olursa diye.
Bu modül sayfasında belirtildiği gibi,
Drupal 8, birçok nedenden dolayı modülleri devre dışı bırakma özelliğini ortadan kaldırdı. Bkz. # 1199946: Devre dışı bırakılmış modüller onarımın ötesine geçmiş, bu nedenle "devre dışı bırakma" işlevselliğinin kaldırılması ve çeşitli çekirdek ve katkıda bulunan modüllerin kuyruğundaki birçok başka sorun var.
Bu modül, UI'den veya Drush'lu modülleri devre dışı bırakma (geçici olarak) özelliğini geri getiriyor. Bir modülü devre dışı bıraktıktan sonra içeriğinizin, yapılandırmanızın ve hatta sitenizin garantisi olmadığını unutmayın.
Bu şekilde, "better_messages" adlı bir modülü Drupal 8 örneğimden manuel olarak kaldırdım. "Better_messages" modülünü kurduğumda, site çöktü. Bu yüzden, modülü kullanıcı arayüzünden kaldırmanın bir yolu yoktu. Drush yüklü değil. Forumlarda verilen birçok ayarı yaptım, ama sonunda benim için çalıştı.
1 Modülü, modüller klasöründeki old_better_messages olarak yeniden adlandırdı.
URL üzerinden http: // IP: port / foldername / rebuild.php 'yi çalıştırın . Bu o sitenin geri döndü, ancak yalnızca salt okunur modda sağladı. Yönetici aktivitelerini yapamadım veya makaleleri düzenleyemedim.
Girişi veritabanından silmek için aşağıdaki komutu kullanın.
Key_value from DELETE WHERE collection = 'system.schema' AND name = 'better_messages';
Benim durumumda veri tabanına giriş yapılmamıştır. Sanırım daha önce yaptığım çeşitli gösteriler yüzünden silinmiş olabilir.
Bu sorunu çözdü. Bu benim https://www.drupal.org/node/2487215 yorumuma dayanıyor
Jigarius'un yukarıdaki cevabı, bir nevi çalıştı ...
Yapmam gerekti: // Konfigürasyonu oku.
$module_data = \Drupal::config('core.extension')->get()['module'];
Hangi gerektiğini aynı şeyi yapın. Jigarius'un yazdığı gibi neden işe yaramadığından emin değilim.