Làm cách nào để kích hoạt ghi nhật ký php?

Nếu bạn yêu cầu bật ghi nhật ký lỗi cho trang web dựa trên PHP của mình, bạn sẽ cần bật tính năng này trong vòng một. người sử dụng. ini trên miền của bạn. Điều này hữu ích khi khắc phục sự cố 500 lỗi máy chủ nội bộ và các trang trống hiển thị trong trình duyệt. Các bước dưới đây sẽ giải thích cách kích hoạt tính năng ghi nhật ký lỗi PHP trong một. người sử dụng. tập tin ini

  1. Thêm các dòng sau vào một dòng hiện có hoặc tạo một dòng mới. người sử dụng. ini trong thư mục public_html của miền [thay thế 'your_FTP_user' bằng tên người dùng FTP của bạn]
log_errors = On
error_log = /usr/home/your_FTP_user/PHP_errors.log
error_reporting = 32767

Khi những điều trên đã được thêm vào. người sử dụng. ini, bạn cần tạo tệp nhật ký, e. g. PHP_errors. đăng nhập vào thư mục nhà của bạn. Tệp nhật ký không được tạo tự động

Đảm bảo rằng các quyền của PHP_errors. tệp nhật ký là 755 [mọi người có thể đọc và thực thi được, nhưng chỉ chủ sở hữu tệp/thư mục mới có thể ghi] để tệp có thể ghi được. Các quyền có thể được thay đổi thông qua Trình quản lý tệp konsoleH, SSH [chmod] hoặc ứng dụng khách FTP có khả năng

Để kiểm tra nhật ký lỗi PHP cho ứng dụng của bạn và tìm bất kỳ cảnh báo/lỗi nào đang được hiển thị, trước tiên bạn cần đảm bảo rằng tính năng ghi nhật ký lỗi PHP đã được bật. Để bật ghi nhật ký lỗi PHP, trước tiên hãy truy cập cPanel của bạn và điều hướng đến "Chọn phiên bản PHP", trong menu Phần mềm

Khi bạn truy cập "Chọn phiên bản PHP", bạn sẽ được hiển thị với các tùy chọn sau

Ở đây, chúng ta sẽ cần chuyển đến "Chuyển sang tùy chọn PHP" từ phía bên phải trên ảnh chụp màn hình, để chúng ta có thể kích hoạt ghi nhật ký lỗi PHP

Trong Tùy chọn PHP, bạn sẽ được hiển thị với các tùy chọn sau

Bạn sẽ cần nhấp vào E_ALL để thay đổi nó. Trong trường hợp này, nó đã được kích hoạt

Nếu bạn nhấp vào E_ALL, bạn sẽ được hiển thị với menu thả xuống, từ đó bạn có thể kích hoạt nó


Để bật tính năng báo lỗi, bạn cần chọn E_ALL. Khi tùy chọn này được chọn, chỉ cần nhấp vào nút "Áp dụng" và "Lưu" từ cuối trang này.  

Tất cả các lỗi và cảnh báo PHP mới sẽ được ghi vào thư mục gốc của ứng dụng của bạn trong một tệp có tên "error_log"

Ghi nhật ký lỗi PHP cho trang web của bạn là cấp độ ghi nhật ký tùy chọn có thể được kích hoạt để ghi nhật ký các lỗi xảy ra với mã PHP. Có một số lý do bạn có thể chọn bật tính năng ghi nhật ký lỗi PHP. Bạn có thể muốn bật tính năng ghi nhật ký lỗi PHP nếu bạn đang tích cực phát triển trang web của mình để hỗ trợ khắc phục sự cố. Nếu bạn gặp phải lỗi 'trang trắng chết chóc' đáng sợ [lỗi đó tải một trang trống và không cho bạn biết điều gì sai]. Hoặc "lỗi 500" không ghi vào nhật ký lỗi Apache như lỗi cấp độ 500 'thực', thì bạn sẽ cần bật ghi nhật ký lỗi PHP cho trang web của mình để tìm lỗi tập lệnh. Làm như vậy sẽ khiến các lỗi PHP được ghi vào vị trí bạn chọn để bạn có thể xác định nguyên nhân gây ra lỗi và tìm cách khắc phục.

Lập kế hoạch sử dụng cài đặt nào

Bạn nên quyết định cài đặt nhật ký nào bạn cần đặt trước khi bật. Hầu hết thời gian, bạn chỉ cần chọn ghi lỗi PHP vào nhật ký riêng tư ở một vị trí mà bạn chỉ định. Nếu trang web không hoạt động, thì bạn cũng có thể chọn hiển thị lỗi trên trang web trong trình duyệt. GHI CHÚ. Hiển thị lỗi PHP trên một trang web trực tiếp là một vấn đề bảo mật, vì vậy, không bật cài đặt này trên một trang web trực tiếp. Dưới đây là các cài đặt được đề xuất cho một trang web trực tiếp

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = off

Dưới đây là các tùy chọn cài đặt được đề xuất cho một trang web đang phát triển không hoạt động

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on

Cả hai ví dụ hiển thị ở trên đều không bao gồm đường dẫn thực tế. Bạn có thể phải tạo tệp error_log, thay thế ‘/path/to/docroot/error_log’ bằng đường dẫn chính xác đến tệp. Tôi thường đặt những thứ này trong public_html, và sau đó cũng tạo một. htaccess để ngăn chặn truy cập trái phép vào nhật ký này. Hãy tiếp tục và xác định cài đặt nào bạn sẽ sử dụng

Tạo nhật ký lỗi

Quyền truy cập gốc

Để tạo tệp trong người dùng cPanel ‘cp_user’, bạn sẽ thực hiện các thao tác sau với tư cách là người dùng gốc thông qua SSH [gốc tài liệu cho hầu hết các miền chính được lưu trữ trên cPanel là public_html]

  cd /home/cp_user/public_html
  touch error_log
  chown cp_user: error_log

Ngoài ra, hãy chắc chắn rằng người dùng có thể ghi nhật ký [quyền 644 sẽ ổn đối với hầu hết các hệ thống Knownhost]. Làm như sau để xem tập tin

  ls -lah /home/cp_user/public_html/error_log

Các quyền sẽ đọc như sau nếu được đặt thành 644

  -rw-r--r--

Quyền truy cập của người dùng cPanel

Nếu bạn không có quyền truy cập root và cần thực hiện những thay đổi này với tư cách là người dùng cPanel, có một số cách bạn có thể thực hiện việc này. Bạn có thể sử dụng Trình quản lý tệp, FTP hoặc SSH của cPanel nếu người dùng cPanel có quyền truy cập SSH. Hãy sử dụng Trình quản lý tệp

Đăng nhập vào tài khoản cPanel của người dùng của bạn tại URL sau [thay thế tên miền của bạn. tld bằng miền thực của bạn]

https. //tên miền của bạn. tld/cpanel

Điều hướng như sau

  cPanel >> Files >> File Manager

Nhấp vào biểu tượng Trình quản lý tệp

Một cửa sổ mới sẽ mở ra hiển thị hệ thống tập tin. Ở góc trên cùng bên trái, bạn sẽ thấy các biểu tượng để thêm tệp và thư mục

Nhấp vào nút “+ Tệp” để tạo tệp mới. Một hộp thoại mới sẽ mở ra. Bạn sẽ nhập thông tin chi tiết của tệp sẽ được tạo tại đây

Nhấn vào nút để tạo tập tin

Tiếp theo, bạn có thể sử dụng điều hướng ở phía bên trái để thay đổi thư mục chứa tệp để xác nhận rằng nó thực sự đã được tạo và có quyền thích hợp

Cách bật ghi nhật ký lỗi PHP

Trước tiên, bạn cần quyết định xem mình có nên kích hoạt tính năng ghi nhật ký lỗi PHP thông qua ứng dụng php hay không. ini hoặc thông qua. htaccess. Điều này sẽ phụ thuộc vào Trình xử lý PHP bạn đang sử dụng. Để tìm hiểu xem bạn đang sử dụng Trình xử lý PHP nào với máy chủ cPanel, hãy chạy phần sau với tư cách người dùng root thông qua SSH

  /usr/local/cpanel/bin/rebuild_phpconf --current

Nếu bạn đang sử dụng nhiều phiên bản PHP, bạn có thể cần xác định phiên bản PHP nào mà trang web của bạn đang sử dụng để xác định trình xử lý PHP chính xác

Nếu bạn thiếu quyền truy cập root, bạn có thể tải tệp phpinfo lên trang web của mình, sau đó kiểm tra tệp đó để xác định Trình xử lý PHP hiện tại của bạn. Để làm như vậy, hãy đăng nhập vào cPanel, điều hướng đến Trình quản lý tệp, nhấp vào nút để thêm tệp, đặt tên tệp là phpinfo. php và thêm nội dung sau

________số 8

Bây giờ, hãy truy cập phpinfo của trang web của bạn. trang php trong trình duyệt

https. // trang web của bạn. tld/phpinfo. php

Tìm "API máy chủ". Nếu bạn thấy “Apache 2. 0 Handler”, thì bạn đang sử dụng DSO. Nếu bạn thấy “CGI/FastCGI” hoặc “CGI”, thì có khả năng bạn đang sử dụng suPHP, CGI hoặc FastCGI

Thí dụ. suPHP, CGI, FastCGI sẽ được hiển thị. “API máy chủ” ở gần đầu trang phpinfo

Thí dụ. DSO được sử dụng khi “Apache 2. 0” được hiển thị bên cạnh “API máy chủ” trong trang phpinfo

suPHP

Nếu bạn đang sử dụng suPHP, thì bạn sẽ muốn kích hoạt ghi nhật ký thông qua php. ini như hình bên dưới [lưu ý rằng bạn sẽ muốn chỉnh sửa display_errors cho phù hợp]

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = off

Nếu php. ini và tệp nhật ký lỗi không tồn tại, bạn sẽ muốn tạo cả hai và đảm bảo thay đổi quyền sở hữu của cả hai cho người dùng. php. ini có thể được tạo theo cách tương tự như error_log đã được trình bày trong phần trước. Nếu cả hai tệp này đã tồn tại thì bạn nên sao lưu từng tệp trước khi thực hiện bất kỳ thay đổi nào. Bạn có thể sao lưu các tệp này bằng cách sử dụng lệnh cp với tư cách là người dùng root như minh họa bên dưới

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = off
0

Lệnh này tạo một bản sao của tệp với quyền sở hữu và quyền hiện tại của nó với ‘. tiện ích mở rộng sao lưu

Bạn có thể thực hiện việc này trong Trình quản lý tệp của cPanel bằng cách trước tiên chọn tệp để tạo bản sao lưu, sau đó nhấp vào biểu tượng “Sao chép” trên thanh công cụ. Nhập tên của tệp theo sau là ‘. bak’ khi được nhắc về vị trí sao chép tệp vào

Nhấp vào “Sao chép tệp [s]” và tệp sẽ được sao chép với tên mới ở vị trí được chỉ định

Sau khi tạo bản sao của bất kỳ tệp error_log và php nào hiện có. ini, bạn có thể tiến hành chỉnh sửa chúng nếu cần. Vì bạn có bản sao lưu của error_log, bạn có thể quyết định xóa nó trước khi bắt đầu viết lại. Nếu vậy, bạn có thể làm như vậy bằng lệnh sau với tư cách là người dùng root

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
0

Nếu bạn đang sử dụng Trình quản lý tệp, chỉ cần xóa và tạo lại tệp

Sau khi bạn chỉnh sửa php. ini với các chi tiết ở trên tương ứng và tạo nhật ký lỗi, bạn sẽ bắt đầu thấy các lỗi được ghi vào tệp ngay khi chúng được kích hoạt

DSO

Nếu bạn đang sử dụng DSO, thì bạn sẽ muốn kích hoạt ghi nhật ký qua. htaccess như được hiển thị bên dưới bằng cách sử dụng các chỉ thị php_flag và php_value

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
1

Bạn cũng nên tạo một bản sao lưu của. htaccess nếu có trước khi thực hiện bất kỳ thay đổi nào. Bạn có thể tạo bản sao lưu của tệp bằng lệnh cp với tư cách là người dùng root như hình bên dưới

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = off
0

Lệnh này tạo một bản sao của tệp với quyền sở hữu và quyền hiện tại của nó với ‘. tiện ích mở rộng sao lưu

Bạn cũng có thể thực hiện việc này trong Trình quản lý tệp của cPanel bằng cách trước tiên chọn tệp để tạo bản sao lưu, sau đó nhấp vào biểu tượng “Sao chép” trên thanh công cụ. Nhập tên của tệp theo sau là ‘. bak’ khi được nhắc về vị trí sao chép tệp vào. Nhấp vào “Sao chép tệp [s]” và tệp sẽ được sao chép với tên mới ở vị trí được chỉ định. Sau đó, bạn có thể tiến hành chỉnh sửa. htaccess với các chỉ thị ghi lỗi được lưu ý

Nếu một error_log đã tồn tại, bạn cũng có thể tạo một bản sao lưu của nó, sau đó xóa nó và tạo lại nó với quyền và quyền sở hữu chính xác để nó trống. Để làm trống error_log với quyền root, bạn chỉ cần chạy lệnh này

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
0

Ngay sau khi thực hiện những thay đổi như vậy, tôi luôn xem nhật ký lỗi Apache và tải lại trang web [chỉ để đảm bảo rằng tôi không làm hỏng trang web do lỗi đánh máy hoặc lỗi khác]. Để xem nhật ký lỗi của Apache, hãy sử dụng lệnh sau qua SSH với tư cách là người dùng root

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
4

Nếu có bất kỳ lỗi nào gây ảnh hưởng xấu đến trang web, chúng sẽ được ghi lại tại đây khi tải lại trang web [điều này không phổ biến nhưng luôn kiểm tra]

Nếu bạn không có quyền truy cập root, hãy tiếp tục và chỉ cần tải lại trang web để đảm bảo trang web không bị hỏng sau khi thực hiện các thay đổi này. Hãy nhớ xóa bộ nhớ cache của trình duyệt hoặc sử dụng một trình duyệt mới để bộ nhớ đệm của trình duyệt không ảnh hưởng đến kết quả

Cuối cùng, để vô hiệu hóa quyền truy cập vào nhật ký lỗi của bạn, bạn có thể thêm phần sau vào. htaccess

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
5

Kiểm tra các thay đổi của bạn

Bạn có thể muốn kiểm tra và đảm bảo rằng nhật ký lỗi của mình đang hoạt động như mong muốn, đặc biệt nếu bạn đang khắc phục lỗi chỉ xảy ra không liên tục và bạn không thể kích hoạt nó theo yêu cầu. Bạn sẽ muốn chắc chắn rằng nhật ký lỗi đang ghi nhật ký lỗi một cách hiệu quả để bạn có thể nắm bắt lỗi khi nó xảy ra tiếp theo. Đầu tiên, tạo một tập lệnh PHP mới với tư cách là người dùng root và cấp cho nó quyền sở hữu chính xác [thay đổi 'cp_user' thành người dùng cPanel của bạn]

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
6

Chỉnh sửa tệp với nội dung sau

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
7

Bây giờ, hãy xem nhật ký lỗi và tải tập lệnh của bạn trong trình duyệt

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
8

Nếu trang web của bạn là trang web của tôi. tld, sau đó bạn sẽ truy cập trang web của tôi. tld/error_logging_test. php trong trình duyệt. Điều này sẽ kích hoạt lỗi được xác định trong tập lệnh được ghi vào nhật ký lỗi mà chúng tôi đã bật. Bây giờ bạn sẽ thấy lỗi xuất hiện trong nhật ký lỗi nếu việc ghi nhật ký lỗi đang hoạt động bình thường

Bạn có thể làm tương tự như người dùng cPanel bằng Trình quản lý tệp. Bạn sẽ tạo tệp mới có tên “error_logging_test. php”, thêm nội dung ở trên và lưu lại. Sau đó, bạn sẽ kiểm tra tập lệnh bằng cách truy cập my-site. tld/error_logging_test. php trong trình duyệt [thay thế my-site. tld với tên miền thực của bạn]. Bây giờ bạn có thể kiểm tra error_log và xem liệu lỗi được tạo bằng cách truy cập tập lệnh có xuất hiện hay không. Nếu vậy, thì việc ghi nhật ký lỗi đang hoạt động như mong đợi. Nếu không, vui lòng mở một vé hỗ trợ và chúng tôi sẽ sẵn lòng giúp đỡ

Làm cách nào tôi có thể lấy nhật ký PHP?

Thông báo nhật ký có thể được tạo thủ công bằng cách gọi error_log[] hoặc tự động khi có thông báo, cảnh báo hoặc lỗi trong quá trình thực thi . Theo mặc định, nhật ký lỗi trong PHP bị tắt. Bạn có thể bật nhật ký lỗi theo một trong hai cách. bằng cách chỉnh sửa php. ini hoặc bằng cách sử dụng ini_set.

Nhật ký lỗi PHP mặc định ở đâu?

Nếu bạn đã xây dựng Apache và PHP từ nguồn, thì nhật ký lỗi theo mặc định được tạo tại ${Apache install dir}/logs/error_log , i.e., generally /usr/local/apache2/logs/error_log . Else, if you have installed it from the repository, you will find it at /var/log/apache2/error_log .

Chức năng ghi lỗi trong PHP là gì?

PHP error_log[] .

Chủ Đề