Отладка белого экрана смерти CakePHP

#cakephp

#cakephp

Вопрос:

Я новичок в CakePHP, поэтому заранее приношу извинения за недостаток знаний.

У меня есть пользовательское приложение CakePHP, которое отлично работает в моей учетной записи веб-хостинга. Я загрузил его на свой локальный компьютер и пытаюсь запустить на своем сервере WAMP. Я правильно настроил базу данных, загрузил все файлы .htaccess и включил Apache rewrite_module, но я по-прежнему получаю белый экран смерти, когда открываю сайт в своем браузере.

Интересно, что в журнале ошибок apache говорится, что "File does not exist: C:/wamp/www/favicon.ico". конечно, этот файл должен быть в c:/www/aplication_name/app/webroot каталоге. Итак, по какой-то причине приложение вместо этого просматривает C:/wamp/www/ directory .

Определения путей в webroot/index.php верны, поэтому я не знаю, где еще может быть проблема.

Я отлаживал это весь день, так что любая помощь приветствуется. Спасибо, Бен

Ответ №1:

Какое значение Configure:read('debug') (оно задано в config/core.php )? Оно должно быть больше нуля, поэтому вы получите отображение ошибок PHP. Установка значения debug равным нулю предназначена для реальных сред, в режиме разработки следует использовать значение 1, 2 или 3 (с каждым повышением уровня отображается больше отладочной информации).

Если ваше значение отладки установлено правильно, попробуйте выяснить, не превосходит ли какая-либо настройка в Apache / PHP сообщения об ошибках PHP независимо от настройки отладки (хотя я думаю, что это крайне маловероятно, что это будет так).

Комментарии:

1. @LEO и @Vindia Странно, что в журнале ошибок php ничего не отображалось. Большое спасибо за вашу помощь. Установка параметра Configure:read(‘debug’) равным 3 решила проблему. Я думал, что смотрел на это раньше — я думаю, я ошибался. Я бы принял оба ваших ответа, но это позволяет мне принять только один. Еще раз спасибо.

Ответ №2:

Раньше я получал пустую страницу, то есть белый экран смерти при входе в систему. Причина была в том, что я написал $this-> autoRender = false; в одной из частных функций, которая выполняется, как только пользователь входит в систему.

Способ, которым я это отлаживал: я создал новое приложение и продолжал вставлять функции одну за другой и продолжал проверять наличие белого экрана после входа в систему. Как только я вставил в свою приватную функцию значение autorender false, я получил белый экран и, наконец, устранил проблему после нескольких дней напряженной работы.

Ответ №3:

JSo вы настроили свой виртуальный хост в Apache?

Для WAMP в файле http-vhosts.conf добавьте что-то вроде

 <VirtualHost *:80>

DocumentRoot "d:/websites/myapp/app/webroot/"
ServerName local.myapp

<Directory "d:/websites/myapp/app/webroot/">
    Options -Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
</Directory>
</VirtualHost>
  

Затем в вашем файле Windows hosts, т.е. ‘C:windowssystem32driversetchosts ‘ добавить

 127.0.0.1    local.myapp
  

Перезапустите Wamp, затем посетите local.myapp, который должен выдать вам результат.

ДОБАВЛЕНО-

Установлен ли для display_errors значение ‘on’ в php ini-файле? Что показывает вам журнал ошибок php?

Комментарии:

1. Спасибо за помощь. Я не знал, что мне нужен виртуальный хост, но я думаю, что это имеет смысл. После долгих попыток я наконец-то заставил виртуальный хост работать должным образом, однако я все еще получаю белый экран смерти. Я даже попытался установить основной каталог apache в /app/webroot /. Теперь, когда виртуальный хост работает, он находит значок в папке webroot. Эта проблема вызывает недоумение, потому что сайт отлично работает на веб-хостинге.

2. поджигатель, ты видел дополнение?

3. Лео Виндиа, прошу прощения, что не перезвонил вам, я думал, что уже ответил (полагаю, это было очень поздно ночью). С вашей помощью я, наконец, отладил это. Оказывается, мне просто нужно было установить Configure:read(‘debug’) в Cake core.php до 3. Я также думал, что ранее уже проверял это (думаю, в то время я мало спал)