Как установить php на mac os

Обновлено: 01.07.2024

Ну в общем, мне нужно настроить Mac OS для разработки на PHP. Надо заметить что Apache на моем Mac уже стоит, причем это по умолчанию. (У меня Yosemite, для справки).

Особо удачливые и гуру могут использовать инструкцию с сайта php, а здесь я попытаюсь изложить доходчиво и по пунктам для всех остальных.

Ну пожалуй по порядку.

Нам нужен для работы Apache, который в принципе уже предустановлен (в Yosimite по умолчанию доступна версия 2.4), но в панели управления никаких интерфейсов для работы с ним не представлено.

Есть несколько простых способов решить эту задачку с помощью сторонних приложений, например, clickontyler или VirtualHostX. (На самом деле clickontyler это более простая и бесплатная версия одного и того же продукта).

Но все можно сделать используя уже имеющиеся средства.

Нас интересует Terminal и apachectl.

Чтобы запустить web-сервер:

$ sudo apachectl start

Чтобы остановить apache:

$ sudo apachectl stop

Чтобы перезапустить apache после изменение конфигурации:

$ sudo apachectl restart

Настройки Document Root

В первую очередь я изменил корневую папку, с которой работает сервер. По умолчанию это /Library/WebServer/Documents . Поскольку эта машина предназначена для разработчика можно изменить директорию, на папку в домашней директории пользователя. Для этого необходимо внести правки в конфигурационный файл Apache.

Можно использовать любой удобный редактор, к примеру vi или subl . Главное запускать его с правами root , для этого необходимо использовать команду sudo .

Terminal Nano httpd.conf

Найдите в документе DocumentRoot , строка должна выглядеть следующим образом:

Измените адрес на необходимый вам. К примеру

Так же нужно внести изменения внутри <Directory> должен быть указан тот же путь:

Внутри блока <Directory> вы найдете настройку AllowOverride , измените ее следующим образом:

* посмотреть назначение параметров можно, например, здесь.

User & Group

User <имявашегопользователя>
Group staff.

Создаем корневую директорию

Конечно, для того чтобы применить настройки необходимо перезапустить Apache sudo apachectl restart .

Выше мы уже сделали необходимые настройки, но самой директории у нас еще нет. Создать ее можно из терминала или из Finder. Следующий пример создает директорию и файлик index.html , содержащий заглушку, которой можно будет проверить работу сервера.

/Sites
$ echo "<h1>Hello World. 1111 Работает. </h1>" >

Существуют различные менеджеры пакетов для Mac OS:

В принципе, вы можете использовать тот, что Вам больше нравится. Исторически сложилось так, что я пользуюсь Homebrew.

В первую очередь, для установки brew потребуется поставить XCode и Command Lite Tools. Сперва убедитесь, что установлен XCode он доступен в Mac App Store.

Затем в терминале пишем:

xcode-install

Установка

Полную документацию можно найти на Homebrew Wiki, кажется теперь ее переместили к репозиторию на GitHub. Я приведу только выдержку.

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Просто следуем предложениям терминала и там где требуется вводим пароль. Это займет несколько минут.

Проверка

Так же вы можете использовать следующую команду, чтобы удостовериться, что все корректно

Теперь можно работать с brew.

Немного мат.части для общего развития.

У Homebrew есть формулы, это нечто вроде скриптов на Ruby, например вот:

Homebrew устанавливает программы в их собственные директории и создает символьную ссылку на них в /usr/local .

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

В общем-то после установки brew, установка php становится весьма тривиальной задачей. В данном описании я покажу только установку конкретной версии PHP, а дальнейшем постараюсь показать вариант установки нескольких версий и переключения между ними. Англоязычное описание по установке нескольких версий php можно найти прямо здесь.

$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/homebrew-php
$ brew install php54

Этот процесс займет какое-то время.

Если вам потребуется подстроить php под себя, конфигурационный файл вы сможете найти по адресу:

/usr/local/etc/php/5.4/php.ini

Просто добавляем под этой строкой следующее:

Так мы сказали Apache для обработки PHP запросов использовать PHP 5.4, который установили ранее.

Так же сразу следует убрать комментарий с объявления модуля mod_rewrite.so (описание на английском языке можно найти здесь):

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Перезапускаем Apache, для обновления конфигурации $ sudo apachectl restart .

Теперь Apache должен начать обрабатывать php.

Для проверки этого утверждения используем команду phpinfo(), которая заодно расскажет нам практически все текущие параметры и пригодится в будущем.

Просто создаем файл info.php в папке

/Sites/ и помещаем в него одну строку

Если Вы нашли ошибку, пожалуйcта выделите ее и нажмите Shift + E или нажмите здесь чтобы информировать меня. Спасибо.

Как установить и настроить все необходимые компоненты, чтобы подготовить свой Mac к полноценной разработке на PHP.

Установка Homebrew

Скачивать и устанавливать весь требуемый софт мы будем с помощью пакетного менеджера Homebrew.

Пакетный менеджер — это инструмент, который значительно облегчает процесс установки любых программ. С Homebrew установка программы на компьютер сводится буквально к одной команде в терминале.

Но сам Homebrew тоже требуется установить, так как по умолчанию он не входит в состав операционной системы. Процесс установки занимает некоторое время, так что придётся подождать.

Установка Homebrew в консоли.

Понятная инструкция по его установке есть на главной странице этой программы.

Все последующие команды выполняются через терминал OS X.

Обратите внимание: после установки brew нужно выполнить две команды из раздела next steps, чтобы добавить Homebrew в PATH. Команды будут зависеть от имени пользователя на компьютере, в нашем случае они такие. Скопируйте их из терминала и выполните по очереди.

Дальнейшие шаги при установке homebrew: переменная окружения.

Выполните и переходите к следующему шагу.

Установка PHP

Начнём с установки PHP-интерпретатора. Мы используем последнюю версию PHP на момент выхода статьи: PHP 8.

По умолчанию homebrew уже содержит нужный пакет, поэтому остается выполнить лишь команду установки:

Проверим, что всё установилось корректно:

то перезапустите терминал и попробуйте выполнить php --version ещё раз.

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

Установка веб-сервера

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

Веб-сервер можно установить с помощью плагинов для редактора или настроить самостоятельно. Рассмотрим оба варианта.

Использование веб-сервера из редактора

Редакторы кода могут самостоятельно запускать сервер. В VS Code это можно сделать через плагин PHP Server, а в PhpStorm через — PHP Debug Server. По ссылкам есть инструкция с настройками.

Для того, чтобы сервер стартовал, нужно чтобы локально был установлен PHP интерпретатор.

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

Несмотря на наличие у PHP встроенного сервера, рекомендуется установить отдельный веб-сервер, т.к. он гибче настраивается и имеет дополнительные возможности.

Рассмотрим как установить веб-сервер самостоятельно.

Установим последнюю версию nginx:

Поскольку порт 80 требует прав администратора, а homebrew по умолчанию устанавливает софт с пользовательскими правами, то работать nginx будет на порту 8080.

Запускаем nginx, чтобы он работал в фоне и обслуживал наши запросы:

Проверяем, что всё установилось корректно, и nginx успешно работает на нашем компьютере. Откройте любой браузер и введите в адресной строке следующий URL:

Вы должны увидеть такую страницу с текстом «Welcome to nginx!».

Окно успешно запущенного nginx в браузере.

Интеграция PHP и веб-сервера

На этом шаге мы «подружим» PHP-интерпретатор и nginx, чтобы при запросе веб-страниц с расширением .php автоматически выполнялся php-сценарий и мы видели результат его работы в браузере.

Откройте конфигурационный файл nginx через VS Code.

Если у вас Mac на процессоре Apple (M1, M1 Pro, M1 Max):

Обратите внимание: если на этом этапе вы получаете ошибку zsh: command not found: code , то откройте VS Code, нажмите Cmd+Shift+P и введите shell.

Окно VS Code с выбранным пунктом shell command.

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

USERNAME нужно будет в двух местах заменить на ваше имя пользователя.

Если в nginx.conf уже есть блок server, нужно удалить его, иначе ничего не будет работать.

Окно VS Code с открытым конфигурационным файлом nginx

Здесь мы говорим серверу, чтобы он слушал 8080 порт страницы localhost и при запросе показывал содержимое папки yeticave . После USERNAME вы можете выбрать путь до любой удобной для вас папки.

Разрешим nginx читать содержимое нашего проекта

Поменяйте USERNAME на имя вашего пользователя и yeticave на папку вашего проекта.

Для того, чтобы изменения применились, нужно перезагрузить сервер командой:

Установка xdebug

Установить xdebug можно простой командой:

Проверка работы

Базовая настройка окружения закончена. Осталось проверить, что мы всё сделали правильно.

Создадим тестовый PHP-сценарий со следующим содержимым:

Это будет означать, что вы всё сделали правильно, а значит готовы писать и запускать свои первые php-сценарии. Обратите внимание, что все файлы и папки проекта при этой конфигурации должны лежать в корне папки yeticave.

Установка MySQL в macOS

Мы будем работать с MySQL 8. Установить MySQL можно двумя путями: через homebrew, либо с помощью GUI установщика.

Установка через homebrew

Вот как выглядит установка через homebrew:

MySQL будет установлена без пароля, поэтому для подключения и проверки работы можно выполнить просто

Установка через архив с официального сайта

MySQL для macOS можно загрузить с официальной страницы. Для удобства установки рекомендуется загружать DMG Archive. В этом случае процесс установки будет выполняться с помощью стандартного инсталлятора.

Обратите внимание: на момент выхода статьи версия 8.0.26 не работала на Mac c процессорами M1, поэтому мы использовали версию 8.0.25 — она также доступна в архиве на сайте.

Окно установщика Mysql. Первый этап.

Нажимаем «Продолжить», принимаем условия лицензии, выбираем, куда установить MySQL и оказываемся на шаге «Тип установки». На этом шаге необходимо проверить перечень компонентов для установки. Нажимаем кнопку «Настроить». Отмечаем галки MySQL Server, Preference Pane, Launchd Support.

Окно установщика Mysql. Выбор компонентов для установки.

Нажимаем «Установить». Установщик предложит выбрать тип шифрования пароля. Выбирайте первый пункт User Strong Password Encryption, если вы никогда не работали с MySQL и вам не нужно поддерживать очень старые версии клиентов MySQL.

Окно установщика Mysql. Выбор типа шифрования.

На следующем шаге вам нужно будет ввести пароль для пользователя root. Хороший пароль должен состоять минимум из 8 символов, среди которых должны быть буквы, цифры и специальные символы.

Окно установщика mysql. Ввод пароля.

На этом установка MySQL завершена.

Сразу после установки служба MySQL ещё не будет запущена. Запуск необходимо выполнить вручную. Проще всего это сделать через приложение «Системные настройки». Открываем и запускаем аплет для управления MySQL.

Панель системные настройки с выбранным пунктом MySql.

В появившемся окне нажимаем кнопку Start MySQL Server.

Аплет Mysql в системных настройкаMacOS

Теперь всё готово к работе. Хорошей разработки!

Инструменты нужны, чтобы ими пользоваться

Научим всему, что умеем сами, на курсе «PHP. Профессиональная веб-разработка». Занимайтесь в удобном темпе и начните обучение в любой момент.

Установка Apache, PHP, MySQL в macOS

Рассмотрим, как установить веб-сервер Apache, PHP и MySQL в macOS.

Все действия в данной статье будут выполняться в macOS Sierra.

Установка Apache

Хорошая новость — веб-сервер Apache уже установлен в вашей системе. Его нужно только запустить. Для этого откройте терминал и выполните в терминале команду:

Данной командной мы выполняем утилиту apachectl с правами суперпользователя (так как перед командной мы вводим sudo) и передаем утилите опцию start. Обратите внимание, что после того, как вы нажмете Enter, необходимо будет ввести пароль, который вы используете для входа в систему. При вводе пароля на экране не будет никакой индикации или символов, которые вы вводите. Просто введите пароль и нажмите Enter.

Проверка работы Apache. Localhost

Файлы localhost'а лежат в директории /Library/WebServer/Documents .

Установка PHP

И снова хорошая новость — PHP уже установлен. Нужно только включить его поддержку веб-сервером.

Для редактирования мы воспользуемся консольным редактором nano . Он простой, но для новичка может оказаться непривычным.

Откроем файл конфигурации:

В файле необходимо раскомментировать строку, которая отвечает за загрузку модуля php5_module:
LoadModule php5_module libexec/apache2/libphp5.so

Включаем PHP в httpd.conf

Теперь закройте и сохраните файл. Для этого нажмите Ctrl + X , отобразится предупреждение " Save modified buffer ", нажмите Y , а затем Enter .

Так как конфигурация сервера изменилась, необходимо перезапустить сервер, чтобы новые параметры вступили в силу. Для перезапуска Apache выполните в терминале команду:

Установка MySQL

Установка MySQL в macOS

В конце установки отобразится окошко, в котором будет написан временный пароль root'а для доступа к MySQL. Запишите его.

Пароль для MySQL при установке

Дополнительные действия после установки MySQL

Теперь снова перезапустите Apache:

Меняем пароль root'а в MySQL

Выше, во время установки MySQL, мы получили временный пароль root пользователя. Однако, его необходимо поменять. Обращаю ваше внимание на то, что речь идеть про пароль пользователя root для MySQL сервера и этот пароль ни как не связан с паролем, который вы используете для входа в систему или при выполнении команд через sudo.

Чтобы задать новый пароль для root пользователя в MySQL необходимо выполнить в терминале ряд команд.

  1. Остановим MySQL сервер, если вдруг он запущен:
  2. Запустим сервер в режиме safe mode:
  3. Запустим консольную утилиту mysql (MySQL Command-Line Tool). Откройте новое окно терминала и выполните:
  4. Введите команду:
  5. Затем установим новый пароль (вместо NewPassword введите свой пароль):
  6. Выйдем из утилиты mysql. Введите команду:

Запуск MySQL сервера из терминала

Запустить MySQL сервер можно из терминала или из Системных настроек.

Для запуска MySQL сервера через терминал выполните команду:

Чтобы остановить сервер выполните:

Запуск MySQL сервера из Системных настроек

В Системных настройках добавился новый пункт MySQL. Можно запускать MySQL сервер оттуда. Там же есть опция для автоматического запуска MySQL сервера при старте системы.

Запуск MySQL сервера в MacOS
Настройки MySQL сервера в Системных настройках macOS
MySQL сервер запущен в macOS

Проверка работоспособности

Как написано выше, файлы сайта localhost находятся в директории /Library/WebServer/Documents. Мы можем для проверки создать PHP файл, в котором выполним функцию phpinfo(). Для этого можно воспользоваться терминалом. Создадим файл /Library/WebServer/Documents/testfile.php и добавим в него вызов функции phpinfo():

phpinfo в Apache

Чтобы проверить, что MySQL сервер работает, и мы можем выполнять действия с базами данных, можно воспользоваться утилитой mysql. Выполните в терминале:

Введите пароль пользователя root и нажмите Enter. Вы попадете в shell для управления MySQL. Введите команду:

Отобразится список текущих баз данных. Завершите работу введя:

Проверка работы MySQL

Заключение

Итак, мы установили Apache, PHP и MySQL в macOS. Следующим шагом будет установка phpMyAdmin и настройка виртуальных хостов (сайтов).

Каждый веб-разработчик, выбравший Mac, после первичной настройки системы ищет рабочий инструментарий. И если c IDE и редакторами всё понятно, то что-либо подобное по удобству win-довым OpenServer или Denwer за бесплатно найти трудно. Есть отличное решение MAMP PRO, но оно стоит две тысячи деревянных. Да и работа через Apache некоторых может смутить.


Занимаясь решением этого вопроса, набрёл на интереснейший материал, который рассказывает о том, как при помощи консольного пакет-менеджера Homebrew настроить рабочее пространство буквально за 5-10 минут. Публикую его перевод, потому что кому-нибудь подобная инструкция по настройке веб-окружения на Mac обязательно пригодится.

«Только что получил новый MacBook Pro и решил настроить его с чистого листа, потому что я использую тот же бэкап Time Machine примерно уже четверы года. Хороший шанс избавиться от стэка веб-сервера/LAMP (Linux Apache MySQL PHP) и заменить его Nginx и PHP-FPM как реализацию FastCGI. Ниже вы можете прочесть, как настроить Nginx, PHP-FPM, MySQL и PhpMyAdmin на OS X 10.9 / Mavericks.

Xcode

Как только закончится загрузка, откройте Xcode в папке /Applications и согласитесь с лицензией.

Откройте окно Терминала и установите Xcode через следующую команду:

Подтвердите установку при помощи кнопки Install .

Вернитесь обратно в Xcode, нажмите ⌘ + , для доступа к настройкам и перейдите на вкладку Locations. Установите Command Line Tools на последнюю доступную версию, Xcode 5.0.2 (5A3005) в моём примере:

Xcode.app → Preferences → Location | Command Line Tools

Homebrew

Теперь необходимо установить Homebrew, который является менеджером пакетов для OS X. Вы возможно уже слышали про apt-get или aptitude на дистрибутивах Linux для установки пакетов и зависимостей для конкретный приложений. brew работает также, только на компьютерах под управлением Mac OS X. Он также удостоверится, что вы получите последние обновления для установленных приложений, так что вам не нужно будет беспокоиться из-за просроченных версиях или брешах в системе безопасности, эксплойтах и так далее.

Прежде всего, нам понадобиться Xquarz:

Теперь нам необходимо загрузить и установить Homebrew при помощи следующей команды:


Поверим на любые конфликты и проблемы:


Обновим репозитории и приложения при помощи Homebrew:

PHP-FPM

Потому как Homebrew не имеет репозитория по-умолчанию для PHP-FPM, нам необходимо его добавить:


Установим PHP-FPM при помощи следующих аргументов:


Homebrew загрузит исходный код PHP-FPM и скомпилирует его аз вас. Дайте ему немного времени, это может занять несколько минут.

Настройка PHP в командной строке

Если вы хотите использовать PHP в командной строке, вам необходимо обновить переменную окружения $PATH в файле

Настройка автозапуска

Удостоверьтесь, что PHP-FPM слушает порт 9000:

Вывод должен выглядеть примерно следующим образом:

MySQL

Следующий шаг для установки MySQL:

Настройка автозапуска

И запустите сервер баз данных:

Обезопасьте установку

Для безопасности нашего MySQL-сервера мы вызовем идущий в компоекте бинарник secure_mysql_installation для смены root-пароля, удаления анонимного пользователя и отключения возможности дистанционного логина под root-ом:


Пожалуйста, укажите текущий пароль, если он уже установлен.

Нажите enter, указав пароль для root-пользователя. По желанию сохраните его в менеджерах паролей LastPass или 1Password.

Да, в них нет необходимости.

Да, нет необходимости в авторизации под root с любого другого IP кроме 127.0.0.1.

Да. Нам не нужны тестовые таблицы.

Перезагрузка таблицы привилегий даст нам возможность удостовериться, что изменения вступили в силу.

Проверка соединения

Введите указанный ранее root-пароль и увидите консоль MySQL:

Закончите сессию при помщи команды \q :

phpMyAdmin

Установите autoconf который необходим для phpMyAdmin:

Установите переменную окружения $PHP_AUTOCONF:

Приступим к установке phpMyAdmin:

Nginx

Установите Nginx при помощи команды:

Настройка автозапуска

Так как мы используем 80 порт, необходимо запускать Nginx под пользователем root:

Протестриуйте веб-сервер


Ответ должен выглядеть следующим образом:

Снова остановим Nginx:

Дальнейшая настройка

nginx.conf

Создайте папки, которые понадобятся нам при последующей конфигурации Nginx:

Удалите текущий файл nginx.conf (который всегда будет доступен по адресу /usr/local/etc/nginx/nginx.conf.default , если вы захотите взглянуть на его код) и загрузите созданные мною настройки при помощи curl с GitHub:


Конфиуграционный файл прост и легковесен насколько это возможно: настройки worker, пути/форматы логов и несколько includes. Ничего лишнего в отличие от nginx.conf.default .

Загрузка PHP FPM

Скачайте мои настройки PHP-FPM с GitHub:

Создание виртуальных хостов

Клонируйте тестовый виртуальный хост (включая рерайты для 404, 403 и phpinfo() ) используя git :


И удалите папку /var/www/.git , чтобы git не отслеживал последующие изменнения.

Настройка SSL

Создайте папку для наших сертификатов SSL и частных ключей:

Сгенерируйте 4096bit RSA ключи и само-подписные сертификаты следюущей командой:

Включение виртуальных хостов

Теперь нам нужно создать симлинки в папке sites-enabled для виртуальных хостов с целью включить их:


Снова стартуем Nginx:

Последние тесты

Вот оно, всё должно работать. Щелкайте на ссылках ниже с целью удостовериться в этом:

    → «Nginx works» page → phpinfo() → " Not Found" page → «Nginx works» page (SSL) → phpinfo() (SSL) → «Not Found» page (SSL) → phpMyAdmin (SSL)

Управление сервисами

В силу того, чтоы вам рано или поздно понадобиться перезапустить тот или иной вресив, вам возможно понадобятся дополнительные алиасы:


Вы можете или открыть новое окно/сессию Терминала или же вручную перезагрузить

/.bash_profile при помощи команды:


Теперь вы можете использовать алиасы вместо печатания длинных команд launchctl , как то было выше.

Nginx

Вы можете стартовать, остановить и перезапустить Nginx при помощи команд:

Читайте также: