Как установить и настроить все необходимые компоненты, чтобы подготовить свой мак к полноценной разработке на PHP.
Пакетный менеджер
Скачивать и устанавливать весь требуемый софт мы будем с помощью пакетного менеджера Homebrew.
Пакетный менеджер — это инструмент, который значительно облегчает процесс установки любых программ. С Homebrew установка программы на компьютер сводится буквально к одной команде в терминале.
Но сам Homebrew тоже требуется установить, так как по умолчанию он не входит в состав операционной системы.
Понятная инструкция по его установке есть на главной странице этой программы. Выполните её и переходите к следующему шагу.
Установка PHP
Начнём с установки PHP-интерпретатора.
Все последующие команды выполняются через терминал.
Установить интерпретатор можно через одну простую команду:
brew install php@7.2
Проверим, что всё установилось корректно:
$ php --version
PHP 7.2.14 (cli) (built: Jan 12 2019 05:21:04) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Установка веб-сервера
PHP — это язык программирования, на котором можно создавать современные сайты. Обработкой запросов пользователей и отдачей им запрошенных страниц занимаются специальные программы — веб-сервера.
PHP работает в тесной связке с веб-сервером, так как именно последний обращается к нему и, в конечном счёте запускает наши сценарии. В общем, без веб-сервера нам никак не обойтись.
Поднять веб-сервер можно с помощью плагинов для редактора или настроить веб-сервер самостоятельно. Рассмотрим оба варианта.
Использование веб-сервера из редактора
Современные редакторы могут самостоятельно запускать сервер. В VS Code это можно сделать через плагин PHP Server, а в PHP Storm через — PHP Debug Server. По ссылкам есть инструкция с настройками. Для того, чтобы сервер стартовал, нужно чтобы локально был установлен php интерпретатор.
Установка nginx
Рассмотрим как установить веб-сервер самостоятельно.
Установим последнюю версию nginx:
brew install nginx
Запускаем nginx, чтобы он работал в фоне и обслуживал наши запросы:
brew services start nginx
Проверяем, что всё установилось корректно, и nginx успешно работает на нашем компьютере:
откройте любой браузер и введите в адресной строке следующий URL:
http://localhost:8080
в ответ вы должны увидеть страницу с текстом «Welcome to nginx!»
Интеграция PHP и веб-сервера
На этом шаге мы «подружим» PHP-интерпретатор и nginx, чтобы при запросе веб-страниц с расширением.php автоматически выполнялся php-сценарий и мы видели результат его работы в браузере.
Мы сделаем простую настройку сервера так, чтобы он слушал одну папку проекта и выдавал результат через запрос на страницу http://localhost/.
Откройте конфигурационный файл nginx:
nano /usr/local/etc/nginx/nginx.conf
(*) nano — консольный текстовый редактор для Unix и Unix-подобных ОС. Вместо него файлы можно открывать в других редакторах, заменив на nano на phpstorm, code (нужно установить поддержку команды через редактор) для VS Code или другие.
Добавим в конец документа перед закрывающей скобкой от блока http следующий код:
USERNAME нужно будет в двух местах заменить на имя вашего пользователя
server {
listen 80;
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;
}
}
Здесь мы говорим серверу, чтобы он слушал 80 порт страницы localhost и при запросе показывал содержимое папки yeticave. После USERNAME вы можете выбрать путь до любой удобной для вас папки.
Разрешим nginx читать содержимое нашего проекта
sudo chmod -R 755 /Users/USER/Sites/yeticave
(*)Поменяйте USER на имя вашего пользователя и yeticave на папку вашего проекта
Для того, чтобы изменения применились на 80 порт, нужно перезагрузить сервер с доступом администратора командой:
sudo brew services restart nginx
Установка xdebug
Установить xdebug можно простой командой:
pecl install xdebug
Проверка работы
Базовая настройка окружения закончена. Осталось проверить, что мы всё сделали правильно.
Создадим тестовый PHP-сценарий со следующим содержимым:
<?php
phpinfo();
Сохраните его по адресу вашего проекта, например, /Users/user/Sites/yeticave в файл index.php.
Вновь откройте браузер и перейдите по ссылке http://localhost/index.php. Вы должны увидеть большую страницу с подробной информацией об установленной версии PHP и всех настройках. Это будет означать, что вы всё сделали правильно, а значит готовы писать и запускать свои первые php-сценарии. Обратите внимание, что все файлы и папки проекта при этой конфигурации должны лежать в корне папки yeticave.
Установка MySQL в macOS
Актуальную версию MySQL для macOS можно загрузить с официальной страницы. Для удобства установки рекомендуется загружать DMG Archive. В этом случае процесс установки будет выполняться с помощью стандартного инсталлятора.
Рисунок 1. Окно инсталлятора
Нажимаем Continue пока не дойдём до шага Installation Type. На этом шаге необходимо проверить перечень компонентов для установки. Нажимаем кнопку Customize. Отмечаем все флаги как на рисунке 2.
Рисунок 2. Выбор компонент для установки
Нажимаем Install. После установки отобразится всплывающее окно с автоматически сгенерированным паролем для пользователя root. Обязательно его запомните. Пример окна с автоматически сгенерированным паролем приведён на рисунке 3. Далее нажимаете кнопку Finish. На этом установка MySQL завершена.
Рисунок 3. Автоматически сформированный пароль
Сразу после установки служба MySQL не будет запущена. Запуск необходимо выполнить вручную. Проще всего это сделать через аплет System Preferences. Открываем и запускаем аплет для управления MySQL (рисунок 4). В появившемся окне нажимаем кнопку Start MySQL Server.
Рисунок 4. Окно System PreferencesРисунок 5. Аплет запуска MySQL
Чтобы протестировать соединение с MySQL и получить возможность выполнять базовые задачи, вам потребуется фирменная утилита от Oracle — MySQL Workbench. Установка утилиты выполняется стандартным для macOS способом: запускаем загруженный DMG и в окне инсталлятора перетаскиваем иконку MySQL Workbench в папку Application.
Для тестирования корректности установки MySQL запустим MySQL Workbench и попробуем установить соединение.
Рисунок 6. Главное окно MySQL Workbench
В главном окне MySQL Workbench, в разделе MySQL Connections кликаем по автоматически подготовленному профилю Local instance. Появится окно ввода пароля. Вводите пароль, который вы сохранили на этапе установки. Если пароль верный, то появится окно с предложением указать текущий пароль и установить новый. Выполните это действие и нажмите Ok. В случае установки соединения вы увидите окно как на рисунке.
Рисунок 7. Соединение с MySQL установлено
Установка на Linux
Настроить рабочее окружение для разработки на PHP в Linux возможно несколькими способами. Рассмотрим один из наиболее быстрых способов: настройка связки PHP плюс nginx.
Запустите приложение «Терминал». Ярлык на запуск доступен в менеджере приложений.
Рисунок 1. Окно терминала
Обновим локальный индекс пакетов APT
sudo apt-get update
Для работы с PHP нам потребуется веб-сервер. В репозиториях доступно несколько популярных веб-серверов, мы отдадим предпочтение nginx. Помимо высокой производительности его легче конфигурировать.
sudo apt-get install nginx
Следующим шагом выполним запуска nginx. Запомните эту команду. Она вам пригодится при добавлении новых виртуальных хостов.
sudo service nginx start
nginx установлен и теперь нам требуется выполнить базовое конфигурирование. Наша цель — создать новый виртуальный хост, который будет доступен по адресу yourproject.local, где вместо yourproject может быть название вашего проекта. Например: doingsdone.local, eticave.local. Обратите внимание, имена доменов не могут содержать пробелы. Определитесь с именем домена (далее «имя хоста для проекта»). Мы будем ориентироваться на проект yeticave.local, поэтому именно так будем называть конфигурационный файл.
Перейдите в директорию sites-available. В этой директории, nginx хранит конфигурационные файлы всех виртуальных хостов.
cd /etc/nginx/sites-available
Чтобы увидеть список всех доступных виртуальных хостов, выведите содержимое каталога:
ls -all
Рисунок 2. Список доступных виртуальных хостов
Название конфигурационного файла должно совпадать с именем хоста. Поскольку мы планируем сделать конфигурационный файл для хоста yeticave.local, нам потребуется создать файл yeticave.local. Сделаем это:
sudo touch yeticave.local
Файл готов, теперь откроем его в консольном редакторе nano (установлен по умолчанию в большинстве современных дистрибутивов) и опишем минимальную конфигурацию.
sudo nano yeticave.local
Скопируйте в открытый файл yeticave.local ниже приведённый конфигурационный файл. Информацию обо всех непонятных строках вы сможете почерпнуть из официальной документации к nginx.
server {
# Наш проект будет доступен на 80 порту
listen 80;
# Имя виртуального хоста
server_name yeticave.local;
# Корневая директория проекта. В этой папке будут находиться файлы проекта.
# Обратите внимание. Файлы находятся в домашней директории пользователя
# Administrator. Ваше имя наверняка отличается, поэтому обратите на это внимание
# при написании пути.
root /home/administrator/www/yeticave.local;
# Имя индексного файла.
index index.php;
# Настройки отдачи файлов
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires max;
log_not_found off;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~* \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# Обратите внимание на номер версии PHP. На текущей момент в репозиториях
# Ubuntu доступна версия 7.1. Если вы пользуетесь более старой версии ОС,
# то не забудьте обновить номер версии на свой.
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Рисунок 3. Подготовка конфига
Для сохранения изменений в файле нажмите комбинацию клавиш ctrl + o. Затем закройте редактор nano сочетанием клавиш ctrl + x.
Протестируем созданный конфигурационный файл на наличие ошибок:
На этом процесс создания конфигурационного файла завершён. Активируем только что созданный виртуальный хост. Для этого перейдём в директорию sites-enabled и создадим в ней символическую ссылку на наш конфигурационный файл.
cd /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/yeticave.local
Если на текущем шаге попытаться открыть браузер и ввести в адресной строке http://yeticave.local, то ничего, кроме ошибки «Сервер не найден», мы не увидим. Исправим проблему добавлением новой записи в hosts:
sudo nano /etc/hosts
В самом начале файле добавьте строку:
127.0.0.1 yeticave.local
Обратите внимание, мы пишем только доменное имя без указания протокола (http). Сохраняем изменения ctrl + o и закрываем редактор nano сочетанием клавиш ctrl + x .
Установка PHP
Последним компонентом в настройке рабочего окружения станет PHP.
В окне терминала введите команду для установки php-fpm из репозитория.
Важно: обязательно обратите внимание на устанавливаемую версию. В зависимости от дистрибутива она может отличаться. Например, в Ubuntu 16.04 устанавливается 7.0. Если номер версии отличается от той, что мы указали в конфигурационном файле yeticave.local, то необходимо её исправить.