Как создать хостинг под размещение проекта на PHP-фреймворке

Если ваш проект написан на Laravel, Symfony, Yii или другом PHP-фреймворке, обычный «хостинг под сайт» придётся донастраивать вручную: менять корень сайта на public, поднимать версию PHP для консоли, ставить Composer-зависимости и Node.js, создавать базу данных. Опция «Окружение под фреймворк» делает всё это автоматически при создании хостинга.

Что мы подготовим:

  • версию PHP для сайта и для консоли (SSH/cron);
  • корень сайта — подкаталог public (или другой на ваш выбор);
  • Composer и Node.js LTS (npm, а через corepack — yarn и pnpm);
  • базу данных MySQL с реквизитами;
  • заготовку настроек (.env для Laravel) и деплой-скрипт;
  • для Laravel — задания планировщика: обработка очереди и schedule:run каждую минуту.

Сам код мы не устанавливаем — свой проект вы разворачиваете сами (шаг 6).

Опция доступна на тарифах Мастер и Эксперт — только они включают SSH-доступ, Composer и Node.js.

Шаг 1. Выберите тариф

Откройте страницу Хостинг, выберите тариф Мастер или Эксперт, укажите период оплаты и нажмите «Заказать».

Карточка тарифа Мастер с кнопкой «Заказать»

Шаг 2. Настройте заказ

На странице оформления заказа в блоке «Настройка сайта» выберите, на каком домене будет работать сайт (1):

  • Зарегистрировать домен — новый домен оформится вместе с хостингом;
  • Создать сайт на техническом домене — бесплатный адрес вида вашеимя.eko7.ru; удобно, чтобы развернуть и проверить проект, а свой домен привязать позже;
  • Указать свой домен — если домен уже есть (после оплаты направьте его на ns1.siteko.net и ns2.siteko.net).

Ниже, в блоке «Окружение под фреймворк», выберите пресет (2):

  • Laravel — PHP 8.4, корень сайта public, база данных, заготовка .env, деплой-скрипт и задания планировщика (очередь + schedule:run);
  • Универсальное Composer-приложение — для Symfony, Yii и любых других проектов: версию PHP (7.4–8.4) и корень сайта (public, web, webroot или корень без подкаталога) вы выбираете сами.

Оформление заказа: выбор домена (1) и пресета окружения (2)

Блок «Окружение под фреймворк» появляется только на тарифах Мастер/Эксперт и только если при заказе создаётся сайт (любой вариант, кроме «Не создавать сайт»).

Шаг 3. Подтвердите заказ

Проверьте состав заказа и нажмите «Заказать». Пробный хостинг оформляется без оплаты; платный заказ после подтверждения предложит выбрать способ оплаты.

Подтверждение заказа без оплаты

Шаг 4. Дождитесь создания хостинга

После оформления перейдите в личный кабинет, раздел «Хостинг» (1).

Личный кабинет: раздел «Хостинг» в меню

В карточке хостинга виден живой прогресс: создание аккаунта, настройка сайта и технического домена, выпуск SSL-сертификата, затем подготовка окружения (установка Node.js — самый долгий шаг). Статус обновляется автоматически; целиком процесс занимает до 10–15 минут.

Карточка хостинга: выпускается SSL-сертификат

Карточка хостинга: идёт настройка сайта и технического домена

Когда всё готово, придёт письмо «Хостинг готов» — уже с параметрами окружения.

Шаг 5. Реквизиты доступа

В карточке хостинга теперь есть всё для работы:

  • Доступ к панели управления — адрес, логин и пароль панели ispmanager (файлы, базы, почта, импорт проекта из GitHub). Эти же логин и пароль используются для подключения по SSH.
  • Окружение под фреймворк — корень сайта, имя базы данных и её пароль (по кнопке «Показать»), команда деплоя. Пользователь БД совпадает с её именем, хост — localhost. Копия реквизитов лежит на хостинге в файле ~/DB-CREDENTIALS.txt.

Блок «Окружение под фреймворк» в карточке хостинга: корень сайта, база данных, кнопка «Показать» у пароля, строка деплоя, ссылка «Убрать окружение»

Шаг 6. Разверните свой проект

Код сайта живёт в каталоге ~/www/<ваш-домен>/. Загрузите туда проект любым удобным способом:

  • Импорт из GitHub в панели ispmanager (раздел «Сайты») — панель сама заберёт репозиторий; подробная инструкция: Импорт проекта из GitHub;
  • по SSH: git clone / rsync;
  • через файловый менеджер панели или SFTP.

Для Laravel дальше достаточно одной команды:

~/laravel-deploy.sh

Запустить её проще всего прямо из панели ispmanager — откройте раздел Shell-клиент (в меню рядом с «Импортом из GitHub»): это полноценный терминал в браузере, ничего устанавливать не нужно.

Shell-клиент в панели ispmanager: запуск ~/laravel-deploy.sh

Если привычнее свой терминал — подключитесь по SSH: ssh <логин>@<ваш-домен> (логин и пароль — из карточки хостинга).

Скрипт сам выполнит: composer install --no-dev, сборку фронтенда (только если в проекте есть конфиг Vite или Mix — иначе шаг пропускается), создание .env из .env.example и key:generate (если ключа ещё нет), storage:link, migrate --force, optimize, а также уберёт заглушку index.html, которую панель кладёт при создании сайта.

Заготовка .env с реквизитами базы уже лежит в каталоге сайта — если ваш проект привёз свой .env.example, перенесите из неё блок DB_* (или возьмите реквизиты из ~/DB-CREDENTIALS.txt).

Очередь и планировщик Laravel уже работают: cron каждую минуту запускает queue:work --stop-when-empty и schedule:run — ничего настраивать не нужно.

Для пресета «Универсальное Composer-приложение» деплой-скрипт называется ~/app-deploy.sh и выполняет только composer install и сборку фронтенда — остальные шаги зависят от вашего фреймворка.

Частые вопросы

Можно ли убрать окружение? Да. В карточке хостинга нажмите «Убрать окружение»: мы удалим деплой-скрипт, файл с реквизитами и задания планировщика. Ваш код, файл .env, версия PHP и корень сайта останутся как есть. Базу данных можно удалить вместе с окружением (отдельная галочка) или оставить.

Почему недоступна кнопка «Установить WordPress»? Пока на сайте активно окружение под фреймворк, автоустановка WordPress отключена — она рассчитана на другой корень сайта. Уберите окружение, и кнопка снова станет доступна.

Что если моему проекту нужна другая версия PHP? Выберите пресет «Универсальное Composer-приложение» — в нём версия PHP (7.4–8.4) и корень сайта задаются при заказе.

Фронтенд собирается локально, на сервере Node.js не нужен — это проблема? Нет. Деплой-скрипт запускает сборку только если в проекте есть vite.config.* или webpack.mix.js; если фронт собран локально и закоммичен — шаг просто пропускается.

Обновлено 17 июля 2026