Bagaimana cara mengaktifkan mode pengembang / debug?

36

Memasang drupal 8 core (menggunakan profil standar). setiap kali saya mendapatkan pengecualian / kesalahan, saya mendapatkan halaman kosong dengan "Situs web telah mengalami kesalahan. Silakan coba lagi nanti." (seperti gambar di bawah) teks dan tidak ada detail / jejak tentang kesalahan.

masukkan deskripsi gambar di sini

vijaycs85
sumber

Jawaban:

51

Di situs pengembangan saya sarankan menghapus komentar pada baris berikut dalam settings.phpfile. emacs sites/default/settings.php

if (file_exists(__DIR__ . '/settings.local.php')) {
  include __DIR__ . '/settings.local.php';
}

dan kemudian menyalin file example.settings.local.phpdari /sitesfolder ke /sites/defaultfolder dan ganti namanya menjadisettings.local.php

cp sites/example.settings.local.php sites/default/settings.local.php

Selain menambahkan pengaturan berikut

$config['system.logging']['error_level'] = 'verbose';

itu juga menambahkan beberapa pengaturan lain yang akan membantu Anda dalam debugging dan membuat pengembangan lebih mudah. Jika Anda tidak menginginkan salah satu dari mereka secara khusus, Anda selalu dapat berkomentar.

Catatan: Jika Anda berpikir menambahkan file_existspanggilan ke setiap halaman akan memperlambat situs, Anda selalu dapat menghapusnya dalam kode produksi.

Gokul NK
sumber
Jika Anda tidak memiliki file contoh, Anda juga dapat membuat file yang berisi<?php $config[...;
Danielle Madeley
1
Seperti yang disebutkan di bawah ini, modul Devel dapat mempermudah Drupal 8. Diverifikasi bahwa $ config ['system.logging'] ['error_level'] = 'verbose'; pengaturan tampaknya berfungsi.
Darrell Ulm
Saya telah membuat wadah buruh pelabuhan yang dilengkapi dengan pengaturan yang diperlukan untuk debugging dan non-caching - semoga bermanfaat: hub.docker.com/r/feikede/drupal-dev
Rainer Feike
8

Opsi yang mudah, jika Anda memiliki akses ke Drupal Console, adalah mengaktifkan lingkungan pengembangan / debugging menggunakan drupal site:mode dev; ketika Anda siap untuk mengubahnya kembali ke produksi, gunakan drupal site:mode prod.

4life
sumber
1
Trik yang bagus dengan Konsol Drupal
ognockocaten
7

Berikut adalah variabel dengan nilai yang berbeda:

$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose
Flo Mengembangkan
sumber
2
Terima kasih telah menambahkan nilai yang mungkin.
kuncup
Ya, terima kasih telah menambahkan nilai yang mungkin, yang ternyata sulit ditemukan.
arnoldbird
4

Untuk mendapatkan pesan kesalahan dasar di Drupal 8 Anda tidak perlu menyentuh kode sama sekali. Pergi saja ke:

/ admin / config / development / logging

dan atur "Pesan Kesalahan untuk Ditampilkan" ke tingkat yang sesuai.

Anda juga dapat melihat kesalahan terbaru Anda melalui antarmuka admin:

/ admin / laporan / dblog

Yang mengatakan, jawaban yang lain tentang pengaturan file yang relevan - Anda harus hanya pernah membuat kesalahan terlihat di situs pengembangan Anda, tidak produksi.

Ditimpa $ objek config / kunci di settings.php tidak akan ditulis ke direktori sinkronisasi ketika mengekspor, sehingga memberikan pengaturan Anda. .

William Turrell
sumber
0

Anda juga dapat menginstal modul Devel dan Devel kint. Ini akan memungkinkan Anda melakukan debug menggunakan kint(xyz).

rshah
sumber
0

Jika Anda hanya memiliki akses ke Drush (tanpa konsol Drupal) dan Anda bekerja di server jarak jauh, Anda dapat mengatur konfigurasi untuk menampilkan semua kesalahan:

drush MYSITE.MYENV config-set system.logging error_level all -y

Ini berguna jika Anda mendapatkan WSOD pada server jauh dan tidak dapat memecahkan masalah tanpa info lebih lanjut.

Patrick Kenny
sumber
Untuk situasi yang dijelaskan, saya juga sangat menyarankan drush sqlcdiikuti SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1untuk menunjukkan entri terakhir di dblog.
Gogowitsch
0

Halaman kosong dengan "Situs web mengalami kesalahan. Silakan coba lagi nanti." tidak akan membawamu ke mana pun. Untuk mendapatkan informasi lebih lanjut dari situs Drupal 8 Anda, Anda dapat mengaktifkan konfigurasi berikut.

$config['system.logging']['error_level'] = 'verbose';

Untuk pengembangan Drupal 8 lokal, Anda juga harus mengaktifkan pelaporan kesalahan, menampilkan kesalahan dan menampilkan kesalahan startup untuk membantu Anda lebih lanjut debugging dan memperbaiki kesalahan runtime utama.

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

Anda dapat menemukan informasi lebih lanjut tentang debugging TWIG dan mengaktifkan debugging dengan Drupal Console di posting blog di bawah ini.

https://www.drupixels.com/blog/enable-debug-mode-and-error-reporting-local-development-drupal-8

Gulab Bisht
sumber