DOCUMENT_ROOT не заполнен, отсутствует папка домена
-
28-10-2019 - |
Вопрос
Я просмотрел много тем, но, похоже, не нашел решения. Внутри одного из моих сценариев php я пытаюсь получить корень документа сервера, но получаемое мной значение не является полным, просто отсутствует папка домена. Я считаю, что это из-за совместного использования хостинга или чего-то еще.
Вот как я сейчас использую:
родовое словои путь, который я получаю, такой:
родовое словохотя я знаю, что это должно быть так:
родовое словоЯ знаю это, когда сравнил его со SCRIPT_NAME, и вижу mydomain там на пути.
Надеюсь, кто-нибудь сможет направить меня.
Спасибо и извините за то, что, вероятно, задали еще тысячу раз тот же вопрос сообществу, я действительно пробовал кое-что отсюда, пока мне ничего не помогает.
< sizesUPDATE
к сожалению, я не могу просто использовать свой индексный файл с DIR , так как это настройка wordpress, и я работаю над отдельной папкой, в которую я включаю некоторые функции wordpress, но для этого мне нужен document_root. Если это поможет.
< sizesUPDATE
Судя по всему, мой случай разрешился следующим образом, возможно, однажды это поможет кому-то:
родовое словов основном из-за настройки сервера и домена, настроенного как субдомен.
Спасибо всем, кто участвовал.
Решение
До PHP 5.3 вы можете поместить файл в каталог, путь к которому вы хотите, и определить константу:
родовое словоПосле версии 5.3 вы можете просто делать:
родовое словоИдея состоит в том, что это будет в некотором роде сгенерированном кодовом теге, который включается каждый раз при запуске приложения.
Другие советы
< sizesUPDATE
В файле конфигурации вы можете просто добавить переменную DOCUMENT_ROOT
:
И это должно позаботиться об этом за вас.
Старое решение
DOCUMENT_ROOT
- это переменная среды, устанавливаемая сервером.Так что, если это на виртуальном хостинге, вы не можете изменить.Альтернативой является установка для него вашей собственной константы, поэтому в файле типа config
, который включен на ваши страницы, вы можете сделать что-то вроде:
А затем просто используйте эту константу вместо $_SERVER['DOCUMENT_ROOT']
.Другой вариант - связаться с вашим хозяином и узнать об этом, возможно, это был недосмотр с их стороны, и они исправят это.
< sizesEDIT
Вероятно, использование кода __DIR__
, о котором писали другие, является лучшим способом, поскольку код DOCUMENT_ROOT
может быть установлен для разных элементов и, по крайней мере, с помощью кода __DIR__
вы должны каждый раз получать точный каталог.
Лично для получения корня папки в PHP я использую это в моем индексном файле:
родовое слово