---
title: "Як задеплоїти застосунок на PHP у 2026"
description: "Задеплойте застосунок на PHP однією командою: pethost deploy пише Dockerfile для Laravel, Symfony чи простих сторінок і віддає через HTTPS за 9,99 € на місяць."
---

[Блог](https://pethost.dev/uk/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`, тож pethost пише 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/uk/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`, що віддає папку, з налаштуваннями PHP для production. Файли `.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/uk/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/uk/blog/unlimited-projects-flat-monthly-fee/) і без оплати за використання. Машина працює завжди, тож відвідувач [ніколи не чекає на холодний старт](https://pethost.dev/uk/blog/always-on-hosting-no-cold-starts/).

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

Що вже зроблено за вас: HTTPS із сертифікатами, які поновлюються самі, деплої з GitHub, щонічні бекапи, що зберігаються 14 днів, SSH у будь-який контейнер і облік кожного запиту без жодного скрипта на ваших сторінках. Тарифи — у розділі [ціни](https://pethost.dev/uk/#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, а він ваш.

### Чи зберігається база 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/uk/blog/deploy-gin-app/) Задеплойте застосунок на Go Gin однією командою: pethost deploy пише Dockerfile, збирає програму й віддає її через HTTPS за 9,99 € на місяць.
- 10 жовтня 2026 р. [Як задеплоїти застосунок на Go Fiber у 2026: одна команда, HTTPS і Dockerfile, що лишається у вас](https://pethost.dev/uk/blog/deploy-fiber-app/) Задеплойте застосунок на Go Fiber однією командою: pethost deploy пише Dockerfile, збирає його за 45 секунд і віддає через HTTPS за 9,99 € на місяць.
- 10 жовтня 2026 р. [Як задеплоїти застосунок на Nuxt у 2026: одна команда, Node-сервер і HTTPS](https://pethost.dev/uk/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/uk/blog/deploy-react-router-app/) Задеплойте застосунок на React Router із серверним рендерингом: pethost deploy збирає Dockerfile шаблону й віддає його через HTTPS за 11 с, за 9,99 € на місяць.

[Усі статті](https://pethost.dev/uk/blog/) · [Про Pethost](https://pethost.dev/about/) · [Тарифи](https://pethost.dev/uk/#pricing)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблони](https://pethost.dev/uk/templates/)
- [Про нас](https://pethost.dev/about/)
- [Документація](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/uk/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/uk/postgres/)

Порівняння

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

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

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