Як запустити PHP на macOS через Docker за 5 хвилин: покрокова інструкція для новачків
Коли ви тільки починаєте вивчати програмування або хочете швидко протестувати новий PHP-скрипт, перша перешкода, з якою ви зіштовхуєтесь — це налаштування локального середовища. Власники Mac часто намагаються використовувати вбудований термінал, встановлювати пакети через Homebrew або завантажувати застарілі збірки на кшталт MAMP. Проте конфігурація Apache, Nginx та правильних версій PHP у системі macOS може швидко перетворитися на квест із розв'язання конфліктів у Терміналі.
Але є значно кращий, сучасніший спосіб. Можна оминути весь цей рутинний процес інсталяції, піднявши готове веб-оточення у контейнері. У цій інструкції ми розберемо, як за допомогою Docker розгорнути зв'язку Nginx + PHP на macOS буквально за кілька хвилин і відразу перейти до кодингу.
Коротко про веб-сервер
Для того, щоб ваш PHP-код виконувався і відображався у браузері, потрібен веб-сервер. У нашому стеку ми використовуємо Nginx.
На відміну від класичного Apache, Nginx — це надзвичайно швидкий та легковагий веб-сервер. Його головне завдання у нашому випадку — прийняти запит від вашого браузера (наприклад, коли ви вводите localhost), зрозуміти, що цей запит стосується PHP-файлу, передати його інтерпретатору PHP на виконання, а потім повернути вам готовий результат у вигляді HTML-сторінки.
Коротко про Docker
Docker — це платформа, яка дозволяє «упакувати» ваш додаток разом з усім його оточенням (веб-сервером, версією PHP, базами даних тощо) у спеціальний ізольований контейнер.
Уявіть це як віртуальну коробку, яка гарантовано працює однаково на будь-якому комп'ютері — хоч на Mac, хоч на Windows чи Linux. Вам більше не потрібно засмічувати власну операційну систему купою різних програм та версій PHP. Потрібен сервер? Запустили контейнер. Закінчили роботу? Просто зупинили його, і ваш Mac знову чистий.
Установка Docker Desktop на Mac та головні налаштування
Щоб почати роботу на macOS, нам знадобиться офіційний додаток Docker Desktop.
Перейдіть на офіційний сайт docker.com у розділ завантажень для Mac.
Важливо: Оберіть правильну версію для вашого процесора:
Mac with Apple Chip — якщо у вас сучасний Mac на процесорі M1, M2, M3, M4 тощо.
Mac with Intel Chip — якщо у вас старіша модель Mac на процесорі Intel.
Завантажте
.dmgфайл, відкрийте його та перетягніть іконку Docker у папку Applications.Запустіть Docker з папки програм та дозвольте йому необхідні системні доступи при першому старті.

Для максимальної швидкості роботи Docker на Mac зайдіть у Settings -> General або Virtualization і переконайтеся, що для механізму спільного використання файлів (File Sharing) обрано VirtioFS. Це забезпечить миттєву синхронізацію файлів між вашим Mac та контейнером.
Створення каталогу з index.php
Створимо простір для нашого майбутнього проекту.
Відкрийте Finder і у вашій домашній папці (або просто на Робочому столі) створіть нову папку з назвою
my-php-project.Зайдіть у цю папку і створіть всередині ще одну підпапку з назвою
code. Саме тут будуть лежати ваші PHP-файли.У папці
codeстворіть файл і назвіть йогоindex.php. Якщо ви користуєтеся стандартним TextEdit, переконайтеся, що файл збережено у форматі "Plain Text" (Звичайний текст), а його розширення — саме.php, а не.php.txt. Найкраще для цього використати будь-який код-редактор на кшталт VS Code. Наразі залиште файл порожнім.
Створення файлу docker-compose.yml з його вмістом
Щоб не прописувати складні команди в Терміналі щоразу, Docker використовує інструмент Docker Compose. Ми створимо один конфігураційний файл, де опишемо все, що нам потрібно.
У корені папки my-php-project (поруч із папкою code, а не всередині неї) створіть файл docker-compose.yml та скопіюйте туди наступний мінімальний код:
services:
web:
image: webdevops/php-nginx:8.3
ports:
- "8080:80"
volumes:
- ./code:/appЩо означає цей код?
services:— описує контейнери, які ми хочемо підняти.image: webdevops/php-nginx:8.3— ми беремо вже готовий, офіційно зібраний образ, де всередині вже налаштовані та зв'язані між собою Nginx та свіжа версія PHP 8.3. Завдяки підтримці Docker, цей образ чудово працює як на Intel, так і на Apple Silicon архітектурі.ports: - "8080:80"— ми прокидаємо порт. Порт 80 всередині контейнера буде доступний на нашому Mac як8080.volumes:— найважливіша магія. Ми пов'язуємо нашу локальну папку./codeіз папкою сайту всередині контейнера. Змінюєте файл на Mac — зміни миттєво з'являються на сервері!
Запуск контейнера
Настав час запустити наше оточення.
Відкрийте стандартний додаток Термінал (Terminal).
Перейдіть до вашої папки з проектом за допомогою команди
cd. Якщо ви створили папку на Робочому столі, команда виглядатиме так:cd ~/Desktop/my-php-projectВиконайте команду для запуска контейнера у фоновому режимі:
docker compose up -d
Docker завантажить необхідні шари образу з інтернету (це потрібно зробити лише один раз) і запустить сервер.
Тепер відкрийте додаток Docker Desktop і перейдіть на вкладку Containers. Ви побачите там свій запущений проект my-php-project.

Заповнення index.php кодом
Тепер, коли сервер працює, давайте напишемо реальний PHP-код. Відкрийте створений раніше файл my-php-project/code/index.php та додайте туди скрипт, який згенерує перші 30 чисел Фібоначчі:
<?php
echo "<h2>Перші 30 чисел Фібоначчі:</h2>";
$num1 = 0;
$num2 = 1;
echo "1: " . $num1 . "<br>";
echo "2: " . $num2 . "<br>";
for ($i = 3; $i <= 30; $i++) {
$num3 = $num1 + $num2;
echo $i . ": " . $num3 . "<br>";
// Оновлюємо значення для наступного кроку
$num1 = $num2;
$num2 = $num3;
}
?>
Збережіть файл.
Запуск файла в браузері
Відкрийте Safari, Chrome або будь-який інший браузер і введіть у адресному рядку:
http://localhost:8080
Перед вами з'явиться сторінка з розрахованими числами Фібоначчі. Ваш PHP-код успішно виконався всередині Docker-контейнера і повернув результат у ваш Mac-браузер. Тепер ви можете редагувати код, просто оновлювати сторінку й одразу бачити зміни.

Зупинка контейнера
Коли ви завершили роботу або навчання, контейнер варто зупинити, щоб він не споживав оперативну пам'ять вашого Mac.
Для цього у Терміналі (перебуваючи в папці проекту) виконайте просту команду:
docker compose down
Контейнер зупиниться і видалиться, але ваш код у папці code та файл налаштувань docker-compose.yml залишаться абсолютно неушкодженими. Наступного разу, коли захочете програмувати, просто знову введіть docker compose up -d.
Висновок: за допомогою Docker ви щойно розгорнули повноцінне веб-оточення на macOS без встановлення локальних серверів безпосередньо в систему. Це чистий, швидкий та професійний підхід до сучасної розробки, який збереже ваш Mac від зайвого сміття!