[英]I want codeigniter to echo php errors instead of 500 internal error
我目前已將我的Codeigniter根index.php
的environment
變量設置為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.