LINUX.ORG.RU
решено ФорумAdmin

Непонятки с php после обновления CentOS

 , , , ,


0

1

Привет, майский ЛОР!

Обновил я тут CentOS с 6.2 до 6.4, и случилась бяка - сайтец, который крутится на сервере, перестал работать. При обращении по http показывает просто пустую страницу.

Полез проверять:

$ php index.php
PHP Warning:  Module 'geoip' already loaded in Unknown on line 0
PHP Fatal error:  require(): Failed opening required '/bitrix/header.php' (include_path='.:/usr/share/pear:/php/includes') in /home/bitrix/www/index.php on line 3

Fatal error: require(): Failed opening required '/bitrix/header.php' (include_path='.:/usr/share/pear:/php/includes') in /home/bitrix/www/index.php on line 3

Шайтанама! Дай-ка, думаю, проверю, а верно ли у меня инклюдится. Добавил вот такую строчку в файл:

<?
echo $_SERVER["DOCUMENT_ROOT"];
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Однако, в консоли результата не оказалось. Проверил еще раз в настройках nginx - да, сервер рут выставлен корректно. Проверил в phpinfo() - да, обе переменные есть. Обратился обратно к сайту по http - о-па! Теперь вместо пустой странички гордо красутеся

/home/bitrix/www
При этом в логи httpd и nginx никаких критичных ошибок не валится, т.е. как будто бы все отрабатывает нормально.

Никак не пойму в чем дело. ЛОР, подскажи, куда рыть? Если надо что-то дополнительно показать - спрашивай.

★★

Ответ на: комментарий от ii343hbka

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

ii343hbka ★★★ ()
Ответ на: комментарий от kir64

ну я про php.ini.
в php.d может быть еще для cli и nginx отдельные конфиги, но в этом не уверен
смотреть надо в сторону error_reporting и display_errors

ii343hbka ★★★ ()

$_SERVER[«DOCUMENT_ROOT»]
Однако, в консоли результата не оказалось

Эта переменная не будет работать из консоли, какой может быть документ рут в консоли.

А файл /home/bitrix/www/bitrix/header.php вообще есть?

goingUp ★★★★★ ()
Последнее исправление: goingUp (всего исправлений: 1)
Ответ на: комментарий от goingUp

Вот сам пошел по тому же пути - оказалась сказка про Кащея Бессмертного. В header.php инклюдится другой файл, в нем инклюдится еще 4, в них еще, и т.д. Ужас.

kir64 ★★ ()
Ответ на: комментарий от goingUp

ii343hbka и goingUp,

В_общем, удваиваю совет включить error_reporting и display_errors.

в php.ini уже находятся строки такого вида:

error_reporting = E_ALL & ~E_NOTICE     ;bitrix-env
display_errors = On                     ;bitrix-env
Были внесены туда еще на стадии установки и настройки продукта. Лог пишется в /var/log/php.log, однако, он девственно чист. Собственно, в логи nginx'а и httpd тоже fatal error нигде не пишется. Что посоветуете?

kir64 ★★ ()
Ответ на: комментарий от Axonom

На продакшене??? это очень-очень-очень плохой совет.

Для дебага сойдет.
А вот после того, как все починят - тогда уже можно отключить.

tazhate ★★★★★ ()
Ответ на: комментарий от kir64

Что посоветуете?

У тебя ж он куплен. Вот у них есть саппорт.

tazhate ★★★★★ ()
Ответ на: комментарий от tazhate

Для дебага сойдет

Обычная последняя фраза перед взломом )

set_error_handler и в лог писать. И не надо переключать настройки в ini постоянно.

Axonom ()
Ответ на: комментарий от kir64

в таком случае я не вкурсе.
можно сравнить изменения в версиях php между 6.2 и 6.4, посмотреть какие методы/функции сильно менялись, грепать сорцы на их наличие и отлаживать
я бы так сделал

ii343hbka ★★★ ()
Ответ на: комментарий от Axonom

У человека сайт не работает уже сколько, а ты беспокоишься, что его успеют взломать)

goingUp ★★★★★ ()
Ответ на: комментарий от goingUp

Да, они сами советуют юзать последнюю стабильную, в центоси это 5.3.3. Вообще, конечно, tazhate годное дело предложил, но ТП сейчас пьянствует, и ответит не раньше 6го числа, я думаю.

kir64 ★★ ()
Ответ на: комментарий от kir64

Если не пишутся никакие логи, не выдается сообщение и это не ошибка в настройках, то у меня такое было в случае бесконечной рекурсии в php коде. Можно проверить, включив расширение xdebug, тогда будет писаться ошибка. А правильность настроек вывода ошибок можно проверить, сделав ошибку в коде, например 1/0

goingUp ★★★★★ ()

Проблема оказалась банальна - в одном из файлов, входящих в длинную-длинную цепочку инклюдов, вызывался модуль, который при обновлении был удален, а обратно я его не поставил. yum install решил проблему, теперь все работает. Спасибо за помощь и пинки в нужном направлении!

kir64 ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.