На тарифах виртуального и мощного хостинга публичная директория сайта, в которой размещается индексный файл PHP (index.php), должна иметь имя public_html. Другие названия не поддерживаются конфигурацией веб-сервера, по этой причине, если использовать другое название, например, public или web, при переходе на сайт будет возникать ошибка 404 (Объект не найден).
Некоторые CMS и фреймворки (например, Laravel, Yii и др.) могут не предусматривать возможность смены имени публичной директории на public_html. В этом случае для корректной работы сайта можно создать символическую ссылку (симлинк) с названием public_html на необходимую публичную директорию. В этом случае для веб-сервера ссылка будет видна как полноценная директория с необходимым названием. Создание симлинков доступно через SSH-подключение.
Общая инструкция
Для создания символической ссылки необходимо:
- Подключитесь к аккаунту по SSH, используя основной логин и пароль аккаунта. Подробнее о работе по SSH.
- Перейдите в директорию сайта на уровень выше текущей публичной директории CMS/фреймворка командой cd.
Например, если сайт направлен в директорию ~/mysite.ru/public_html/, необходимо перейти в директорию ~/mysite.ru/ через консоль:
- Введите следующую команду (перед выполнением команды, директорию public_html надо удалить):
где вместо <название_папки> необходимо подставить название текущей публичной директории.
Пример настройки для Laravel
По умолчанию проект на базе фреймворка Laravel имеет следующую файловую структуру:
Публичная директория имеет название public. Для настройки корректного доступа к сайту необходимо:
- Разместите указанные выше файлы и папки в директории выше папки public_html, в которую направлен сайт. Сделать это можно в настройках сайта в панели управления аккаунтом.
Например, сайт направлен на папку laraveltest/public_html, в этом случае разместить файлы необходимо в папке laraveltest.
- Подключитесь к аккаунту по SSH и перейдите в папку laraveltest:
- Выполните команду на создание символической ссылки:
После данной настройки в браузере по домену сайта должна открыться страница фреймворка по умолчанию: