maler1988
@maler1988
Web-программист (1С Bitrix)

Php не видит и не подключает существующие файлы, почему?

Перехали на новый сервер, вылетела ошибка.

Fatal error: require_once(): Failed opening required '/home/bitrix/www/local/modules/custom.module/lib/exception.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/bitrix/www/bitrix/modules/main/lib/loader.php on line 313 PHP Fatal error: Uncaught Error: Class 'Bitrix\Main\Diag\ExceptionHandlerLog' not found in /home/bitrix/www/bitrix/modules/main/lib/diag/exceptionhandler.php:350


Проверил все пути вручную, файлы на месте. На сторонних форумах нашёл такое объяснение:

If you break apart your string ".:/usr/share/pear:/usr/share/php" using that character, you will get 3 parts
. (this means the current directory your code is in)
/usr/share/pear
/usr/share/ph
Any attempts to include()/require() things, will look in these directories, in this order.


Не пойму, в моём случае require_once() пытается найти файлы в /usr/share/pear и /usr/share/php ? Какие-то настройки на сервере надо править так? Или я не верно понимаю проблему?
  • Вопрос задан
  • 7403 просмотра
Пригласить эксперта
Ответы на вопрос 3
eXcNightRider
@eXcNightRider
FullStack Web Developer | DevOps
/usr/share/pear и /usr/share/php - это альтернативные пути для различных библиотек.
Проверьте права на чтение здесь '/home/bitrix/www/local/modules/custom.module/lib/exception.php'
Ответ написан
SagePtr
@SagePtr
Еда - это святое
Скорее всего, вы не учитываете регистр файлов, который под Windows не имеет значения, а под другими ОС имеет.
Попробуйте переименовать
/bitrix/modules/main/lib/diag/exceptionhandlerlog.php
в
/bitrix/modules/main/lib/Diag/ExceptionHandlerLog.php
Ну и другие файлы также (если там используется совместимый с PSR-4 автолоадер)
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
По какой-то загадочной причине пользователи похапе en masse не читают подробное объяснение ошибки, предоставленное интерпретатором РНР, предпочитая гадание на кофейной гуще.

Казалось бы, объяснение прямо под носом: ищем файл в папке local
/home/bitrix/www/local/modules/custom.module/lib/exception.php

в то время как в реальности файлы приложения лежат в папке bitrix
/home/bitrix/www/bitrix/modules/main/lib/loader.php

То есть можно предположить банально неверную конфигурацию приложения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽