2015-05-13 3 views
0

После обновления моего MAMP PRO (на OS X Yosemite 10.10.3) до последней версии 3.2.1 он прекратил отображать ошибки. В MAMP PRO вы можете установить параметры отображения ошибок в графическом интерфейсе на вкладке PHP. У всех есть флажок (это на немецком языке, но он говорит что-то вроде «Все ошибки» [checked], «Display» [checked]).MAMP PRO 3.2.1 не отображает ошибки PHP

Когда я проверить с phpinfo(), display_errors является On и error_reporting является 32767 (который должен быть эквивалентен E_ALL).

Однако, если я что-то делаю array_merge(false, array()) У меня нет ошибки. Если я пропущу точку с запятой (синтаксические ошибки), я получаю пустую страницу.

Я попытался полностью удалить MAMP PRO и переустановить его несколько раз, даже после перезагрузки, безрезультатно. Все «решения» там говорят, что вы должны положить display_errrors = On и error_reporting = E_ALL, что есть у меня, и он использует правильный php.ini, который я проверил с помощью phpinfo().

Когда я поставил

error_reporting(E_ALL); 
ini_set('display_errors', 'On'); 

в моем PHP код чуть выше ошибки, например, для array_merge(false, array()), я наконец получил сообщение об ошибке «Сообщение: array_merge(): Аргумент №1 - это не массив», который я ожидаю, но я хочу получить это сообщение, не используя ini_set в моем PHP-коде. Кроме того, синтаксические ошибки пока не отображаются, даже с помощью этого метода.

Я потратил часы на это и был бы очень признателен за любую помощь, чтобы исправить это.

ответ

1

Хорошо, я, наконец, понял это. Применение я работаю над использованием CodeIgniter и в index.php константа ENVIRONMENT была неправильно установлена ​​на «производство», который, в свою очередь набор error_reporting до 0, как это:

case 'production': 
    error_reporting(0); 
break; 

После того, как я установил ENVIRONMENT константу ' развития ", он работает так, как ожидалось.

Так почему это произошло после обновления до последней версии MAMP PRO 3.2.1? Код для установки ENVIRONMENT постоянных проверок, если $_SERVER['SERVER_ADDR'] == '127.0.0.1' и если оно истинно, устанавливает УСЛОВИЯ для развития:

if ($_SERVER['SERVER_ADDR'] == '127.0.0.1') { 
    define('ENVIRONMENT', 'development'); 
} 

В последнем MAMP PRO, то $_SERVER['SERVER_ADDR'] не 127.0.0.1 больше, но ::1. Изменений для v3.2 говорит:

Каждый хост получает запись IPv6 :: 1 в/и т.д./хосты

Довольно сложно материал. Теперь я использую $_SERVER['HTTP_HOST'] вместо $_SERVER['SERVER_ADDR'], чтобы установить постоянную ENVIRONMENT.

Смежные вопросы