Как узнать путь до корневой директории сайта через PHP код
Featured

Как узнать путь до корневой директории сайта через PHP код

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

Корневая директория сайта обычно называется public_html, www, htdocs или имеет другое имя, в зависимости от хостинга. Но вручную искать этот путь не всегда удобно. Проще всего вывести его с помощью небольшого PHP-кода.

Что такое корневая директория сайта

Корневая директория сайта это папка на сервере, из которой открывается сайт в браузере. Именно в ней обычно находятся основные файлы сайта: index.php, папки CMS, изображения, шаблоны, компоненты и другие системные файлы.

Например, путь до корня сайта на сервере может выглядеть так:

/home/user/public_html

Или так:

/var/www/site.ru/public_html

У каждого хостинга структура может отличаться, поэтому надежнее получить путь программно.

PHP код для определения пути к корню сайта

Чтобы узнать путь до корневой директории сайта, можно использовать серверную переменную $_SERVER['DOCUMENT_ROOT']. Она возвращает физический путь к папке, из которой обслуживается сайт.

<?php
$documentRoot = $_SERVER['DOCUMENT_ROOT'];
echo "Путь к корню сайта: " . $documentRoot;
?>

После запуска этого кода на экране появится путь к корню сайта на сервере.

Порядок действий

1. Создайте PHP-файл

Создайте новый файл, например:

root-path.php

Файл должен иметь именно расширение .php. Если файл будет называться root-path.php.txt, код не выполнится.

2. Вставьте код в файл

Откройте файл в редакторе кода и вставьте в него следующий PHP-код:

<?php
$documentRoot = $_SERVER['DOCUMENT_ROOT'];
echo "Путь к корню сайта: " . $documentRoot;
?>

3. Загрузите файл в корень сайта

Загрузите файл root-path.php в корневую директорию сайта через FTP, файловый менеджер хостинга или панель управления сервером.

Обычно это та же папка, где находится файл index.php вашего сайта на Joomla.

4. Откройте файл в браузере

После загрузки откройте файл через браузер:

https://site.ru/root-path.php

Вместо site.ru укажите домен своего сайта.

Если все сделано правильно, вы увидите примерно такой результат:

Путь к корню сайта: /home/user/public_html

5. Скопируйте полученный путь

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

Более безопасный вариант кода

Иногда переменная DOCUMENT_ROOT может быть недоступна. Например, если PHP-файл запускается не через браузер, а через консоль или cron. Поэтому можно использовать более аккуратный вариант кода с проверкой.

<?php
$documentRoot = $_SERVER['DOCUMENT_ROOT'] ?? 'DOCUMENT_ROOT не найден';

echo "Путь к корню сайта: " . $documentRoot;
?>

Такой вариант не вызовет ошибку, если серверная переменная отсутствует.

Расширенный код для проверки путей

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

<?php
echo '<pre>';
echo 'DOCUMENT_ROOT: ' . ($_SERVER['DOCUMENT_ROOT'] ?? 'не найден') . PHP_EOL;
echo 'SCRIPT_FILENAME: ' . ($_SERVER['SCRIPT_FILENAME'] ?? 'не найден') . PHP_EOL;
echo '__DIR__: ' . __DIR__ . PHP_EOL;
echo '</pre>';
?>

Этот код покажет сразу несколько полезных значений:

  • DOCUMENT_ROOT показывает путь к корневой директории сайта;
  • SCRIPT_FILENAME показывает полный путь к текущему PHP-файлу;
  • __DIR__ показывает папку, в которой находится текущий файл.

Почему код может не работать

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

  • Файл открыт напрямую с компьютера, а не через домен сайта.
  • У файла неправильное расширение, например .txt вместо .php.
  • PHP-код вставлен без открывающего тега <?php.
  • Файл запускается через консоль, где DOCUMENT_ROOT может быть недоступен.
  • На сервере отключен вывод ошибок, и проблема не отображается на экране.

Что сделать после проверки

После того как вы узнали путь до корневой директории сайта, файл root-path.php лучше удалить с сервера. В нем нет опасного кода, но он показывает внутреннюю структуру хостинга, а такую информацию не стоит оставлять в открытом доступе.

Вывод

Самый простой способ узнать путь до корневой директории сайта это создать PHP-файл и вывести значение переменной $_SERVER['DOCUMENT_ROOT']. Такой способ подходит для сайтов на Joomla, WordPress, самописных PHP-проектов и большинства обычных хостингов.

Для быстрой проверки достаточно использовать этот код:

<?php
$documentRoot = $_SERVER['DOCUMENT_ROOT'];
echo "Путь к корню сайта: " . $documentRoot;
?>

А если нужно получить больше информации о расположении файла на сервере, лучше использовать расширенный вариант с DOCUMENT_ROOT, SCRIPT_FILENAME и __DIR__.