Включить предупреждение PHP о пути в Ubuntu с приложением Slim

У меня возникла проблема с включением путей в приложении Slim на apache/ubuntu с PHP 7. Когда страница индекса моего приложения/маршрутов пытается включить файл, расположенный в подкаталоге, я получаю следующее в моем apache error.log, но путь мне кажется правильным:

PHP Warning:  include(myapp/production/include.php): failed to open stream: No such file or directory in /var/www/html/index.php on line 33
PHP Warning:  include(): Failed opening 'myapp/production/include.php' for inclusion (include_path='.:/usr/share/php') in /var/www/html/index.php on line 33

Структура каталогов:

/var/www/html/
├── index.php
├── myapp/
│   ├── vendor/
│   └── production/
│       └── include.php 

соответствующая строка 33 в index.php:

include ('myapp/production/include.php');

Может ли быть что-то, связанное с правами доступа к файлам/каталогам, что вызывает это? Я довольно хорошо знаком с настройкой веб-приложений на серверах Linux; любая помощь приветствуется.

ИЗМЕНИТЬ:

Я добавил тестовый включаемый файл в основной веб-каталог (такой же, как index.php), и этот включаемый файл работает.


person Marcatectura    schedule 15.02.2017    source источник
comment
Да, вы должны проверить разрешения, и даже для отладки я бы создал test.php файл в той же папке, что и index.php, и попытался include его, тогда вы поймете, о разрешениях речь или нет.   -  person smarber    schedule 15.02.2017
comment
Я попробовал тестовое включение в корень веб-сайта, и это работает.   -  person Marcatectura    schedule 15.02.2017
comment
Тогда либо путь неверный, либо отсутствуют какие-то разрешения   -  person smarber    schedule 15.02.2017
comment
Укажите точный код в test.php и index.php, который, по вашему мнению, должен включать этот include.php.   -  person Rob Allen    schedule 17.02.2017


Ответы (1)


Если бы я предположил, я подозреваю, что регистр имени каталога и файла на диске отличается от того, что вы используете в своем PHP-коде.

В Linux файловая система чувствительна к регистру, поэтому каталог с именем Production отличается от каталога с именем production.

Убедитесь, что текст, который вы используете в инструкции include, точно соответствует именам каталогов и файлов на диске.

person Rob Allen    schedule 28.02.2017