Làm cách nào để bật chế độ phát triển / gỡ lỗi?


36

Cài đặt drupal 8 lõi (sử dụng hồ sơ tiêu chuẩn). Bất cứ khi nào tôi gặp ngoại lệ / lỗi, tôi nhận được trang trống với "Trang web đã gặp lỗi. Vui lòng thử lại sau." (như hình ảnh bên dưới) văn bản và không có chi tiết / dấu vết về lỗi.

nhập mô tả hình ảnh ở đây

Câu trả lời:


51

Trên một trang web phát triển, tôi sẽ đề nghị bỏ ghi chú các dòng sau trong settings.phptệp. emacs sites/default/settings.php

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

và sau đó sao chép tệp example.settings.local.phptừ /sitesthư mục sang /sites/defaultthư mục và đổi tên thànhsettings.local.php

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

Ngoài việc thêm các cài đặt sau

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

nó cũng thêm một vài cài đặt khác sẽ giúp bạn gỡ lỗi và giúp phát triển dễ dàng hơn. Nếu bạn không muốn bất kỳ ai trong số họ nói riêng, bạn luôn có thể nhận xét họ.

Lưu ý: Nếu bạn nghĩ rằng việc thêm một file_existscuộc gọi vào mỗi trang sẽ làm chậm trang web, bạn luôn có thể xóa nó trong mã sản xuất.


Nếu bạn không có tệp ví dụ, bạn cũng có thể tạo tệp có chứa<?php $config[...;
Danielle Madeley

1
Như được đề cập bên dưới, mô-đun Devel có thể giúp Drupal dễ dàng hơn 8. Đã xác minh rằng $ config ['system.logging'] ['error_level'] = 'verbose'; cài đặt xuất hiện để làm việc.
Darrell Ulm

Tôi đã tạo một bộ chứa docker đi kèm với các cài đặt cần thiết để gỡ lỗi và không lưu vào bộ nhớ cache - hy vọng nó hữu ích: hub.docker.com/r/feikede/drupal-dev
Rainer Feike


8

Một tùy chọn dễ dàng, nếu bạn có quyền truy cập vào Bảng điều khiển Drupal, là cho phép môi trường phát triển / gỡ lỗi bằng cách sử dụng drupal site:mode dev; Khi bạn đã sẵn sàng để thay đổi nó trở lại sản xuất, sử dụng drupal site:mode prod.


1
Thủ thuật hay với Bảng điều khiển Drupal
ognockocaten

7

Đây là biến có các giá trị khác nhau:

$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose

2
Cảm ơn đã thêm các giá trị có thể.
thúc

Vâng, cảm ơn vì đã thêm các giá trị có thể, rất khó tìm thấy.
arnoldbird

4

Để nhận thông báo lỗi cơ bản trong Drupal 8, bạn không cần phải chạm vào bất kỳ mã nào cả. Chỉ cần đi đến:

/ admin / config / Development / log

và đặt "Thông báo lỗi hiển thị" ở mức phù hợp.

Bạn cũng có thể xem các lỗi gần đây của mình thông qua giao diện quản trị viên:

/ quản trị / báo cáo / dblog

Điều đó nói rằng, các câu trả lời khác về các tệp cài đặt liên quan - bạn chỉ nên để lỗi hiển thị trên trang web phát triển của mình chứ không phải sản xuất.

Ghi đè các đối tượng / khóa $ config trong settings.php sẽ không được ghi vào thư mục đồng bộ hóa khi xuất, vì vậy việc cung cấp settings.php của bạn ở .gitignore, bạn có thể tiếp tục sử dụng hệ thống cấu hình để đồng bộ hóa giữa các bản sao của cùng một trang web .


0

Bạn cũng có thể cài đặt các mô-đun kint Devel và Devel. Điều này sẽ cho phép bạn gỡ lỗi bằng cách sử dụng kint(xyz).


0

Nếu bạn chỉ có quyền truy cập vào Drush (không có bảng điều khiển Drupal) và bạn đang làm việc trên một máy chủ từ xa, bạn có thể đặt cấu hình để hiển thị tất cả các lỗi:

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

Điều này hữu ích nếu bạn nhận được WSOD trên máy chủ từ xa và không thể khắc phục sự cố mà không có thêm thông tin.


Đối với tình huống được mô tả, tôi cũng rất khuyến khích drush sqlctheo sau SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1để hiển thị mục cuối cùng trong dblog.
Gogowitsch

0

Trang trống có "Trang web đã gặp lỗi. Vui lòng thử lại sau." sẽ không đưa bạn đi đâu cả. Để có thêm thông tin từ trang web Drupal 8 của bạn, bạn có thể kích hoạt các cấu hình sau.

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

Để phát triển Drupal 8 cục bộ, bạn cũng nên bật báo cáo lỗi, lỗi hiển thị và hiển thị lỗi khởi động để giúp bạn gỡ lỗi thêm và sửa lỗi thời gian chạy lớn.

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

Bạn có thể tìm thêm thông tin về gỡ lỗi TWIG và cho phép gỡ lỗi với Drupal Console trong bài đăng blog bên dưới.

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


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.