Làm cách nào để bật báo cáo lỗi e_all trong PHP?

Trong quá trình thực thi ứng dụng PHP, nó có thể tạo ra nhiều cảnh báo và lỗi. Đối với các nhà phát triển đang tìm cách khắc phục sự cố ứng dụng hoạt động sai, việc có thể kiểm tra các lỗi này là rất quan trọng. Mặt khác, các nhà phát triển thường gặp khó khăn khi cố gắng hiển thị lỗi từ các ứng dụng PHP của họ. Thay vào đó, các ứng dụng của họ chỉ đơn giản là ngừng hoạt động

Trước hết, bạn nên lưu ý rằng với PHP, một số lỗi khiến tập lệnh không được thực thi. Mặt khác, một số lỗi chỉ hiển thị thông báo lỗi kèm theo cảnh báo. Sau đó, bạn sẽ học cách sử dụng PHP để hiển thị hoặc ẩn tất cả báo cáo lỗi

Trong PHP, có bốn loại lỗi

  1. Thông báo Lỗi – Khi cố gắng truy cập một chỉ mục không xác định trong mã PHP, đã xảy ra lỗi. Việc thực thi mã PHP không bị dừng do thông báo lỗi. Nó chỉ cảnh báo bạn rằng có một vấn đề
  2. Lỗi cảnh báo – Nguyên nhân phổ biến nhất gây ra lỗi cảnh báo là bỏ sót tệp hoặc gọi một hàm có tham số không phù hợp. Nó có thể so sánh với việc nhìn thấy một lỗi, nhưng nó không ngăn mã PHP chạy. Nó chỉ phục vụ như một lời nhắc nhở rằng kịch bản có một lỗ hổng
  3. Lỗi nghiêm trọng – Khi các hàm và lớp không xác định được gọi trong mã PHP, sẽ xảy ra lỗi nghiêm trọng. Mã PHP bị dừng và thông báo lỗi được hiển thị khi xảy ra lỗi nghiêm trọng
  4. Lỗi phân tích cú pháp – Khi xảy ra sự cố cú pháp trong tập lệnh, nó được gọi là lỗi phân tích cú pháp. Việc thực thi mã PHP cũng bị dừng khi xảy ra lỗi phân tích cú pháp và thông báo lỗi được hiển thị

Bạn đã đến đúng nơi nếu đang gặp sự cố với ứng dụng web PHP của mình và cần xem tất cả các lỗi và cảnh báo. Chúng ta sẽ xem xét tất cả các cách khác nhau để kích hoạt lỗi và cảnh báo PHP trong hướng dẫn này

1. Để hiển thị tất cả các lỗi PHP

Thêm những dòng này vào tệp mã PHP của bạn là cách nhanh nhất để xuất tất cả các lỗi và cảnh báo PHP

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

Hàm ini_set() sẽ cố gắng ghi đè cấu hình của tệp PHP ini

Các lệnh display_errors và display_startup_errors chỉ là hai trong số các tùy chọn

  1. Chỉ thị display_errors xác định xem lỗi có hiển thị cho người dùng hay không. Sau khi phát triển, lệnh dispay_errors thường bị vô hiệu hóa
  2. Mặt khác, chỉ thị display_startup_errors là riêng biệt do các lỗi hiển thị không xử lý các lỗi xảy ra trong trình tự khởi động của PHP

Tài liệu chính thức chứa danh sách các lệnh có thể bị ghi đè bởi hàm ini_set(). Thật không may, các vấn đề về phân tích cú pháp như thiếu dấu chấm phẩy hoặc dấu ngoặc nhọn sẽ không được hiển thị bởi hai chỉ thị này. Cấu hình PHP ini phải được thay đổi trong trường hợp này

Để hiển thị tất cả các lỗi, bao gồm lỗi phân tích cú pháp, trong xampp, hãy thực hiện các thay đổi sau đối với tệp php. ini và khởi động lại máy chủ apache

display_errors = on

trong PHP. ini, hãy đặt lệnh hiển thị lỗi để bật. Nó sẽ hiển thị tất cả các lỗi không thể nhìn thấy bằng cách gọi hàm ini_set(), chẳng hạn như lỗi cú pháp và lỗi phân tích cú pháp

2. . cấu hình htaccess để hiển thị lỗi PHP

Các tệp thư mục thường có thể truy cập được đối với các nhà phát triển. Các. htaccess trong thư mục gốc hoặc thư mục chung của dự án cũng có thể được sử dụng để bật hoặc tắt lệnh hiển thị lỗi PHP

php_flag display_startup_errors on
php_flag display_errors on

htaccess có các chỉ thị cho display_startup_errors và display_errors, tương tự như những gì sẽ được thêm vào mã PHP để hiển thị lỗi PHP. Lợi ích của việc hiển thị hoặc tắt thông báo lỗi theo cách này là quá trình phát triển và sản xuất có thể có các. htaccess, với hiển thị lỗi chặn sản xuất

Bạn có thể muốn điều chỉnh display_errors trong. htaccess hoặc PHP của bạn. ini tùy thuộc vào tệp bạn có quyền truy cập và cách bạn xử lý việc triển khai và cấu hình máy chủ. Nhiều công ty lưu trữ sẽ không cho phép bạn thay đổi PHP. ini để bật lỗi hiển thị

3. Kích hoạt cảnh báo và thông báo chi tiết

Các cảnh báo ban đầu dường như không ảnh hưởng đến ứng dụng đôi khi có thể dẫn đến các lỗi nghiêm trọng trong một số trường hợp nhất định. Những cảnh báo này phải được khắc phục vì chúng chỉ ra rằng ứng dụng sẽ không hoạt động bình thường trong một số trường hợp nhất định. Nếu những cảnh báo này dẫn đến một số lượng lớn lỗi, sẽ thực tế hơn nếu ẩn lỗi và chỉ hiển thị thông báo cảnh báo

error_reporting(E_WARNING);

Hiển thị cảnh báo và ẩn lỗi đơn giản như thêm một dòng mã cho nhà phát triển. Tham số cho chức năng báo lỗi sẽ là “E_WARNING. E_NOTICE” để hiển thị cảnh báo và thông báo. Là toán tử bitwise, chức năng báo cáo lỗi có thể chấp nhận các tham số E_ERROR, E_WARNING, E_PARSE và E_NOTICE

Để dễ tham khảo, các hằng số này cũng được trình bày chi tiết trong Hướng dẫn sử dụng PHP trực tuyến

Để báo cáo tất cả các lỗi ngoại trừ thông báo, hãy sử dụng tùy chọn "E_ALL & E_NOTICE", trong đó E_ALL đề cập đến tất cả các tham số tiềm năng của chức năng báo cáo lỗi

4. Chuyên sâu về hàm error_reporting()

Một trong những kết quả đầu tiên khi trình duyệt của bạn "Lỗi PHP" là một liên kết đến tài liệu hàm error_reporting()

Hàm PHP error_reporting() cho phép các nhà phát triển chọn lỗi nào và bao nhiêu lỗi sẽ được hiển thị trong ứng dụng của họ. Hãy nhớ rằng chức năng này sẽ đặt chỉ thị báo cáo lỗi trong cấu hình PHP ini trong thời gian chạy

error_reporting(0);

Giá trị 0 phải được cung cấp cho hàm error_reporting() để xóa tất cả lỗi, cảnh báo, thông báo phân tích cú pháp và thông báo. Dòng mã này sẽ không thực tế nếu đưa vào từng tệp PHP. Tốt nhất là tắt thông báo báo cáo trong tệp ini PHP hoặc tệp. tập tin htaccess

error_reporting(-1);

Một giá trị số nguyên cũng được truyền dưới dạng đầu vào cho hàm error_reporting(). Trong PHP, chúng tôi có thể sử dụng phương pháp này để hiển thị lỗi. Trong PHP có nhiều loại lỗi khác nhau. Tất cả các lỗi PHP được biểu thị bằng mức -1. Ngay cả với các cấp độ và hằng số mới, việc chuyển giá trị -1 sẽ hoạt động trong các phiên bản PHP trong tương lai

error_reporting(E_NOTICE);

Các biến có thể được sử dụng ngay cả khi chúng không được khai báo trong PHP. Điều này không được khuyến nghị vì các biến không được khai báo có thể tạo ra sự cố trong ứng dụng khi chúng được sử dụng trong các vòng lặp và điều kiện

Điều này cũng có thể xảy ra khi biến đã nêu được đánh vần khác với biến được sử dụng trong điều kiện hoặc vòng lặp. Các biến không được khai báo này sẽ được hiển thị trong ứng dụng web nếu E_NOTICE được cung cấp trong hàm error_reporting()

error_reporting(E_ALL & ~E_NOTICE);

Bạn có thể lọc lỗi nào được hiển thị bằng hàm error_reporting(). Ký tự “~” là viết tắt của “not” hoặc “no”, do đó tham số ~E_NOTICE chỉ ra rằng các thông báo sẽ không được hiển thị

Trong mã, hãy chú ý đến các chữ cái "&" và ". " Biểu tượng “&” là viết tắt của “true for all,” trong khi “. ký tự ” là viết tắt của “true for both. ” Trong PHP, hai ký tự này có nghĩa giống nhau. HOẶC và VÀ

5. Sử dụng hàm error_log() để ghi lỗi PHP

Thông báo lỗi không được hiển thị cho người dùng cuối trong quá trình sản xuất, nhưng chúng phải được ghi lại cho mục đích theo dõi. Cách tiếp cận tốt nhất để theo dõi các thông báo lỗi này trong ứng dụng web trực tiếp là theo dõi chúng trong các tệp nhật ký

Hàm error_log(), chấp nhận bốn tham số, cung cấp một cách đơn giản để sử dụng các tệp nhật ký. Tham số đầu tiên, chứa thông tin về các lỗi nhật ký hoặc nội dung cần ghi, là tham số duy nhất phải được cung cấp. Các tham số loại, đích và tiêu đề của chức năng này đều là tùy chọn

________số 8_______

Nếu tùy chọn loại không được chỉ định, nó sẽ mặc định là 0, có nghĩa là thông tin nhật ký này sẽ được thêm vào tệp nhật ký của máy chủ web

error_log("Email this error to Justin!", 1, "[email protected]");

Nhật ký lỗi được cung cấp trong tham số thứ ba sẽ được gửi qua email bằng tham số loại 1. Để sử dụng tính năng này, ini PHP phải có cấu hình SMTP hợp lệ để gửi email

Máy chủ, loại mã hóa, tên người dùng, mật khẩu và cổng nằm trong số các chỉ thị SMTP ini. Loại báo cáo lỗi này được khuyến nghị để ghi nhật ký hoặc thông báo lỗi phải được sửa càng sớm càng tốt

display_errors = on
0

Loại 3 phải được sử dụng để ghi nhật ký tin nhắn trong một tệp khác do cấu hình của máy chủ web thiết lập. Tham số thứ ba chỉ định vị trí của tệp nhật ký mà máy chủ web phải ghi được. Vị trí của tệp nhật ký có thể là thư viện tương đối hoặc tuyệt đối nơi mã này được gọi

Bạn cũng có thể tham khảo tài liệu về hàm error_log() để biết thêm

6. Sử dụng cấu hình máy chủ web để ghi lại lỗi PHP

Kỹ thuật lý tưởng để ghi lại lỗi là xác định chúng trong tệp cấu hình máy chủ web, thay vì sửa đổi các tham số trong tệp cấu hình máy chủ web. htaccess hoặc thêm các dòng trong mã PHP để hiển thị lỗi

display_errors = on
1

Các tệp này phải được thêm vào máy chủ ảo của một trang hoặc ứng dụng HTML cụ thể trong Apache, tệp này thường được tìm thấy trong thư mục các trang có sẵn trong Ubuntu hoặc tệp httpd-vhosts trong Windows

display_errors = on
2

Lệnh chỉ được gọi là error_log() trong Nginx, giống như trong Apache. Các tệp nhật ký cho cả máy chủ web Apache và Nginx phải được máy chủ web ghi. May mắn thay, các thư mục chứa tệp nhật ký của hai máy chủ web này đã có thể ghi được sau khi cài đặt

7. Thu thập lỗi PHP bằng Status

Atatus là một giải pháp Quản lý hiệu suất ứng dụng (APM) thu thập tất cả các yêu cầu đối với các ứng dụng PHP của bạn mà không yêu cầu bạn thay đổi mã nguồn của mình. Tuy nhiên, công cụ này không chỉ theo dõi hiệu suất ứng dụng của bạn. Khả năng tự động thu thập tất cả các lỗi chưa được xử lý trong ứng dụng PHP của Atatus là một trong những tính năng tốt nhất của nó

Để khắc phục các ngoại lệ PHP, hãy thu thập tất cả thông tin cần thiết như lớp, thông báo, URL, tác nhân yêu cầu, phiên bản, v.v. Mỗi lỗi PHP được ghi lại và ghi lại bằng một dấu vết ngăn xếp đầy đủ, với dòng mã nguồn chính xác được đánh dấu, để giúp sửa lỗi dễ dàng

Đọc hướng dẫn để biết thêm về Giám sát hiệu suất PHP

Làm cách nào để bật báo cáo lỗi e_all trong PHP?

Tất cả các lỗi được tự động ghi lại và cấu trúc trong Atatus để có thể dễ dàng xem chúng. Atatus không chỉ cho bạn biết lỗi nào đã xảy ra mà còn kiểm tra xem chúng xảy ra ở đâu và tại sao. Nhật ký cũng hiển thị thời gian và số lần xuất hiện, giúp bạn dễ dàng tập trung vào vấn đề cần giải quyết hơn nhiều

Bắt đầu dùng thử Atatus miễn phí trong 14 ngày ngay bây giờ

Bản tóm tắt

Khi code PHP có vấn đề, xảy ra lỗi PHP. Ngay cả những thứ đơn giản như cú pháp sai hoặc quên dấu chấm phẩy cũng có thể dẫn đến lỗi, khiến thông báo xuất hiện. Ngoài ra, nguyên nhân có thể phức tạp hơn, chẳng hạn như gọi một biến không chính xác, có thể dẫn đến lỗi nghiêm trọng và khiến hệ thống của bạn gặp sự cố

Hướng dẫn này đã chỉ cho bạn một số cách để kích hoạt và hiển thị tất cả các lỗi và cảnh báo PHP. Bạn có thể nâng cao khả năng gỡ lỗi các sự cố PHP bằng cách nhận thông báo lỗi nhanh chóng và chính xác

Làm cách nào để hiển thị tất cả các cảnh báo lỗi trong PHP?

Đây là cách nhanh nhất để hiển thị tất cả các cảnh báo và lỗi PHP. .
ini_set('lỗi_hiển_thị', 1);
ini_set ('hiển thị_khởi động_lỗi', 1);
error_reporting(E_ALL);

Làm thế nào báo cáo lỗi được thực hiện trong PHP?

Theo mặc định, PHP gửi nhật ký lỗi tới hệ thống ghi nhật ký của máy chủ hoặc tệp, tùy thuộc vào cách đặt cấu hình error_log trong php. tập tin ini. Bằng cách sử dụng hàm error_log(), bạn có thể gửi nhật ký lỗi tới một tệp cụ thể hoặc một đích đến từ xa .

Làm cách nào để tắt hết lỗi trong PHP?

Để tắt thành công báo cáo lỗi trong PHP, chúng tôi sử dụng hàm error_reporting() .

Làm cách nào để bật báo cáo lỗi trong laravel?

Thông qua cấu hình/ứng dụng của bạn. php , đặt 'debug' => env('APP_DEBUG', false), thành true . Hoặc theo một cách tốt hơn, kiểm tra của bạn. env và đảm bảo đặt thành phần gỡ lỗi thành true.