YiiFramework В футере ворнинг "Module 'dom' already loaded" Yii 2.0.8, apache php 5.6. Сайт работает некорректно

Koha

Новичок
Всем привет. Проблема такова: проект тестировал на опенсервере(apache 2.2 + php 5.4), затем на линуксовом хостинге с теми же данными(apache 2.2 + php 5.4), перенес на боевой(apache 2.х + php 5.6).
При первой загрузке сайт как бы дублировался, под футером появилась ошибка
PHP Core Warning – yii\base\ErrorException
Module 'dom' already loaded

2. yii\base\ErrorHandler::handleFatalError()

Поиски в гугле навели на проблему с дублированием загрузки модуля DOM, решение ее заключалось в отключении модуля DOM в файле php.ini. - http://www.somacon.com/p520.php

Связался с ТП хостинга, модуль закомментили, но появилась ошибка связанная с другим модулем, который по-видимому зависит от модуля DOM. К сожалению по запарке не сохранил код ошибки, т.к. потом модуль DOM опять раскомментировали.

p.s. Буквально только что обнаружил в папке runtime/cache папку 96 с .bin файлом внутри. Когда ее удаляешь все работает, но при следующем обновлении страницы папка появляется и ошибка с модулем DOM возникает снова. Пробовал использовать DbCache и DummyCache, но все бес толку. Что интересно при удалении записи из таблицы cache, сайт не грузится нормально 1 раз как в случае с FileCache...scr.png
 

AnrDaemon

Продвинутый новичок
Никогда.
Никогда.
Вообще никогда не загружайте расширения PHP динамически.
Просто сделайте enable_dl = Off в конфиге и бейте по голове каждого, кто попытается её включить.
 

Koha

Новичок
Никогда.
Никогда.
Вообще никогда не загружайте расширения PHP динамически.
Просто сделайте enable_dl = Off в конфиге и бейте по голове каждого, кто попытается её включить.
Спасибо за ответ, написал в ТП хостинга, сам, к сожалению не имею доступ к настройкам php, что существенно замедляет дело.. На старом хостинге enable_dl тоже были включены, но никаких проблем с этим не было.. Может, все-таки, судя по папке в кеше, при удалении которой сайт грузится нормально 1 раз, дело в проблемах с кешированием? Может этот модуль каким то образом тянется из кеша и из исходного местонахождения?
 

AnrDaemon

Продвинутый новичок
Проблема не в настройке, проблема в вашем коде, который вызывает эту функцию. Модули PHP очень редко компилируются статически, и на распространённых хостинг-платформах я такого не встречал.
Отключение этой функции в конфиге PHP позволяет ВАМ оперативно найти проблемы в ВАШЕМ коде.
Включите её локально на машине, на которой вы разрабатываете/тестируете сайт, вычистите свой код и он будет нормально работать на хостинге, независимо от того, включена эта функция или нет. ("Нормально" - это в том числе "кидаться исключениями, если необходимые расширения недоступны".)
Подробности на http://php.net/dl
 

Koha

Новичок
Проблема не в настройке, проблема в вашем коде, который вызывает эту функцию. Модули PHP очень редко компилируются статически, и на распространённых хостинг-платформах я такого не встречал.
Отключение этой функции в конфиге PHP позволяет ВАМ оперативно найти проблемы в ВАШЕМ коде.
Включите её локально на машине, на которой вы разрабатываете/тестируете сайт, вычистите свой код и он будет нормально работать на хостинге, независимо от того, включена эта функция или нет. ("Нормально" - это в том числе "кидаться исключениями, если необходимые расширения недоступны".)
Подробности на http://php.net/dl
Включил dl на опенсервере, ошибка не появилась. То же самое было и на старом хостинге, и локально и на старом хостинге версия php 5.4.
Спасибо за уделенное время!
 

Koha

Новичок
По-моему, вы не поняли, о чём вообще речь.
Возможно я Вас неправильно понял, но если на openserver и на старом хостинге с включенным или выключенным "enable_dl" проблем с сайтом не было то скорее всего причина не в enabled_dl.. Что касается моего кода, такой ошибки он вызвать тоже не может, с высокой вероятностью, т.к. я использую YII фреймворк и своего кода там не так уж и много, и уникальностью он не отличается)) Кроме того ошибка появляется на каждой странице, что, по-моему, указывает на несовместимость фреймворка с текущими настройками хостинга..
 

Koha

Новичок
п.с. Поставил на хостинг "чистый" Yii 2.0.9 такая же история.. Хостер идет в отказ, твердит что настройки нормальные и менять не в силах, т.к. это shared hosting. Вообщем пора менять сам хостинг)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
можешь показать код приложения - контроллер с action на 2-3 строки на "чистом" yii, в котором появляется эта ошибка?
я попробую воспроизвести у себя и зарепорчу багу в yii, если она есть
 

Koha

Новичок
можешь показать код приложения - контроллер с action на 2-3 строки на "чистом" yii, в котором появляется эта ошибка?
я попробую воспроизвести у себя и зарепорчу багу в yii, если она есть
Ошибка на всех страницах, юи поставил локально через композер, потом папку на хостинг залил. В коде вообще ничего не менял..

На аналогичном линуксовом хостинге с версией php 5.4 все работало нормально, вроде без багов. На этом хостинге стоит php 5.6, и при просмотре phpinfo в секции "Additional .ini files parsed" находится много роутов среди которых роут к файлу dom.ini. На старом хостинге такого нет. По расширениям сверил со старым хостингом, вроде все то же.

На чистом юи в папке runtime папке runtime папка cache отсутствует, хотя в настройках выбрано "yii\caching\FileCache". Видно в пустом сайте нечего кешировать) Про то что ошибка пропадает(до следующего запроса к серверу) при удалении кеша, я писал выше. Тут ничего не закешировалось, но ошибка все же есть))

Сам тестовый сайт на чистом юи - http://appk.kz/testsite/web/ Ошибка в самом низу показывается.

Если отключить дебаг то код ошибки 32 если не ошибаюсь
 

fixxxer

К.О.
Партнер клуба
А точно дело в yii? Может, просто криворуко настроенный хостинг (например, дважды подключается dom extension в конфигурации) и ошибка вылезает вообще всегда?
 

AmdY

Пью пиво
Команда форума
понятное дело, что проблема либо в хостинге, либо в коде написанном ТС. не идиоты же пишут yii.
 

Koha

Новичок
А точно дело в yii? Может, просто криворуко настроенный хостинг (например, дважды подключается dom extension в конфигурации) и ошибка вылезает вообще всегда?
Да, я выше описывал уже. Хостер идет в отказ по этому поводу. Из подозрительного мне в файле php.ini строка "Additional .ini files parsed", где есть путь к файлу dom.ini. Может быть есть вызов модуля DOM непосредственно из файла php.ini + использование файла dom.ini.. Насчет моего кода, повторюсь, что для эксперимента залил туда только что установленный черех композер yii 2 basic, что не изменило ситуацию с ошибкой.
Уговорил заказчика разорвать договор с таким хостером, который не может нормально настроить php
 
  • Like
Реакции: AmdY
Сверху