---
title: "Как задеплоить PHP-приложение в 2026"
description: "Деплой PHP-приложения одной командой: pethost deploy пишет Dockerfile для Laravel, Symfony или простых PHP-страниц и отдает их по HTTPS — за 9,99 € в месяц."
---

[Блог](https://pethost.dev/ru/blog/) · Гайды по деплою

# Как задеплоить PHP-приложение в 2026: Laravel, Symfony или простые PHP-страницы одной командой

Команда Pethost · 24 октября 2026 г. · Обновлено 28 октября 2026 г. · 10 мин чтения

У вас есть PHP-приложение, которое работает на ноутбуке: проект на Laravel, проект на Symfony или папка со страницами `.php`. Вы хотите выложить его в сеть с HTTPS и не настраивать сервер. На Pethost это одна команда, `pethost deploy`, в папке приложения: она пишет Dockerfile, собирает приложение на вашей машине Pethost и печатает его адрес. Свежий проект из `laravel new` собрался и запустился за 1 минуту 29 секунд, а папка из двух страниц — за 12 секунд.

**Коротко**

- **Одна команда:** `pethost deploy` в папке с `composer.json` или с `index.php` для простых страниц. Писать файл конфигурации не нужно.
- **Laravel и Symfony** работают на FrankenPHP с PHP 8.4. pethost запускает `composer install`, собирает ассеты Vite и запускает приложение в режиме production.
- **Простые PHP-страницы** работают на Apache, с вашими файлами `.htaccess` и `mod_rewrite`.
- **База SQLite в Laravel** хранится в томе, а миграции выполняются при каждом запуске, так что новый деплой сохраняет данные.
- **Цена:** 9,99 € в месяц за 2 vCPU, 3 GB и 30 GB — для всех ваших проектов. Бесплатного тарифа нет.

## Что нужно, чтобы задеплоить PHP-приложение в 2026 году

Три вещи: само приложение, команда `pethost` и аккаунт Pethost.

**Приложение** — это папка на вашем компьютере: здесь проект, созданный `laravel new`, скелет Symfony с одной страницей и две страницы на чистом PHP. Docker на компьютере не нужен: образ собирается на вашей машине Pethost.

**Команда** — это одна программа, которая ставится одной строкой. Все ее команды есть в [справочнике CLI](https://pethost.dev/docs/cli/).

```
curl -fsSL https://pethost.dev/install.sh | sh      # macOS, Linux
irm https://pethost.dev/install.ps1 | iex           # Windows, in PowerShell
```

**Аккаунту** нужен тариф. Если вы не вошли, `pethost deploy` откроет браузер, и вы войдете. Если тарифа еще нет, команда покажет, где его выбрать, и подождет.

## Деплой приложения на Laravel

Приложение — то, что оставляет установщик Laravel: `laravel new example-app` без стартового набора, с базой SQLite и Pest, плюс `npm install` и сборка, которые запускает сам установщик. Перейдите в его папку и запустите `pethost deploy`. Вот весь экран:

```
$ cd example-app
$ pethost deploy
Name it [example-app]:      it will live at https://example-app.sam.pethost.app
✓ Packed 10.4k files, 51 MB   (left out node_modules · took .env from this folder)
✓ Uploaded straight to your machine
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
✓ Laravel project detected, wrote Dockerfile and .dockerignore.
~ The database starts empty on the machine and is migrated at each start: pethost run -- php artisan db:seed --force fills it from the project's seeders.
✓ Packed 10.4k files, 51 MB   (left out node_modules · took .env from this folder)
✓ Uploaded straight to your machine
✓ Built and started in 1 min 29 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env, port 80, a named volume at /app/storage/app
✓ app listens on 80 → https://example-app.sam.pethost.app
  It answers 200.

https://example-app.sam.pethost.app

Wrote .pethost (commit it). Next:   pethost logs -f   ·   pethost open
```

1. **Она спрашивает одно** Имя проекта — первое слово его адреса. Enter берет имя папки.
2. **Машина не находит, что запускать** Строка с крестиком — ее ответ: проект запускается из Dockerfile или Compose-файла, а в папке пока нет ни того, ни другого.
3. **pethost пишет Dockerfile** `composer.json` требует `laravel/framework`, поэтому он пишет Dockerfile для Laravel и загружает папку снова.
4. **Машина собирает и запускает его** Затем pethost открывает адрес и печатает ответ: 200, приветственная страница Laravel.

Ваш `.env`, вместе с `APP_KEY`, стал собственным файлом проекта на машине. `.pethost` говорит, какой проект у этой папки: закоммитьте его вместе с Dockerfile, и следующий деплой ничего не спросит.

### Dockerfile, который pethost пишет для Laravel

Вот главные строки файла, который появляется в папке. В его 54 строках комментарии объясняют, зачем нужен каждый шаг:

```
# check=skip=JSONArgsRecommended
# Written by pethost deploy for this Laravel project: composer.json requires
# laravel/framework, package.json builds the assets with "vite build", npm installs it
# (package-lock.json), its SQLite database is kept in storage/app, with the files the
# site is given, it runs in production mode, set over the folder's .env.
# It is yours now: change it as you like. pethost does not write it again.

FROM dunglas/frankenphp:1-php8.4
…
COPY . .

RUN composer install
…
RUN npm run build

ENV DB_DATABASE=/app/storage/app/database.sqlite
# The machine keeps this directory across deploys.
VOLUME /app/storage/app
EXPOSE 80
…
CMD export APP_ENV=production APP_DEBUG=false LOG_CHANNEL=stderr DB_DATABASE=/app/storage/app/database.sqlite && \
    php artisan migrate --force && \
    exec frankenphp run --config /etc/frankenphp/Caddyfile
```

- **Сервер** — FrankenPHP на основе Caddy, с PHP 8.4. Приложению сообщается, что оно работает за HTTPS, поэтому URL, которые пишет Laravel, начинаются с `https://`. Расширения, которые `composer.json` требует как `ext-…`, устанавливаются.
- **Режим production** задается при запуске, поверх `.env` с вашего ноутбука, а логи идут в вывод контейнера, откуда их читает `pethost logs`.
- **Файл SQLite** лежит в папке `storage/app`, которую машина хранит в томе между деплоями, а миграции выполняются до запуска сервера.

## Как запускать команды artisan на машине

`pethost run` выполняет одну команду в контейнере приложения. Вот собственные миграции Laravel после трех деплоев:

```
$ pethost run -- php artisan migrate:status
example-app (.pethost)

  Migration name .............................................. Batch / Status
  0001_01_01_000000_create_users_table ............................... [1] Ran
  0001_01_01_000001_create_cache_table ............................... [1] Ran
  0001_01_01_000002_create_jobs_table ................................ [1] Ran
```

Все три — в batch 1: они выполнились при первом запуске, и база пережила два деплоя после него. `pethost run -- php artisan db:seed --force` заполняет ее из ваших сидеров, как и говорила строка с тильдой, а `pethost shell` открывает шелл для `php artisan tinker`.

Проект на Laravel, у которого в `.env` указан MySQL или Postgres, Dockerfile не получает: база должна работать рядом с ним. pethost так и говорит:

```
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
  .env names a database other than SQLite (DB_CONNECTION=pgsql), and the machine runs none beside a Dockerfile: the project needs a compose.yaml with the site and its database.
```

Файл `compose.yaml` с приложением и его базой запускается как написан. Или создайте базу данных в один клик, без доплаты, и подключите ее к приложению: MariaDB для приложения, сделанного под MySQL, или Postgres ([Postgres по фиксированной цене](https://pethost.dev/ru/blog/european-hosting-postgres-flat-price/)).

## Деплой приложения на Symfony

Приложение — скелет Symfony, `composer create-project symfony/skeleton my-project` (то же, что `symfony new my-project`), с контроллером из руководства Symfony «Создайте свою первую страницу»: `src/Controller/LuckyController.php`, у которого маршрут `/lucky/number` отвечает случайным числом. Его деплоит та же команда:

```
$ cd my-project
$ pethost deploy
Name it [my-project]:        it will live at https://my-project.sam.pethost.app
✓ Packed 1.7k files, 7.9 MB   (took .env from this folder)
✓ Uploaded straight to your machine
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
✓ Symfony project detected, wrote Dockerfile and .dockerignore.
✓ Packed 1.7k files, 7.9 MB   (took .env from this folder)
✓ Uploaded straight to your machine
✓ Built and started in 57 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env, port 80
✓ app listens on 80 → https://my-project.sam.pethost.app
  It answers 404.

https://my-project.sam.pethost.app

Wrote .pethost (commit it). Next:   pethost logs -f   ·   pethost open
```

Ответ — 404, потому что у приложения нет маршрута на `/`, а в production Symfony не показывает приветственную страницу. Откройте маршрут, который есть:

```
$ curl https://my-project.sam.pethost.app/lucky/number
<html><body>Lucky number: 27</body></html>
```

Dockerfile для Symfony — это Dockerfile для Laravel без Node и базы данных. `APP_ENV=prod` задается для `composer install`, который прогревает кеш, и при запуске — поверх `.env`, который в Symfony коммитится с `APP_ENV=dev`. Ассеты AssetMapper компилируются при сборке. Проект с сущностями Doctrine в `src/Entity` Dockerfile не получает: ему нужен `compose.yaml` с базой данных.

## Деплой простых PHP-страниц

Без фреймворка и без Composer: папка с `index.php`, который показывает форму, и `hello.php`, который читает `$_POST['name']` и здоровается.

```
$ cd my-site
$ pethost deploy
Name it [my-site]:              it will live at https://my-site.sam.pethost.app
✓ Packed 2 files, 604 B
✓ Uploaded straight to your machine
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
✓ PHP site detected, wrote Dockerfile.
~ Every file of the folder is public at its address, but for the Dockerfile and names that begin with a dot.
✓ Packed 3 files, 1 KB
✓ Uploaded straight to your machine
✓ Built and started in 12 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env, port 80
✓ app listens on 80 → https://my-site.sam.pethost.app
  It answers 200.

https://my-site.sam.pethost.app

Wrote .pethost (commit it). Next:   pethost logs -f   ·   pethost open
```

```
$ curl -d name=Sam https://my-site.sam.pethost.app/hello.php
…
  <p>Hello, Sam!</p>
```

Dockerfile здесь — официальный образ PHP `php:8.4-apache`, который отдает папку, с production-настройками PHP. Файлы `.htaccess` работают, `mod_rewrite` включен. Прочтите строку с тильдой: каждый файл папки публичен, поэтому секрет кладите в переменные проекта. Страницам, которые открывают базу данных через `mysqli` или `PDO`, нужен `compose.yaml` с этой базой, и pethost так и скажет.

## Изменить код и задеплоить снова

Добавьте маршрут в `routes/web.php` и запустите ту же команду:

```
Route::get('/hello', function () {
    return 'Hello from Laravel!';
});
```

```
$ pethost deploy
example-app (.pethost)
✓ Packed 10.4k files · uploaded · built and started in 48 s
  · kept the project's .env in place of the version's own: after the first deploy the project's is kept
  · wrote compose.yaml for the Dockerfile: the service app, reading .env, port 80, a named volume at /app/storage/app
  · kept the project's x-pethost
  It answers 200.
https://example-app.sam.pethost.app
To send this folder's .env:  pethost env push
```

Обратите внимание на вторую строку: после первого деплоя машина хранит `.env` проекта, а не тот, что на вашем ноутбуке. `pethost env set` меняет переменную и сразу деплоит:

```
$ pethost env set APP_URL=https://example-app.sam.pethost.app
example-app (.pethost)
✓ /.env has APP_URL now. Deployed in 48 s.
```

Имя без значения запрашивает секрет, не показывая его: `pethost env set MAIL_PASSWORD`. `pethost github sam/example-app` с этого момента деплоит каждый пуш, а `pethost rollback` возвращает предыдущую версию. ИИ-агент может делать все это через MCP-сервер Pethost: [как агент деплоит проект и следит за ним](https://pethost.dev/ru/blog/hosting-for-ai-coding-agents/).

## Свой домен для PHP-приложения

Любое имя в домене вашего аккаунта работает сразу, с HTTPS. Для своего домена нужны одна команда и одна DNS-запись:

```
pethost domain add www.example.com
```

Команда печатает запись: CNAME на имя вашей машины. Сертификат появится, как только имя начнет указывать на машину, и продлевается сам.

## Что вы получаете за эту цену

Pethost стоит 9,99 € в месяц за все, что вы размещаете, на 2 vCPU, 3 GB памяти и 30 GB диска. Этого хватит на приложение Laravel, его воркер очереди, базу данных и ваш следующий проект, [без платы за проект](https://pethost.dev/ru/blog/unlimited-projects-flat-monthly-fee/) и без счетчиков. Машина работает всегда, поэтому посетитель [никогда не ждет холодного старта](https://pethost.dev/ru/blog/always-on-hosting-no-cold-starts/).

- **9,99 €** в месяц за все ваши проекты, без счетчиков
- **1 мин 29 с** на сборку и запуск нового приложения Laravel в первый раз
- **12 с** для папки с PHP-страницами

Что уже сделано за вас: HTTPS с сертификатами, которые продлеваются сами, деплой из GitHub, ночные бэкапы, которые хранятся 14 дней, SSH в любой контейнер и учет каждого запроса без скриптов на ваших страницах. Тарифы — в разделе [с ценами](https://pethost.dev/ru/#pricing) на главной странице.

**Каждый проект подписан.** Семь проектов на одной машине Starter: приложения с адресами и запросами за последние сутки, базы данных с приложениями, которые их используют.

![Первая страница панели Pethost: CPU, память и диск машины и ее проекты в виде карточек.](https://pethost.dev/shots/projects.webp)

### Pethost — лучший выбор для

- **PHP-разработчиков с приложением на Laravel или Symfony**, которые хотят выложить его в сеть, не обслуживая сервер
- **Тех, кто уходит с виртуального хостинга** с папкой PHP-страниц и планирует еще несколько проектов
- **Тех, за кого деплоит агент**: Claude Code или Codex выкладывает приложение в сеть и читает его логи
- **Стартапов на ранней стадии**, которым нужны фиксированные расходы в месяц, пока продукт небольшой

### Ищите другое, если

- Вашему приложению нужны несколько регионов или автомасштабирование

## Вопросы

### Как задеплоить PHP-приложение без Dockerfile?

Запустите `pethost deploy` в папке приложения. Для проекта на Laravel или Symfony или папки с `index.php` команда сама пишет Dockerfile и деплоит проект. Файл остается в вашей папке, и вы можете его менять.

### Какая версия PHP на Pethost?

Dockerfile, которые пишет pethost, запускают PHP 8.4: на FrankenPHP для Laravel и Symfony, на Apache для простых страниц. Версия указана в строке `FROM` в Dockerfile, а Dockerfile — ваш.

### Сохранится ли база SQLite в Laravel после нового деплоя?

Да. Файл лежит в папке `storage/app`, которую машина хранит в томе, и при каждом запуске выполняется `php artisan migrate --force`. Через два деплоя миграции по-прежнему были в batch 1.

### Можно ли задеплоить Laravel с MySQL или Postgres?

Да, с `compose.yaml`, который запускает приложение рядом с его базой: Dockerfile для него pethost не пишет и так и говорит. Или подключите приложение к базе, созданной в один клик без доплаты: MariaDB для приложения под MySQL или Postgres.

### Сколько стоит хостинг PHP-приложения на Pethost?

9,99 € в месяц за Starter с 2 vCPU, 3 GB и 30 GB и без платы за проект: ваши другие приложения и базы работают там же. Бесплатного тарифа нет. Цены указаны без НДС.

На экранах — деплои на нашей тестовой машине с pethost 0.2.4: проект, созданный установщиком Laravel 5.32.0 (Laravel 13.38.0), скелет Symfony 8.1.9 и две страницы на чистом PHP, все на PHP 8.4.27. Первым был деплой Laravel; деплой Symfony использовал образ FrankenPHP, который тот уже скачал. Аккаунт на экранах — учебный, `sam`.

1. [Laravel: установка](https://laravel.com/docs/13.x/installation)
2. [Laravel: деплой](https://laravel.com/docs/13.x/deployment)
3. [Symfony: установка и настройка фреймворка](https://symfony.com/doc/current/setup.html)
4. [Symfony: создание первой страницы](https://symfony.com/doc/current/page_creation.html)
5. [FrankenPHP: документация](https://frankenphp.dev/docs/)
6. [PHP: официальный образ Docker](https://hub.docker.com/_/php)
7. [pethost — командная строка Pethost](https://pethost.dev/docs/cli/)

## Запустите свои проекты уже сегодня

Деплойте приложения, ботов и базы данных из агента, с GitHub или в браузере, сколько поместится, по одной фиксированной цене. Ничего по счётчику, ничего сверху.

[Разместить проекты за 9,99 €/мес](https://console.pethost.dev/)

## Читать дальше

- 10 октября 2026 г. [Как задеплоить приложение на Gin в 2026: одна команда, HTTPS и Dockerfile, который остается у вас](https://pethost.dev/ru/blog/deploy-gin-app/) Деплой приложения на Go Gin одной командой: pethost deploy пишет Dockerfile, собирает программу и отдает ее по HTTPS — за 9,99 € в месяц.
- 10 октября 2026 г. [Как задеплоить приложение на Go Fiber в 2026: одна команда, HTTPS и Dockerfile, который остается у вас](https://pethost.dev/ru/blog/deploy-fiber-app/) Деплой приложения на Go Fiber одной командой: pethost deploy пишет Dockerfile, собирает его за 45 секунд и отдает по HTTPS — за 9,99 € в месяц.
- 10 октября 2026 г. [Как задеплоить приложение на Nuxt в 2026: одна команда, Node-сервер и HTTPS](https://pethost.dev/ru/blog/deploy-nuxt-app/) Деплой приложения на Nuxt 4 одной командой: pethost deploy пишет Dockerfile, запускает nuxt build и Node-сервер по HTTPS — за 9,99 € в месяц.
- 10 октября 2026 г. [Как задеплоить приложение на React Router в 2026: Dockerfile шаблона, одна команда и HTTPS](https://pethost.dev/ru/blog/deploy-react-router-app/) Деплой приложения на React Router с серверным рендерингом: pethost deploy собирает Dockerfile шаблона и отдает его по HTTPS за 11 секунд — за 9,99 € в месяц.

[Все статьи](https://pethost.dev/ru/blog/) · [О Pethost](https://pethost.dev/about/) · [Цены](https://pethost.dev/ru/#pricing)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблоны](https://pethost.dev/ru/templates/)
- [О нас](https://pethost.dev/about/)
- [Документация](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/ru/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Плагин](https://github.com/pethost-dev/plugin)
- [Условия](https://pethost.dev/terms/)
- [Конфиденциальность](https://pethost.dev/privacy/)
- [Возвраты](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Базы данных

- [Postgres](https://pethost.dev/ru/postgres/)

Сравнения

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/ru/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/ru/blog/coolify-cloud-vs-dokploy-cloud/)
- [Цены Railway, Render и Fly.io](https://pethost.dev/ru/blog/railway-vs-render-vs-fly-io-pricing/)
- [Управляемый хостинг Docker Compose](https://pethost.dev/ru/blog/managed-docker-compose-hosting/)

Альтернативы

- [Альтернативы Railway](https://pethost.dev/ru/blog/railway-alternatives/)
- [Альтернативы Heroku](https://pethost.dev/ru/blog/heroku-alternatives/)
- [Альтернативы Dokploy](https://pethost.dev/ru/blog/dokploy-alternatives/)
- [Альтернативы Coolify](https://pethost.dev/ru/blog/coolify-alternatives/)
- [Альтернативы Render](https://pethost.dev/ru/blog/render-alternatives/)
- [Альтернативы Sliplane](https://pethost.dev/ru/blog/sliplane-alternatives/)
