2013-01-05 56 views
5

Tôi hiện đang đặt biến số environment của Codeigniter root thành development.Tôi muốn codeigniter để echo lỗi php thay vì 500 lỗi nội bộ

Và tôi cũng chưa bật chế độ URL nhỏ.

Tôi không muốn kiểm tra /var/log/apache2/error.log mỗi đêm và mỗi ngày!

Muốn lỗi PHP của tôi quay lại trang. 500 Lỗi nội bộ thực sự là * HARD * phương pháp est có thể được sử dụng để hiển thị lỗi.

Lưu ý rằng chúng tôi đang làm việc trên máy chủ Ubuntu 12.04 LTS với cấu hình mặc định.

+0

Có lẽ nó không phải là người viết mã, bạn đã kiểm tra 'php.ini' cho' display_errors' chưa? –

Trả lời

13

Như đã đề cập trong nhận xét tôi nghi ngờ rằng đây là vấn đề của CodeIgniter. Có nhiều khả năng bạn chỉ cần đặt display_errors để tắt trong số php.ini của mình.

Nếu tôi nhớ chính xác, index.php của CI có chứa một cuộc gọi đến ini_set('error_reporting', ..); để thay đổi hành vi mặc định, vì vậy bạn luôn có thể xem trong đó trước và xem điều gì đang diễn ra.

Chỉ cần có một cái nhìn, đây là mặc định:

/* 
|--------------------------------------------------------------- 
| PHP ERROR REPORTING LEVEL 
|--------------------------------------------------------------- 
| 
| By default CI runs with error reporting set to ALL. For security 
| reasons you are encouraged to change this when your site goes live. 
| For more info visit: http://www.php.net/error_reporting 
| 
*/ 
    error_reporting(E_ALL); 

Nếu bạn chỉ cần thêm dưới có ini_set('display_errors', 1);, nó nên bắt đầu làm việc tốt. Rõ ràng là đặt cược tốt nhất là thêm công tắc cho môi trường của bạn để đặt các biến này, tôi không chắc chắn tại sao nó không giống như vậy, nhưng đây là một ví dụ:

if (defined('ENVIRONMENT')) 
{ 
    switch (ENVIRONMENT) 
    { 
     case 'development': 
      error_reporting(E_ALL); 
      ini_set('display_errors', 1); 
      break; 
     case 'production': 
      error_reporting(0); 
      ini_set('display_errors', 0); 
      break; 
    } 
} 
+0

Câu trả lời xuất sắc! – Will

3

Chỉ thêm những điều sau đây vào chỉ mục của bạn. php, trong trường hợp môi trường phát triển:

case 'development': 
error_reporting(E_ALL); 
ini_set('display_errors', 'On'); 

EDIT: như Rudi Visser cho biết, bạn có thể sửa nó thay đổi php.ini của bạn. Tôi thích sửa chữa ở đây, vì vậy bất cứ khi nào tôi tải xuống dự án (máy tính xách tay, máy tính văn phòng hoặc máy tính tôi mượn trong trường hợp khẩn cấp, tôi không cần phải thay đổi cấu hình php.ini)

0

Tôi có cùng vấn đề duy nhất tôi nhận được từ codeigniter chỉ là một lỗi nội bộ 500. (các dự án cũ của tôi và một cài đặt sạch đã làm như vậy) Nhưng phần thú vị là các dự án CI của tôi vẫn làm việc mà chủ yếu là php.

Những mẹo để viết ra các lỗi với

ini_set('display_errors', 'On'/,1) 

Giải Quyết vấn đề của tôi đối với một số lý do tôi không có quyền đọc các tập tin CodeIgniter lõi.

Thêm '+ r' vào tệp đã khắc phục sự cố.

Rudi Visser
CarlosIPe
Tôi cảm ơn cả hai vì giải pháp.

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