Назад | Перейти на главную страницу

Ошибка PHP из-за нехватки памяти, но для ошибки не указан номер строки

Я написал небольшое приложение для опроса для клиента, ничего особенно сложного, которое задает некоторые вопросы клиента, а затем записывает ответы в базу данных. Он отлично работает на моем компьютере, сервере разработки, который у нас есть, и промежуточном сервере клиентов. Однако на реальном сервере клиентов мы продолжаем получать следующую ошибку:

Фатальная ошибка: Допустимый размер памяти 268435456 байт исчерпан (попытался выделить 289839120 байт) в Неизвестно онлайн 0

Я действительно не знаю, что вызывает эту проблему, и клиент, похоже, тоже не может ее диагностировать. Мой компьютер работает под управлением Windows 7 с Apache и PHP 5.3.6, работающих как модуль Apache. Наш сервер разработки работает под управлением Linux с Apache и PHP 5.2.16, установленными как модуль Apache. Оба клиентских сервера (промежуточный и рабочий) работают на Linux VPS (хотя я не уверен, что промежуточный и живой серверы работают на одном и том же VPS) с PHP 5.2.14, работающим с использованием CGI. Во всех средах используется стандартный набор расширений, за исключением моего компьютера, на котором установлено несколько вещей, таких как расширения APC и HTTP. Ограничение памяти на клиентских VPS составляет 256 МБ.

Я считаю, что должна быть какая-то проблема с конфигурацией на сервере клиентов (они запускают Joomla на этом сервере для своего веб-сайта вместе с этим небольшим приложением для опроса, которое я создал), хотя я не исключаю проблем с моим кодом. Причина, по которой я склоняюсь к этому диагнозу, заключается в том, что код работает без проблем в других средах, не делает ничего, что могло бы съесть много памяти, и что ошибка нехватки памяти указывает на файл «unknown on line 0».

Я буду очень признателен за любые мысли, которые могут возникнуть у кого-либо по этой проблеме.

Допустимый объем памяти 268435456 байт исчерпан

Есть что-то очень здесь происходит неправильное.

Я считаю, что должна быть какая-то проблема с конфигурацией на сервере клиентов

Вы не представили никаких оснований для своей веры.

Первое, на что я обращаю внимание, - это выполняемый SQL и журнал медленных запросов; предполагаю, что вы извлекаете слишком много данных из базы данных.

Если это не решит проблему, настройте инструментарий в коде, чтобы выбрать подмножество запросов и регистрировать использование памяти на протяжении их выполнения.