Почему MODX не использует $_SERVER['DOCUMENT_ROOT']?

Почему в MODX явно задаются пути к корневой директории сайта в файлах
config.core.php
connectors/config.core.php
manager/config.core.php
core/config/config.inc.php

почему не используется серверная константа $_SERVER['DOCUMENT_ROOT']?

на сколько безопасно указать во всех этих файлах именно $_SERVER['DOCUMENT_ROOT']?
Это ведь упростит переезд с одного сервера на другой — сайт по факту не будет привязан ничем кроме кредов бд и доменом сайта?
Вячеслав Варов
27 июля 2024, 00:18
modx.pro
241
0

Комментарии: 7

Артур Шевченко
27 июля 2024, 11:48
0
  1. Разные серверные окружения: Значение $_SERVER['DOCUMENT_ROOT'] может отличаться в разных серверных окружениях. Например, на одном сервере оно может быть установлено как /var/www/html, а на другом — как /usr/local/apache/htdocs. Если ваш код зависит от конкретного значения $_SERVER['DOCUMENT_ROOT'], то он может работать неправильно на разных серверах.
  2. Символические ссылки: Если ваш сайт использует символические ссылки, то $_SERVER['DOCUMENT_ROOT'] может указывать на физический путь, а не на путь, который вы ожидаете. Например, если ваш сайт находится в /var/www/html/mywebsite, а $_SERVER['DOCUMENT_ROOT'] указывает на /var/www/html, то $_SERVER['DOCUMENT_ROOT'] не будет указывать на корневую папку вашего сайта.
  3. Безопасность: Использование $_SERVER['DOCUMENT_ROOT'] напрямую может привести к уязвимостям безопасности. Например, если ваш код использует $_SERVER['DOCUMENT_ROOT'] для создания путей к файлам, то злоумышленник может использовать это для получения доступа к файлам, которые не должны быть доступны.
  4. Поддержка разных версий PHP: Значение $_SERVER['DOCUMENT_ROOT'] может отличаться в разных версиях PHP. Например, в PHP 5.3 и выше оно может быть установлено как /var/www/html, а в более ранних версиях — как /var/www. Если ваш код зависит от конкретного значения $_SERVER['DOCUMENT_ROOT'], то он может работать неправильно на разных версиях PHP.
    Вячеслав Варов
    27 июля 2024, 13:51
    0
    Этот ответ из gpt я уже читал и мне не показалось это чемто критичным, однако все таки решил спросить)

    У меня сайт на nginx все пути прописывал сам, поэтому если это никак не отражается то в целом действительно проще использовать серверную константу
      Артур Шевченко
      27 июля 2024, 14:18
      +1
      Если все сайты, которые ты делаешь, будут всегда работать на сервере, который ты сам настраивал, и ты уверен, что их не перенесут на шаред с неизвестными настройками, то конечно используй константу.
        Вячеслав Варов
        27 июля 2024, 14:26
        0
        Супер, да речь об одном конкретном сайте, спасибо!)
    Ivan
    27 июля 2024, 14:49
    0
    Вообще странные они ребята кто это придумал. Если у человека кастомные настройки нужны, то там же есть выбор Advanced Installation Package. В 99% случаев $_SERVER['DOCUMENT_ROOT'] всем подойдет. Остальные CMS всегда используют эту переменную, но только MODX решил выделиться)))
      Вячеслав Варов
      27 июля 2024, 17:28
      0
      ну вот меня это и смутило, отсюда и задался вопросом — вдруг это как-то для безопасности или еще чего сделано)
      Павел Романов
      27 июля 2024, 18:46
      +1
      Добавлю пять копеек )
      Если указать $_SERVER['DOCUMENT_ROOT'], то, к примеру, скрипты, использующие подключение API MODX не будут работать, если они запускаются по CRON.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        7