Невозможно включить или потребовать абсолютный путь

Версия Apache на сервере: 2.2.26

Версия PHP на сервере: 5.5.9

У меня есть файл под названием admin_config.php в папке с файлом .htaccess с параметром Deny from ALL .

Из index.phpDOCUMENT_ROOT ) я пытаюсь включить этот файл со следующей строкой:

 include '/core/config/admin_config.php' 

Дома это прекрасно работает. На моем облачном сервере это не работает (нет сообщения об ошибке). Если я использую запрос вместо этого, я получаю внутреннюю ошибку 500.

Если я изменю линию на относительный путь, она работает:

 include 'core/config/admin_config.php' 

Почему я не могу установить абсолютный путь здесь? Это ошибка на сервере или ошибка с моей стороны

Пути, которые вы указываете для include или require – это пути к локальной файловой системе . Это не то, что вы видите в URL-адресах для доступа к вашему сайту. Абсолютный путь, начинающийся с / происходит от корня файловой системы. В терминах Windows /fooC:\foo\ . Относительные пути, такие как foo/bar относятся к PATH конфигурации PATH , которая зависит от того, как настроен ваш PATH , который также включает в себя файл PHP.

Обычно не рекомендуется использовать абсолютные пути, так как они могут быть разными в разных системах (как вы переживаете). На вашей локальной машине сайт может жить в C:\core\... , но на сервере он будет запущен в /var/www/mysite/core/... PATH также может быть громоздким для работы. Лучше всего использовать магические константы __FILE__ или __FILE__ для построения абсолютного пути относительно текущего файла (если это имеет смысл):

 require __DIR__ . '/some/folder/file.php`; 

Сюда входит файл some/folder/file.php относительно файла, в котором он написан.