Hướng dẫn where does php log errors by default? - nơi nào có lỗi đăng nhập php theo mặc định?

Tôi có thể đảm bảo cho bạn, tôi không phải là người duy nhất bị thúc đẩy đến điên rồ ít nhất một lần trong một tìm kiếm bực bội cho một tệp nhật ký. Có vẻ như nó nên là điều dễ dàng nhất để tìm thấy trong toàn bộ hệ thống.

Một hướng dẫn dứt khoát về nơi nhật ký lỗi PHP được lưu trữ sẽ là một công việc phức tạp. Hướng dẫn sử dụng PHP chính thức thậm chí không cố gắng giải quyết toàn bộ chủ đề, bởi vì có những phụ thuộc vào các hệ thống bên ngoài PHP, chẳng hạn như hệ điều hành (Linux so với Windows, phân phối Linux), bao gồm các cài đặt trong Windows và Linux ảnh hưởng đến tên và vị trí của nhật ký lỗi PHP.

Cho đến khi ai đó dành thời gian để viết một hướng dẫn hoàn chỉnh, hệ thống, điều tốt nhất bạn sẽ nhận được là những hướng đi chung nơi bạn có thể hỏi. Mỗi nhà phát triển PHP đã phải chịu đựng nỗi đau đớn trong việc theo đuổi này, với một ngoại lệ. Nếu bạn làm việc ở một nơi và thông tin được cung cấp khi bạn cần lần đầu tiên, thì bạn có nhu cầu thông tin mãi mãi, nghĩa là cho đến khi bạn thấy mình trong một môi trường làm việc mới. Có những người may mắn như vậy.

Nếu thông tin không được cung cấp cho bạn trên một đĩa bạc, có thể nói, bạn có một số việc săn lùng phải làm. Cuộc săn lùng không phải là lâu nhất bạn sẽ phải đối mặt trong sự nghiệp của mình, nhưng nó cũng không phải là đơn giản nhất.

Rõ ràng từ nhiều câu trả lời đã được đăng, một nơi thông minh để bắt đầu là đầu ra của phpinfo (). Để xem nó, hãy tạo một tệp PHP chứa điều này:

<?php
    phpinfo();

Hoặc duyệt đến tệp đó hoặc chạy nó từ dòng lệnh. Nếu bạn làm cả hai, bạn có thể sẽ tìm thấy Error_log ở những nơi khác nhau, tùy thuộc vào dòng lệnh so với sử dụng máy chủ web của PHP. Đó là bởi vì trình thông dịch PHP chạy trên máy chủ web không phải là trình thông dịch PHP cùng chạy từ dòng lệnh, ngay cả khi dòng lệnh nằm trên cùng một máy chủ web. Các câu trả lời đã được đăng ở đây chủ yếu là đưa ra một giả định không rõ ràng rằng PHP đang chạy như một phần của máy chủ web.

Hướng dẫn where does php log errors by default? - nơi nào có lỗi đăng nhập php theo mặc định?

Mặc định cho error_log không phải là giá trị

Hướng dẫn where does php log errors by default? - nơi nào có lỗi đăng nhập php theo mặc định?

Dù giá trị là gì, nó đến từ các tệp php.ini được sử dụng để định cấu hình PHP. Có thể có nhiều tệp php.ini. Tìm đường của bạn trong số họ lúc đầu khó hiểu, nhưng bạn không cần phải đối phó với điều này để tìm nhật ký PHP của bạn.

Nếu đầu ra từ phpinfo () hiển thị một đường dẫn đầy đủ đến một tệp, đó là nơi nhật ký. Bạn thật may mắn.

Bí quyết thường không có đường dẫn đầy đủ được chỉ định trong phpinfo (). Khi không có đường dẫn đầy đủ, vị trí phụ thuộc vào:

  1. Cho dù error_log không có giá trị. Nếu đúng như vậy, vị trí tệp nhật ký sẽ phụ thuộc vào hệ điều hành và chế độ PHP đang chạy. Nếu PHP đang chạy dưới dạng mô -đun Apache, trên Linux, nhật ký thường được in /var/log/apache2/error.log. Một điểm khác có khả năng nằm trong thư mục nhật ký trong thư mục nhà tài khoản của bạn, ~/log/error.log.

  2. Nếu có tên tệp không có đường dẫn, vị trí phụ thuộc vào việc tên tệp có syslog giá trị hay không. Nếu nó là syslog, thì nhật ký lỗi PHP được tiêm vào syslog cho máy chủ, thay đổi theo phân phối Linux. Một vị trí phổ biến là/var/log/syslog, nhưng nó có thể ở bất cứ đâu. Ngay cả tên của syslog thay đổi theo phân phối.

  3. Nếu tên không có đường dẫn không phải là syslog, thì một ngôi nhà thường xuyên cho tệp là gốc tài liệu của trang web (a.k.a., thư mục trang web, không bị nhầm lẫn với thư mục nhà cho tài khoản của bạn).

Bảng gian lận này đã hữu ích trong một số tình huống, nhưng tôi rất tiếc phải thừa nhận nó gần như không phổ biến. Bạn có lời chia buồn của tôi.

Hướng dẫn where does php log errors by default? - nơi nào có lỗi đăng nhập php theo mặc định?

Hướng dẫn này khám phá những điều cơ bản về việc đăng nhập PHP, bao gồm cách định cấu hình ghi nhật ký, nơi đặt nhật ký và cách ghi nhật ký có thể giúp bạn hiệu quả hơn khi khắc phục sự cố và giám sát các ứng dụng PHP của bạn.

Nó luôn luôn tốt để có một tay cầm về những điều cơ bản, vì vậy bài viết này bao gồm nhật ký lỗi được tích hợp vào PHP. Nếu bạn đang thiết lập một ứng dụng mới hoặc muốn cải thiện ứng dụng hiện có, chúng tôi khuyên bạn nên xem & nbsp; thư viện đăng nhập PHP & nbsp; nếu bạn đang làm việc trên ngăn xếp tùy chỉnh hoặc & nbsp; Khung như Laravel hoặc Symfony.

Với nhật ký lỗi tích hợp, có một vài yếu tố khác nhau mà bạn muốn ghi nhớ:

  1. Lỗi do chính động cơ PHP phát ra khi hàm lõi không thành công hoặc nếu mã có thể được phân tích cú pháp
  2. Lỗi tùy chỉnh kích hoạt ứng dụng của bạn, thường được gây ra bởi đầu vào người dùng bị thiếu hoặc không chính xác
  3. Các hoạt động trong ứng dụng của bạn, bạn có thể muốn phân tích sau, chẳng hạn như ghi khi tài khoản người dùng được cập nhật hoặc nội dung trong Hệ thống quản lý nội dung (CMS) được cập nhật

Thiết lập cấu hình

Hãy bắt đầu bằng cách xem xét cách thức cấu hình công cụ PHP để hiển thị và đầu ra lỗi. Các cài đặt này rất hữu ích để xem xét nếu bạn đang thiết lập một máy chủ mới hoặc cố gắng tìm hiểu xem việc đăng nhập có được cấu hình trên máy chủ mà người khác đã thiết lập hay không.

Cấu hình mặc định

Theo mặc định, & nbsp; Cấu hình & nbsp; liên quan đến các lỗi được tìm thấy trong các chỉ thị sau trong tệp cấu hình Php.ini. Có thể có một số tệp PHP.INI khác nhau trên hệ thống của bạn tùy thuộc vào việc bạn đang chạy PHP trên giao diện dòng lệnh (CLI) hay phía sau máy chủ web như Apache hoặc Nginx. Tại đây, nơi bạn có thể tìm thấy tệp Php.ini của mình trong các bản phân phối chung của Linux.

Vị trí tệp cấu hình mặc định

Hướng dẫn where does php log errors by default? - nơi nào có lỗi đăng nhập php theo mặc định?

Chỉ thị cấu hình phổ biến

Bạn có thể tìm thấy một danh sách đầy đủ các chỉ thị trên trang web tài liệu PHP. Dưới đây là một số chỉ thị phổ biến hơn liên quan đến ghi nhật ký.

Hướng dẫn where does php log errors by default? - nơi nào có lỗi đăng nhập php theo mặc định?

Notes:

*Thay đổi thành 0 cho các máy chủ hướng web như một biện pháp bảo mật.

** Nếu được đặt thành syslog, nó sẽ gửi lỗi đến nhật ký hệ thống.

Cấu hình thời gian chạy

PHP cung cấp một số chức năng để đọc và sửa đổi các chỉ thị cấu hình thời gian chạy. Chúng có thể được sử dụng trong một ứng dụng để ghi đè cài đặt trong php.ini. Khả năng sửa đổi các giá trị cấu hình là hữu ích khi bạn không có quyền truy cập vào các tệp cấu hình PHP (chẳng hạn như trong môi trường không có máy chủ), khi khắc phục sự cố ứng dụng hoặc khi chạy một số tác vụ nhất định (chẳng hạn như công việc cron yêu cầu thêm bộ nhớ). Bạn có thể cần tìm các cuộc gọi đến & nbsp; ________ 1 & nbsp; trong mã của bạn nếu ứng dụng không hoạt động như mong đợi. Ví dụ: nếu bạn đặt & nbsp; ________ 2to 1 trong php.ini nhưng vẫn không thấy đầu ra lỗi, rất có thể nó bị ghi đè ở đâu đó.

Hai phổ biến nhất như sau:

  1. ini_get(string <directive name>): Lấy cài đặt Chỉ thị hiện tại
  2. ini_set(string <directive name>, mixed <setting>): Đặt một chỉ thị

Nhật ký lỗi mặc định

Khi & nbsp; log_errors & nbsp; được bật nhưng & nbsp; error_log & nbsp; hasn đã được xác định, các lỗi được đăng nhập vào nhật ký lỗi máy chủ web. & Nbsp; các vị trí mặc định cho apache và nginx như sau:

  • Apache: /var/log/apache2/error.log
  • NGINX: /var/log/nginx/error.log

Chức năng ghi nhật ký

Dưới đây là các chức năng được sử dụng để tạo điều kiện ghi nhật ký lỗi ứng dụng. Hiểu cách thức ghi nhật ký hoạt động nguyên bản trong PHP có giá trị, nhưng bạn cũng nên xem xét việc sử dụng & nbsp; Thư viện ghi nhật ký PHP phổ biến & nbsp; vì chức năng mà họ thêm vào.

error_log()

Hàm này gửi một thông báo đến nhật ký lỗi hiện được cấu hình. Cách sử dụng phổ biến nhất là như sau:

error_log('Your message here');

Trên máy chủ Apache, điều này sẽ thêm một dòng mới vào & nbsp; ________ 5.

[16-Jul-2019 17:36:01 America/New_York] Your message here

Bạn có thể đọc thêm về việc đăng nhập vào Apache trong hướng dẫn này & nbsp;

Bạn cũng có thể gửi một tin nhắn đến một tệp khác. Tuy nhiên, điều này không được khuyến nghị, vì nó có thể dẫn đến sự nhầm lẫn.

ini_set()0

trigger_error()

Bạn có thể sử dụng & nbsp; ________ 11 & nbsp; mức lỗi trong ứng dụng của bạn để báo cáo các lỗi với mức độ nghiêm trọng khác nhau để ghi nhật ký. Giống như các hằng số lõi, có các mức độ cho các lỗi gây tử vong (ini_set()2), cảnh báo (ini_set()3) và thông báo (ini_set()4). Trong mã của bạn, hãy sử dụng chức năng & nbsp; ____ 15 & nbsp; cho các lỗi tùy chỉnh. Nếu mã của bạn gặp phải lỗi, hãy sử dụng & nbsp; ________ 16 với một thông báo mô tả để cho người xử lý lỗi của bạn biết có điều gì đó không ổn thay vì sử dụng & nbsp; ________ 17 & nbsp; chức năng để chấm dứt đột ngột mọi thứ.

Hàm này có hai tham số Một chuỗi thông báo lỗi và mức lỗi.

ini_set()8 ini_set()9 display_errors 0
ini_set()9
display_errors 0

display_errors 1

display_errors 2

display_errors 3 display_errors 4 display_errors 5 display_errors 6
display_errors 4
display_errors 5
display_errors 6

syslog()

Một cách khác để đăng nhập lỗi là gửi chúng trực tiếp đến hệ thống bằng & nbsp; ________ 27 & nbsp; function. Nó lấy mức lỗi làm tham số đầu tiên (____ 28, & nbsp; ________ 29 & nbsp; ________ 30, & nbsp; Tham số thứ hai là thông báo lỗi thực tế.

ini_get(string <directive name>)6 ini_get(string <directive name>)7 ini_get(string <directive name>)8
ini_get(string <directive name>)7
ini_get(string <directive name>)8

Trên đây sẽ đăng nhập một thông báo mới vào & nbsp; ________ 39:

ini_set(string <directive name>, mixed <setting>)0

Định dạng nhật ký PHP

Khi ghi nhật ký dữ liệu, bạn phải đảm bảo rằng bạn tuân theo một quy ước định dạng có ý nghĩa, bao gồm các trường như ngày/giờ, tên tệp và tin nhắn. Điều này cho phép bạn phân tích tốt hơn và tìm kiếm dữ liệu của bạn. Bạn cũng có thể biến nó thành một chức năng riêng biệt để xử lý định dạng nhật ký. Kỹ thuật tương tự được sử dụng bởi gói & nbsp; Monolog & nbsp;

ini_set(string <directive name>, mixed <setting>)1 ini_set(string <directive name>, mixed <setting>)2 ini_set(string <directive name>, mixed <setting>)3 display_errors 4 ini_set(string <directive name>, mixed <setting>)5 ini_set(string <directive name>, mixed <setting>)6 display_errors 6
ini_set(string <directive name>, mixed <setting>)2
ini_set(string <directive name>, mixed <setting>)3
display_errors 4
ini_set(string <directive name>, mixed <setting>)5
ini_set(string <directive name>, mixed <setting>)6
display_errors 6

ini_set(string <directive name>, mixed <setting>)8

ini_set(string <directive name>, mixed <setting>)9 /var/log/apache2/error.log0
/var/log/apache2/error.log0

Bạn có thể kiểm tra & NBSP của chúng tôi; Hướng dẫn ghi nhật ký Apache & nbsp; để biết thêm chi tiết về việc định cấu hình định dạng ghi nhật ký máy chủ web của bạn.

Các loại nhật ký lỗi PHP

PHP cung cấp nhiều loại nhật ký lỗi để xác định mức độ nghiêm trọng của các lỗi gặp phải khi ứng dụng của bạn chạy. Các mức lỗi cho biết liệu động cơ có thể phân tích và biên dịch các câu lệnh PHP của bạn hay không, nếu nó không thể truy cập hoặc sử dụng tài nguyên cần thiết cho ứng dụng của bạn và ngay cả khi bạn có một lỗi đánh máy có thể có trong một tên biến.

Mặc dù các mức lỗi là các giá trị số nguyên, nhưng có các hằng số được xác định trước, ví dụ như & nbsp; e_error & nbsp; và & nbsp; Sử dụng các hằng số có thể làm cho mã của bạn dễ đọc và hiểu và giữ nó tương thích về phía trước khi các mức lỗi mới được giới thiệu.

Hằng số mức độ lỗi được sử dụng bởi & nbsp; error_reporting () & nbsp; hàm để cho biết loại lỗi nào sẽ được hiển thị hoặc ghi nhật ký. Lưu ý Điều này cũng có thể được cấu hình trong tệp INI. Bạn cũng có thể sử dụng các toán tử bitwise để tùy chỉnh độ mịn của nhật ký ứng dụng của bạn.

/var/log/apache2/error.log1 /var/log/apache2/error.log2
/var/log/apache2/error.log2

Một lưu ý về việc ngăn chặn lỗi

Bạn có thể gặp mã có tiền tố một cuộc gọi chức năng với ký hiệu @, đó là toán tử điều khiển lỗi. Điều này ngăn chặn bất kỳ lỗi nào phát ra từ chức năng. Cuối cùng, điều này có nghĩa là nếu chức năng thất bại, bạn đã giành được bất kỳ lỗi nào liên quan đến nó trên màn hình hoặc trong nhật ký của bạn. Đây là một thực hành kém và nên tránh. Hãy nhớ rằng, bạn luôn có thể đặt A & NBSP; Trình xử lý lỗi tùy chỉnh & nbsp; để bắt lỗi.

/var/log/apache2/error.log3 /var/log/apache2/error.log4
/var/log/apache2/error.log4

Nếu bạn đang cố gắng sửa lỗi nhưng không thấy bất kỳ lỗi nào, hãy tìm kiếm mã của bạn cho các cuộc gọi chức năng được đặt trước với một @. Bạn cũng có thể cài đặt và bật tiện ích mở rộng & NBSP; Lở, vô hiệu hóa hành vi này và đảm bảo tất cả các lỗi được báo cáo.

Thực tiễn tốt nhất là đặt mức lỗi thành & nbsp; ________ 55 & nbsp; trừ khi cần có trường hợp sử dụng cụ thể. Thông báo và cảnh báo có thể chỉ ra các biến không được tạo ra theo cách bạn dự định.

Bật nhật ký lỗi PHP

Tin nhắn nhật ký có thể được tạo bằng tay bằng cách gọi & nbsp; ________ 56 & nbsp; hoặc tự động khi các thông báo, cảnh báo hoặc lỗi xuất hiện trong quá trình thực thi. Theo mặc định, nhật ký lỗi trong PHP bị vô hiệu hóa.

Bạn có thể kích hoạt nhật ký lỗi theo một trong hai cách: bằng cách chỉnh sửa & nbsp; ________ 57or bằng cách sử dụng ____58. Sửa đổi & nbsp; ________ 59i & nbsp; là cách thích hợp để làm điều này. Hãy chắc chắn khởi động lại máy chủ web của bạn sau khi chỉnh sửa cấu hình.

Thông qua & nbsp; ________ 60:

 /var/log/nginx/error.log1

Via ini_set():

 /var/log/nginx/error.log3

Cài đặt thời gian chạy này chỉ cần thiết nếu chỉ thị log_errors không được bật như một cấu hình chung vì một lý do cụ thể và mã ứng dụng của bạn yêu cầu.

Như một thông lệ tốt nhất, bạn có thể kích hoạt báo cáo và đăng nhập lỗi trên các máy chủ hướng về web và vô hiệu hóa các lỗi hiển thị trong phản hồi. & NBSP; Hiển thị lỗi trong môi trường trực tiếp có thể là một lỗi bảo mật nghiêm trọng và phải tránh ; Chỉ thị được đề cập trong cấu hình sau do mối quan tâm bảo mật này.Displaying errors in response in a live environment can be a serious security mistake and must be avoided. The display_errors directive is mentioned in the following configuration due to this security concern.

Đăng nhập tùy chỉnh với JSON

Ghi nhật ký các hành động và hoạt động của người dùng cung cấp một nguồn thông tin có giá trị để xem các tính năng nào được sử dụng, để biết các bước mà người dùng thực hiện để hoàn thành các tác vụ và để theo dõi và tái tạo các lỗi mà họ gặp phải. Mặc dù bạn có thể đăng nhập hoạt động này vào một tệp cục bộ, nhưng bạn thường muốn đăng nhập vào dịch vụ ghi nhật ký hiện có để giúp phân tích và báo cáo dễ dàng hơn. Thay vì phát minh ra định dạng của riêng bạn, điều này sẽ yêu cầu một trình phân tích cú pháp tùy chỉnh sử dụng JSON làm định dạng ghi nhật ký của bạn. JSON là một định dạng có cấu trúc được thiết kế để giúp các dịch vụ ghi nhật ký dễ dàng và các ứng dụng khác vào các sự kiện phân tích. Để biết thêm về việc tận dụng tối đa việc ghi nhật ký của JSON, xem & nbsp; tám mẹo tiện dụng để xem xét khi đăng nhập JSON.

Như một thông lệ tốt nhất, hãy sử dụng JSON để ghi nhật ký hành vi và lỗi ứng dụng của người dùng. Bạn có thể làm điều này ngay từ đầu, vì vậy bạn không phải chuyển đổi hoặc mất các bản ghi cũ hơn.

Các mảng và đối tượng PHP có thể được chuyển đổi thành chuỗi JSON bằng cách sử dụng ____64. Tương tự như vậy, JSON có thể được hoàn nguyên như một cấu trúc PHP gốc bằng cách sử dụng & nbsp; ____ ____ 65.

Đây là một ví dụ về cách sử dụng chức năng & nbsp; ____ ____ 66 & nbsp; với một mảng kết hợp:

 /var/log/nginx/error.log7  /var/log/nginx/error.log8  /var/log/nginx/error.log9 error_log('Your message here');0 error_log('Your message here');1 error_log('Your message here');2
 /var/log/nginx/error.log8
 /var/log/nginx/error.log9
error_log('Your message here');0
error_log('Your message here');1
error_log('Your message here');2

error_log('Your message here');3

error_log('Your message here');4 error_log('Your message here');5
error_log('Your message here');5

Đây là một ví dụ về cách sử dụng & nbsp; ________ 76function:

error_log('Your message here');7 error_log('Your message here');8 error_log('Your message here');9 /var/log/apache2/error.log0 /var/log/apache2/error.log1 /var/log/apache2/error.log2 /var/log/apache2/error.log3 /var/log/apache2/error.log4
error_log('Your message here');8
error_log('Your message here');9
/var/log/apache2/error.log0
/var/log/apache2/error.log1
/var/log/apache2/error.log2
/var/log/apache2/error.log3
/var/log/apache2/error.log4

Ngoại lệ

Ngoại lệ là một cách thanh lịch để xử lý các lỗi ứng dụng và đăng nhập tiếp theo. Họ đã ném và bị bắt trong A & nbsp; ________ 85 & nbsp; khối hoặc được xử lý bởi một chức năng ngoại lệ tùy chỉnh.

Các trường hợp ngoại lệ được sử dụng khi các phần của logic ứng dụng của bạn có thể tiếp tục dòng thực thi thông thường.

Ngoại lệ cơ sở

PHP có cơ sở & nbsp; ________ 86 & nbsp; lớp có sẵn theo mặc định trong ngôn ngữ. Lớp ngoại lệ cơ sở có thể mở rộng nếu được yêu cầu.

Ví dụ sau đây giả định & nbsp; ________ 87.

/var/log/apache2/error.log8 /var/log/apache2/error.log9 [16-Jul-2019 17:36:01 America/New_York] Your message here0 display_errors 4 [16-Jul-2019 17:36:01 America/New_York] Your message here2 [16-Jul-2019 17:36:01 America/New_York] Your message here3 [16-Jul-2019 17:36:01 America/New_York] Your message here4 [16-Jul-2019 17:36:01 America/New_York] Your message here5
/var/log/apache2/error.log9
[16-Jul-2019 17:36:01 America/New_York] Your message here0
display_errors 4
[16-Jul-2019 17:36:01 America/New_York] Your message here2
[16-Jul-2019 17:36:01 America/New_York] Your message here3
[16-Jul-2019 17:36:01 America/New_York] Your message here4
[16-Jul-2019 17:36:01 America/New_York] Your message here5

[16-Jul-2019 17:36:01 America/New_York] Your message here6 [16-Jul-2019 17:36:01 America/New_York] Your message here7
[16-Jul-2019 17:36:01 America/New_York] Your message here7

[16-Jul-2019 17:36:01 America/New_York] Your message here8

display_errors 6

Ví dụ trên sẽ tạo ra mục nhập nhật ký lỗi sau:

ini_set()00

Một ngoại lệ tùy chỉnh

Hãy nói rằng bạn có một tần số nhất định của một loại lỗi cụ thể và muốn điều chỉnh một ngoại lệ tùy chỉnh để xử lý nó. Trong ví dụ sau, chúng tôi sẽ tạo ra một ngoại lệ tùy chỉnh có tên & nbsp; ____ 101 & nbsp; để xử lý các trường hợp của quá nhiều lần đăng nhập.

Xác định lớp ngoại lệ tùy chỉnh:

ini_set()02

ini_set()03 ini_set()04 display_errors 4 display_errors 6
ini_set()04
display_errors 4
display_errors 6

Xác định một lớp để ném ngoại lệ tùy chỉnh:

ini_set()07

ini_set()08 ini_set()09 ini_set()10 ini_set()11
ini_set()09
ini_set()10
ini_set()11

ini_set()12 display_errors 4 display_errors 6
display_errors 4
display_errors 6

Bắt cố gắng đăng nhập người dùng với ngoại lệ tùy chỉnh:

ini_set()15 ini_set()16 ini_set()17 ini_set()18 ini_set()19 display_errors 6
ini_set()16
ini_set()17
ini_set()18
ini_set()19
display_errors 6

Nếu chúng tôi chạy một chương trình đã hoàn thành, nó sẽ hiển thị đầu ra tương tự như thế này:

ini_set()21

Ngoại lệ SPL

PHP có thư viện mã tích hợp có tên & NBSP; Thư viện PHP tiêu chuẩn & nbsp; (SPL). Thư viện có một số & nbsp; các lớp ngoại lệ & nbsp; được xác định và có sẵn cho các lỗi cấp độ mã thông thường. Những ngoại lệ này mở rộng từ lớp ngoại lệ PHP cơ sở bên trong. Họ chỉ khác nhau về tên và có thể bị ném, bắt và ghi lại.

Đầu tiên, chúng ta có thể xác định một lớp để ném ngoại lệ SPL (ini_set()22). Ví dụ sử dụng Phương pháp Phép thuật PHP ____123 để bắt một cuộc gọi phương thức không xác định.

ini_set()24 ini_set()25 ini_set()26 ini_set()27 ini_set()11
ini_set()25
ini_set()26
ini_set()27
ini_set()11

ini_set()29 display_errors 4 display_errors 6
display_errors 4
display_errors 6

Cố gắng sử dụng một phương pháp không xác định:

ini_set()15 ini_set()33 ini_set()34 ini_set()35 ini_set()36 ini_set()37 display_errors 6
ini_set()33
ini_set()34
ini_set()35
ini_set()36
ini_set()37
display_errors 6

Giao diện php có thể ném

Php 7 và 8 cung cấp A & nbsp; giao diện có thể sử dụng được & nbsp; (được triển khai bởi & nbsp; Exception & nbsp; và & nbsp; error & nbsp; các lớp) được thiết kế để bắt các ngoại lệ PHP nội bộ như & nbsp; typeerror & nbsp; và nbsp; parseerror. Trong các phiên bản trước, các lỗi nghiêm trọng không thể được xử lý một cách duyên dáng vì chúng ngay lập tức chấm dứt thực thi chương trình. Bạn có thể tìm thấy tài liệu ngoại lệ được xác định trước đầy đủ & NBSP; ở đây.

Giao diện có thể ném có thể được thực hiện trực tiếp bởi các ngoại lệ tùy chỉnh và phải mở rộng từ lớp ngoại lệ cơ sở để thực hiện.

ini_set()15 ini_set()40 ini_set()41 ini_set()42 display_errors 6
ini_set()40
ini_set()41
ini_set()42
display_errors 6


Cập nhật lần cuối: 2022

Lỗi PHP được ghi lại ở đâu?

Vị trí của tệp nhật ký lỗi có thể được đặt thủ công trong PHP. Tệp INI. Trên máy chủ Windows, trong IIS, nó có thể là một cái gì đó giống như "'error_log = c: \ log_files \ php_errors.log'" Trong Linux, nó có thể là giá trị của "'/var/log/php_errors.error_log = C:\log_files\php_errors. log'" in Linux it may be a value of "'/var/log/php_errors.

Làm cách nào để tìm thấy lỗi PHP?

Nhanh chóng hiển thị tất cả các lỗi PHP Một cách nhanh nhất để hiển thị tất cả các lỗi và cảnh báo PHP là thêm các dòng này vào tệp mã PHP của bạn: ini_set ('display_errors', 1); ini_set ('display_startup_errors', 1); error_Reporting (e_all);ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);

Apache nhật ký lỗi PHP ở đâu?

Nếu bạn có bản dựng apache và PHP từ nguồn, thì các nhật ký lỗi theo mặc định sẽ được tạo tại $ {apache cài đặt dir}/log/error_log, tức là, thường/usr/local/apache2/log/error_log.${Apache install dir}/logs/error_log , i.e., generally /usr/local/apache2/logs/error_log .

Tôi có thể tìm nhật ký lỗi ở đâu?

Truy cập nhật ký lỗi Windows thông qua lệnh Run khởi chạy hộp thoại Run bằng cách nhấn đồng thời phím Windows và phím R từ bàn phím của bạn;Trong Run Windows mới ra mắt, nhập EventVWR;Nhấn Enter để chạy lệnh;Và cửa sổ Trình xem sự kiện sẽ tự động bật lên ngay sau đó.via the Run command Launch the Run dialog box by simultaneously pressing the Windows key and the R key from your keyboard; In the newly launched Run windows, type in eventvwr; Hit Enter to run the command; And the Event Viewer window should automatically pop up right after that.