#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. Я также думал, что ранее уже проверял это (думаю, в то время я мало спал)