непонятная ошибка в PHP скрипте
От: __steven__  
Дата: 26.04.08 02:55
Оценка:
есть такая строчка
require_once '../PEAR.php';
файл нормально инклудится, отладочные сообщения выводятся нормально в последней строчке файла через exit
exit в файле убираю
ставлю exit после require

ничего не выводится, выполнение скрипта обрывается до exit но уже после того как файл PEAR.php весь обработался

пробовал ловить исключения вокруг вызова require, исключения не выводятся

в чем может быть проблема?
PHP 5
тот же софт на др компах нормально работает, не работает на хостинге
тех саппорт хостинга отказывается смотреть скрипты сторонних разработчиков
Re: непонятная ошибка в PHP скрипте
От: Stuw  
Дата: 26.04.08 06:27
Оценка:
Здравствуйте, __steven__, Вы писали:

___>есть такая строчка

___>require_once '../PEAR.php';
___>файл нормально инклудится, отладочные сообщения выводятся нормально в последней строчке файла через exit
___>exit в файле убираю
___>ставлю exit после require

___>ничего не выводится, выполнение скрипта обрывается до exit но уже после того как файл PEAR.php весь обработался


___>пробовал ловить исключения вокруг вызова require, исключения не выводятся


___>в чем может быть проблема?

___>PHP 5
___>тот же софт на др компах нормально работает, не работает на хостинге
___>тех саппорт хостинга отказывается смотреть скрипты сторонних разработчиков

1. Попробуй сделать упрощенную версию. Может просто чего-то не замечаешь.
2. Есть предположение, что вывод может буферизироваться и когда в основном файле встречается exit сразу после rquire_once, интерпретатор считает, что выводить буферизированное не надо.
3. Попробуй посмотреть параметры php на хостинге (см. phpinfo()) и сравнить с машинами, на которых работает.
Re: непонятная ошибка в PHP скрипте
От: TheOldMan  
Дата: 26.04.08 08:24
Оценка:
Здравствуйте, __steven__, Вы писали:

___>есть такая строчка

___>require_once '../PEAR.php';
___>файл нормально инклудится, отладочные сообщения выводятся нормально в последней строчке файла через exit
___>exit в файле убираю
___>ставлю exit после require

___>ничего не выводится, выполнение скрипта обрывается до exit но уже после того как файл PEAR.php весь обработался


___>пробовал ловить исключения вокруг вызова require, исключения не выводятся


___>в чем может быть проблема?

___>PHP 5
___>тот же софт на др компах нормально работает, не работает на хостинге
___>тех саппорт хостинга отказывается смотреть скрипты сторонних разработчиков

А error_reporting(E_ALL) ничего не выдает?
Другие PEAR-библиотеки инклудаються в проекте?
суть в простоте, а простота в сути
Re[2]: непонятная ошибка в PHP скрипте
От: __steven__  
Дата: 26.04.08 14:04
Оценка:
Здравствуйте, TheOldMan, Вы писали:

TOM>А error_reporting(E_ALL) ничего не выдает?

TOM>Другие PEAR-библиотеки инклудаються в проекте?

там много чего инклудится
ибо кода много
проблема в том, что ИНОГДА все срабатывает и страница загружается, а иногда нет — без всякой видимой причины
никакие ошибки не выводятся при любых установках display_error, display_error_startup и error_reporting
логи апачи не содержат ошибок тоже
но выбрасывается белая страница вместо того, что должно появиться на экране

то есть что-то серьезно глючит на хостинге

вот начал искать где все вылетает и дошел до этого места, где в одном из файлов вызывается упомянутая выше строка
Re[3]: непонятная ошибка в PHP скрипте
От: sawoy Россия  
Дата: 26.04.08 16:36
Оценка:
Здравствуйте, __steven__, Вы писали:

___>проблема в том, что ИНОГДА все срабатывает и страница загружается, а иногда нет — без всякой видимой причины

___>никакие ошибки не выводятся при любых установках display_error, display_error_startup и error_reporting
___>логи апачи не содержат ошибок тоже
___>но выбрасывается белая страница вместо того, что должно появиться на экране

___>то есть что-то серьезно глючит на хостинге


___>вот начал искать где все вылетает и дошел до этого места, где в одном из файлов вызывается упомянутая выше строка


Возможно, хостинг на основе чего-то типа VZ/OpenVZ ?
Похожую проблему видел, когда серверу выделили мало ресурсов — при работе приложения свободной памяти не оставалось и процесс молча убивался. Причем это как раз происходило практически рандомно, т.к. ресурсов было впритык.
Re[4]: непонятная ошибка в PHP скрипте
От: __steven__  
Дата: 26.04.08 16:46
Оценка:
Здравствуйте, sawoy, Вы писали:

S>Возможно, хостинг на основе чего-то типа VZ/OpenVZ ?

S>Похожую проблему видел, когда серверу выделили мало ресурсов — при работе приложения свободной памяти не оставалось и процесс молча убивался. Причем это как раз происходило практически рандомно, т.к. ресурсов было впритык.

нашел в описании хостинга
Powered by Parallels Virtuozzo Containers, the most efficient OS Virtualization technology available

это вроде похоже на VZ/OpenVZ
или нет?
Re[5]: непонятная ошибка в PHP скрипте
От: sawoy Россия  
Дата: 26.04.08 17:04
Оценка:
Здравствуйте, __steven__, Вы писали:

___>Здравствуйте, sawoy, Вы писали:


S>>Возможно, хостинг на основе чего-то типа VZ/OpenVZ ?

S>>Похожую проблему видел, когда серверу выделили мало ресурсов — при работе приложения свободной памяти не оставалось и процесс молча убивался. Причем это как раз происходило практически рандомно, т.к. ресурсов было впритык.

___>нашел в описании хостинга

___>Powered by Parallels Virtuozzo Containers, the most efficient OS Virtualization technology available

___>это вроде похоже на VZ/OpenVZ

___>или нет?

Ага, оно. У компании просто название поменялось.
А VZ как раз и значит Virtuozzo.

Понаблюдай за содержанием файла /proc/user_beancounters (точно уже не помню, если что сделай ls -l /proc|grep bean).
В нем есть (вроде бы крайняя) колонка failcnt — кол-во попыток превышения соответствующего лимита.
Если при работе числа увеличиваются — ресурсов не хватает. Возможно, даже сможешь прямо отловить — при появлении белой страницы какой-нибудь из failcnt увеличивается.

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

Странно, что саппорт о таком не предупредил. По идее, это у них должна быть известная ситуация.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.