Як встановити та налаштувати PHP у macOS

Встановлення Homebrew

Завантажувати і встановлювати весь необхідний софт ми будемо за допомогою пакетного менеджера Homebrew.

Пакетний менеджер — це інструмент, який значно полегшує процес встановлення будь-яких програм. З Homebrew встановлення програми на комп'ютер зводиться буквально до однієї команди в терміналі.

Але сам Homebrew теж потрібно встановити, оскільки за замовчуванням він не входить до складу операційної системи. Процес встановлення займає деякий час, тож доведеться почекати.

Зрозуміла інструкція з його встановлення є на головній сторінці цієї програми — https://brew.sh.

Усі наступні команди виконуються через термінал. Зверніть увагу: після встановлення brew потрібно виконати дві команди з розділу next steps, щоб додати Homebrew у PATH. Команди залежатимуть від імені користувача на комп'ютері, у нашому випадку вони такі. Скопіюйте їх із терміналу та виконайте по черзі.

Виконайте і переходьте до наступного кроку.

Встановлення PHP

Почнемо зі встановлення PHP-інтерпретатора. Ми використовуємо останню версію PHP на момент виходу статті: PHP 8.
За замовчуванням homebrew вже містить потрібний пакет, тому залишається виконати лише команду встановлення:

brew install php

Перевіримо, що все встановилося коректно:

php --version

PHP 8.0.11 (cli) (built: Sep 26 2021 20:58:36) ( NTS )
Copyright © The PHP Group
Zend Engine v4.0.11, Copyright © Zend Technologies
with Zend OPcache v8.0.11, Copyright ©, by Zend Technologies

Зверніть увагу: якщо ви бачите повідомлення, що встановлено не версію 8, а щось таке, то перезапустіть термінал і спробуйте виконати php --version ще раз.

WARNING: PHP is not recommended
PHP is included in macOS for compatibility with legacy software.
Future versions of macOS will not include PHP.
PHP 7.3.29-to-be-removed-in-future-macOS (cli) (built: Aug 30 2021 10:56:09) ( NTS )

Тепер запустіть php-fpm:

brew services start php

Якщо все пройшло добре, то ви побачите таке повідомлення:

==> Successfully started `php` (label: homebrew.mxcl.php)

Встановлення веб-сервера

Веб-сервер обробляє запити користувачів і віддає їм запитані сторінки. Без веб-сервера робота з PHP не має сенсу, тож тепер потрібно встановити його.
Веб-сервер можна встановити за допомогою плагінів для редактора або налаштувати самостійно. Розглянемо обидва варіанти.

Використання веб-сервера з редактора

Редактори коду можуть самостійно запускати сервер. У VS Code це можна зробити через плагін PHP Server, а в PhpStorm через — PHP Debug Server. За посиланнями є інструкція з налаштуваннями. Для того, щоб сервер стартував, потрібно щоб локально був встановлений PHP інтерпретатор.

Самостоятельная установка веб-сервера через nginx

Незважаючи на наявність у PHP вбудованого сервера, рекомендується встановити окремий веб-сервер, оскільки він гнучкіше налаштовується і має додаткові можливості. Розглянемо як встановити веб-сервер самостійно.

Інсталюємо останню версію nginx:

brew install nginx

Оскільки порт 80 вимагає прав адміністратора, а homebrew за замовчуванням встановлює софт із правами користувача, то працювати nginx буде на порту 8080. Запускаємо nginx, щоб він працював у фоні й обслуговував наші запити:

brew services start nginx

Індикатор успіху:

==> Successfully started `nginx` (label: homebrew.mxcl.nginx)

Перевіряємо, що все встановилося коректно, і nginx успішно працює на нашому комп'ютері. Відкрийте будь-який браузер і введіть в адресному рядку наступний URL:

Ви маєте побачити таку сторінку з текстом «Welcome to nginx!».

Інтеграція PHP і веб-сервера

На цьому кроці ми «подружимо» PHP-інтерпретатор і nginx, щоб під час запиту веб-сторінок із розширенням .php автоматично виконувався php-сценарій, і ми бачили результат його роботи в браузері.
Ми зробимо просте налаштування сервера так, щоб він слухав одну папку проєкту і видавав результат через запит на сторінку.
Відкрийте конфігураційний файл nginx через VS Code.
Якщо у вас Mac на процесорі Intel:

code /usr/local/etc/nginx/nginx.conf

Якщо у вас Mac на процесорі Apple (M1, M1 Pro, M1 Max):

code /opt/homebrew/etc/nginx/nginx.conf

Зверніть увагу: якщо на цьому етапі ви отримуєте помилку zsh: command not found: code, то відкрийте VS Code, натисніть Cmd+Shift+P і введіть shell.

Виберіть пункт Shell Command: Install 'code' command in PATH. Після цього команда code додасться в термінал і ви зможете відкрити потрібний файл.

Додамо в кінець документа перед закриваючою дужкою від блоку http такий код. USERNAME потрібно буде у двох місцях замінити на ваше ім'я користувача.

server {
    listen       8080;
    server_name  localhost;
    client_max_body_size 20M;
    root   /Users/USERNAME/Sites/yeticave;
    location / {
        index  index.php index.html index.htm;
    }
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        # goes on same line:
        fastcgi_param  SCRIPT_FILENAME /Users/USERNAME/Sites/yeticave/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Якщо в nginx.conf уже є блок server, потрібно видалити його, інакше нічого не працюватиме.

Тут ми говоримо серверу, щоб він слухав 8080 порт сторінки Іоcalhosti під час запиту показував вміст папки yeticave. Після USERNAME ви можете вибрати шлях до будь-якої зручної для вас папки.

Дозволимо nginx читати вміст нашого проекту

sudo chmod -R 755 /Users/USERNAME/Sites/yeticave

Поміняйте USERNAME на ім'я вашого користувача і yeticave на папку вашого проєкту. Для того, щоб зміни застосувалися, потрібно перезавантажити сервер командою:

brew services restart nginx

Встановлення xdebug

pecl install xdebug

Перевірка роботи

Базове налаштування оточення закінчено. Залишилося перевірити, що ми все зробили правильно. Створимо тестовий PHP-сценарій із таким вмістом:

<?php
phpinfo();
?>

Збережіть його за адресою вашого проекту, наприклад, /Users/user/Sites/yeticave у файл index.php. Знову відкрийте браузер і перейдіть за посиланням http://localhost:8080/index.php. Ви маєте побачити велику сторінку з детальною інформацією про встановлену версію PHP і всі налаштування.

Це означатиме, що ви все зробили правильно, а значить готові писати і запускати свої перші php-сценарії. Зверніть увагу, що всі файли і папки проєкту за цієї конфігурації мають лежати в корені папки yeticave.

Встановлення бази даних, таких як MySQL, Postgres

Для керуванням БД раджу використовувати DBngin — https://dbngin.com, треба встановити — запустити — обрати БД яка потрібна.