DOCUMENT_ROOT не заполнен, отсутствует папка домена

StackOverflow https://stackoverflow.com/questions/8392524

  •  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 я использую это в моем индексном файле:

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top