2014-04-25 17 views

Trả lời

-1

Mở file php.ini của bạn Kiểm tra con đường chống lại error_log

+0

này không nên gạt downvoted, bởi vì đây là cách sử dụng đúng như dự định. Mọi người nên sử dụng các công cụ được cung cấp theo cách họ đã dự định và chỉ quay giải pháp riêng của họ lên nếu nó không thể tiếp cận hoặc không được cung cấp. Có quá nhiều người trên trang web này giả định rằng chỉ vì nó không giải quyết vấn đề cụ thể của họ (và tất cả các vấn đề liên quan nhưng không được báo cáo) rằng nó tự động sai. Điều này không sai, và nếu nó không hoạt động, thì máy chủ của bạn được thiết lập kém, đó là vấn đề thực sự của bạn. – mopsyd

+0

Tôi sẽ thêm rằng các bản ghi cũng có thể được định nghĩa trong apache.conf hoặc vhost.conf. – mopsyd

5

Trích from the documentation: string

error_log

Tên của tập tin mà lỗi kịch bản nên được đăng nhập. Tệp phải được người dùng máy chủ web ghi được. Nếu sử dụng syslog giá trị đặc biệt, các lỗi sẽ được gửi đến bộ ghi hệ thống thay thế. Trên Unix, điều này có nghĩa là syslog (3) và trên Windows NT nó có nghĩa là sổ ghi sự kiện . Trình ghi nhật ký hệ thống không được hỗ trợ trên Windows 95. Xem thêm: syslog(). Nếu chỉ thị này không được thiết lập, lỗi sẽ được gửi đến bộ ghi lỗi SAPI . Ví dụ, nó là một bản ghi lỗi trong Apache hoặc stderr trong CLI.

Vì vậy, khi giá trị không được thiết lập (đó là mặc định), nó sẽ được gửi đến logger lỗi cha mẹ, đó là apache (nếu chạy qua nó) hoặc stderr nếu bạn chạy các script trên dòng lệnh .

Nếu bạn sử dụng tập lệnh qua apache, bạn sẽ phải xem nhật ký lỗi apache, thường là trong /var/log/apache hoặc /var/log/httpd, tùy thuộc vào phân phối của bạn. Bạn có thể kiểm tra tệp cấu hình apache cho vị trí chính xác.

Edit:

Tôi chỉ nhận thấy tôi không nhận định câu hỏi của bạn, tôi đoán bạn có nghĩa là error_log có giá trị thực tế error_log?

Tôi vừa thực hiện một số thử nghiệm. Khi tôi đặt error_log thành giá trị như php_errors.log PHP vẫn ghi các thông báo lỗi vào nhật ký lỗi apache. Nó hoạt động như thể giá trị rỗng. Khi tôi đặt giá trị thành đường dẫn đầy đủ (ví dụ: /tmp/php_errors.log) thì nó sẽ ghi các lỗi vào tệp được chỉ định.

Vì vậy, tôi đoán trong trường hợp của bạn, nó ghi các lỗi vào tệp nhật ký lỗi apache.

Tất nhiên bạn có thể thiết lập tập tin đăng nhập của bạn được thêm

ini_set("error_log", "/tmp/php_errors.log"); 

đến file PHP của bạn, nơi bạn cần nó (nếu nó chưa bị vô hiệu hóa bởi một quản trị viên).

+0

không có '/ apache' trong'/var/log'. nhưng có một 'error_log' trong'/usr/local/apache/logs' nhưng nó dường như không hiển thị bất kỳ lỗi PHP nào. khi tôi chạy trang PHP của tôi, tôi nhận được một màn hình trống và tôi muốn biết lỗi cú pháp. 'display_errors' bị tắt trong' php.ini'. – Ryan

+0

bạn sẽ có thể bật 'display_errors' trong tệp php của bạn. Chỉ cần thêm 'ini_set (" display_errors ", 1);' ngay từ đầu. –

+0

người bạn ý tưởng tuyệt vời – Ryan

0

Khi giá trị chỉ đơn giản nói error_log (hoặc error_log = error_log trong tập tin php.ini của bạn), có nghĩa là các lỗi sẽ được ghi vào một tập tin gọi error_log trong cùng thư mục mà các lỗi xảy ra.

Vì vậy, nếu bạn có một tập tin gọi là index.php trong /home/user/public_html/ đó ném một lỗi, lỗi sẽ được ghi vào: /home/user/public_html/error_log.

Nếu bạn có tập tin gọi là resize.php trong /home/user/public_html/admin/images/ đó ném một lỗi, thì lỗi sẽ được ghi vào: /home/user/public_html/admin/images/error_log


Nguồn: Display and log errors for PHP

Các vấn đề liên quan