Настроить рабочее окружение для разработки на PHP в Linux возможно несколькими способами. Рассмотрим один из наиболее быстрых: настройка связки PHP и nginx.

Запустите приложение «Терминал». Ярлык на запуск доступен в менеджере приложений. Сначала обновим локальный индекс пакетов APT

sudo apt-get update

Настройка веб-сервера

Для работы с PHP нам потребуется веб-сервер. В репозиториях доступно несколько популярных веб-серверов, мы отдадим предпочтение nginx. Он хорошо работает и легко настраивается.

sudo apt-get install nginx

Затем запустим nginx. Запомните эту команду. Она пригодится для добавления новых виртуальных хостов.

sudo service nginx start

nginx установлен и теперь нам требуется выполнить базовое конфигурирование. Наша цель — создать новый виртуальный хост, который будет доступен по адресу yourproject.local, где вместо yourproject может быть название вашего проекта.

Например: doingsdone.local, yeticave.local.

Обратите внимание, имена доменов не могут содержать пробелы. Определитесь с именем домена (далее «имя хоста для проекта»). Мы будем ориентироваться на проект yeticave.local, поэтому именно так будем называть конфигурационный файл. Перейдите в директорию sites-available. В этой директории nginx хранит конфигурационные файлы всех виртуальных хостов.

cd /etc/nginx/sites-available

Чтобы увидеть список всех доступных виртуальных хостов, выведите содержимое каталога:

ls -all
Список доступных виртуальных хостов

Название конфигурационного файла должно совпадать с именем хоста. Поскольку мы планируем сделать конфигурационный файл для хоста yeticave.local, нам потребуется создать файл yeticave.local. Сделаем это:

sudo touch yeticave.local

Файл готов, теперь откроем его в консольном редакторе nano (установлен по умолчанию в большинстве современных дистрибутивов) и опишем минимальную конфигурацию.

sudo nano yeticave.local

Скопируйте в открытый файл yeticave.local ниже приведённый конфигурационный файл. Информацию обо всех непонятных строках вы сможете почерпнуть из официальной документации к nginx.

server {
    # Наш проект будет доступен на 80 порту 
        listen 80;
      # Имя виртуального хоста
        server_name yeticave.local;
     # Корневая директория проекта. 
        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)(/.+)$;

        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
                deny all;
        }
}

Обратите внимание на номер версии PHP. На момент написания статьи в репозиториях Ubuntu доступна версия 8.1. Если вы пользуетесь более старой версией ОС, то не забудьте обновить номер версии на свой.

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

Подготовка конфига

Для сохранения изменений в файле нажмите комбинацию клавиш ctrl + o. Затем закройте редактор nano сочетанием клавиш ctrl + x.

Протестируем созданный конфигурационный файл на наличие ошибок:

sudo nginx -t
Тестирование конфигурационного файла nginx

Мы создали конфигурационный файл. Теперь активируем только что созданный виртуальный хост. Для этого перейдём в директорию 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. Этот репозиторий является официальным источником PHP-пакетов для Debian и Ubuntu:

sudo add-apt-repository ppa:ondrej/php

В окне терминала введите команду для установки php-fpm из репозитория.

sudo apt install php-fpm php-cli php-common php-json php-mysql php-phpdbg php-mbstring php-imap php-dev php-curl php-xdebug

Важно: обязательно обратите внимание на версию PHP. В зависимости от дистрибутива она может отличаться. Если номер версии отличается от той, что мы указали в конфигурационном файле yeticave.local, то необходимо её исправить.

Настройка xdebug

Вводим команду редактирования файла:

sudo nano /etc/php/8.1/mods-available/xdebug.ini

Добавляем в файл конфигурацию для xdebug:

xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.var_display_max_depth = -1
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1
xdebug.idekey = "PHPSTORM":

Сохраняем изменения ctrl + o и закрываем редактор nano ctrl + x.

Внесём изменения в конфигурационный файл php, чтобы он выводил все ошибки в браузер, а не только в лог-файл.

sudo nano /etc/php/8.1/fpm/php.ini

Найдём, раскомментируем (уберём знак «;» или исправим значение) и установим значения для строк:

display_errors = On
display_startup_errors = On
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

Сохраняем изменения ctrl + o, закрываем редактор ctrl + x.

Запускаем php-fpm. Выполняем команды:

sudo service php8.1-fpm stop
sudo service php8.1-fpm start

Размещаем файлы проекта в директорию проекта. Директорию проекта вы указали в секции root, конфигурационного файла yeticave.local. Выставляем права:

sudo chmod -R 755 /home/administrator/www/yeticave.local

Открываем браузер и пробуем обратиться к http://yeticave.local.

Всё готово!

Это архивная версия статьи об установке PHP на macOS.

Некоторая информация в ней устарела, поэтому мы обновили статью — читайте новую версию.

Настройка окружения PHP-разработчика в macOS

Как установить и настроить все необходимые компоненты, чтобы подготовить свой мак к полноценной разработке на 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.

Окно System Preferences
Рисунок 4. Окно System Preferences
Аплет запуска MySQL
Рисунок 5. Аплет запуска MySQL

Чтобы протестировать соединение с MySQL и получить возможность выполнять базовые задачи, вам потребуется фирменная утилита от Oracle — MySQL Workbench. Установка утилиты выполняется стандартным для macOS способом: запускаем загруженный DMG и в окне инсталлятора перетаскиваем иконку MySQL Workbench в папку Application.

Для тестирования корректности установки MySQL запустим MySQL Workbench и попробуем установить соединение.

Главное окно MySQL Workbench
Рисунок 6. Главное окно MySQL Workbench

В главном окне MySQL Workbench, в разделе MySQL Connections кликаем по автоматически подготовленному профилю Local instance. Появится окно ввода пароля. Вводите пароль, который вы сохранили на этапе установки. Если пароль верный, то появится окно с предложением указать текущий пароль и установить новый. Выполните это действие и нажмите Ok. В случае установки соединения вы увидите окно как на рисунке.

Соединение с MySQL установлено
Рисунок 7. Соединение с MySQL установлено