Иногда при работе с сайтом нужно узнать полный путь до корневой директории на сервере. Это может понадобиться при настройке 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__.
