簡體   English   中英

我想codeigniter回應php錯誤而不是500內部錯誤

[英]I want codeigniter to echo php errors instead of 500 internal error

我目前已將我的Codeigniter根index.phpenvironment變量設置為development

我還沒有啟用微小的URL模式。

我不喜歡每天都檢查/var/log/apache2/error.log

希望我的PHP錯誤回到頁面。 500內部錯誤實際上是* HARD * est方法,可用於顯示錯誤。

請注意,我們正在使用默認配置的Ubuntu 12.04 LTS服務器。

正如評論中所提到的,我懷疑這是CodeIgniter的問題。 你更有可能只是在php.ini中將display_errors設置為off。

如果我沒記錯的話,CI的index.php包含對ini_set('error_reporting', ..);的調用ini_set('error_reporting', ..); 無論如何要改變默認行為,所以你可以先看看那里然后看看發生了什么。

剛看了一下,這是默認值:

/*
|---------------------------------------------------------------
| 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);

如果你只是在那里添加ini_set('display_errors', 1); ,它應該開始工作得很好。 顯然最好的辦法是為你的環境添加一個開關來設置這些變量,我不知道為什么它不是那樣的,但這是一個例子:

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;
    }
}

只需在開發環境案例中的index.php中添加以下內容:

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

編輯:正如Rudi Visser所說,你可以修改它改變你的php.ini。 我更喜歡在這里修復它,所以每當我下載項目時(我的筆記本電腦,辦公室電腦或我在緊急情況下借用的電腦,我都不需要更改php.ini配置)

我有同樣的問題,我從codeigniter得到的唯一的東西只有500內部錯誤。(我的舊項目和干凈的安裝做了同樣的)但有趣的是,我的非CI項目仍然工作,主要包含PHP。

寫出錯誤的提示

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

解決了我的問題由於某種原因我沒有權利閱讀codeigniter核心文件。

在文件中添加“+ r”解決了問題。

魯迪維瑟
CarlosIPe
我感謝你們兩個解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM