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 ? Какие-то настройки на сервере надо править так? Или я не верно понимаю проблему?
  • Вопрос задан
  • 8454 просмотра
Пригласить эксперта
Ответы на вопрос 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

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

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

Похожие вопросы