WSOD на страницах администрирования


Вот факты:

С этого момента я не могу получить доступ ни к одной странице admin/*, однако я могу получить доступ как к node/*, так и user/*...

Журнал PHP:

No entries

Журнал ошибок Apache:

No entries

Журнал доступа Apache:

127.0.0.1 - - [10/Mar/2011:16:22:16 +0000] "GET /drupal_testes/ HTTP/1.0" 200 5771
127.0.0.1 - - [10/Mar/2011:16:22:14 +0000] "GET /drupal_testes/admin HTTP/1.1" 200 -

Сторожевой таймер таблицы БД:

Nothing serious... 

И это все, для одного доступа к /drupal_testes/admin...
Отключение admin_menu (в системной таблице) действительно работает. Кроме того, в качестве примечания, когда я перейду в admin/build/modules и попытаюсь снова включить меню администратора, загрузка страницы займет целую вечность и закончится в WSOD.
После этого, если я перейду на drupal_testes/node, admin_menu будет активным и работающим, за исключением страниц admin/*.

Я знаю о Пошаговом руководстве WSOD, но, похоже, ни одна из причин не применима к этому случаю..
Есть идеи, почему это может происходить?


Правка #4

  • Точно такое же поведение при установке токена

Редактировать #5

  • Установка CCK, которая теоретически намного тяжелее, чем Токен или меню администратора, не представляет проблем.
  • Очистка таблиц cache_* ничего не меняет.
  • Увеличение php.ini memory_limit не имело никакого значения...

Хотя проблема решается путем отключения модулей-нарушителей, цель состоит в том, чтобы они были активны и работает должным образом...

 3
Author: kiamlaluno, 2011-03-10

3 answers

Если вы только что запустили новый сайт /еще не содержит никаких данных, как вы, кажется, указали в своем вопросе, возможно, будет быстрее переустановить Drupal, чем искать источник WSOD.


В противном случае вы могли бы заглянуть непосредственно в базу данных:

  • Во-первых, проверьте таблицу сторожевого пса: в ней могут содержаться сообщения об ошибках, которые не отображаются в журналах Apache и PHP

  • Затем очистите кэши, усекая каждую таблицу с именем cache_something

  • Затем, если вы уверены, что именно этот модуль вызвал проблему, вы можете отредактировать список включенных модулей в таблице system: найдите модуль в списке и измените его status to "0"

Но если вы вносите какие-либо изменения непосредственно в базу данных, обязательно сначала сохраните резервную копию, на всякий случай;-)

 4
Author: wildpeaks, 2011-03-10 16:50:47

Убедитесь, что ваш лимит памяти PHP установлен на 32 МБ (или больше) и что у вас включена буферизация вывода.

 1
Author: Codeblind, 2011-04-05 03:11:57

Я не знаю, происходит ли это в вашем случае, но подпись спецификации, присутствующую перед началом <?php, трудно увидеть. У меня была проблема с модулем, и выяснилось, что WSOD был вызван подписью спецификации, добавленной редактором, который я использовал, которая затем не отображалась, когда я редактировал файл с помощью моего обычного редактора. Затем я обнаружил, что редактор был настроен на добавление подписи спецификации по умолчанию.

Существуют также некоторые символы Юникода, которые имеют аналогичное назначение в пробел, но они не отображаются в некоторых редакторах. Это случилось и со мной, и я не смог понять причину WSOD, пока не опубликовал содержимое файла на форуме и не использовал Firefox для просмотра этой страницы форума.

 0
Author: kiamlaluno, 2014-03-31 11:46:27