nginx-300x187 (1)Сегодняшняя статья посвящена установке связки Mac OS + nginx + MySQL + php-fpm. Под другие платформы эта связка хорошо описана множеством авторов, под Mac OS адекватной инструкции не нашел, поэтому решил поделиться ей сам.

Системные требования.

1. Компьютер под управлением Mac OS X. Все приведенное ниже тестировалось под OS X 10.8, но, возможно с небольшой доработкой напильником, применимо к версиям 10.6+

2. Доступ в интернет.

3. Рьяное желание использовать Mac OS для создания WEB сервера.

Цели.

1. Получить работоспособную систему разработки.

2. По умолчанию система не должна сама стартовать (вдруг все это крутится на ноутбуке), должна иметь удобные скрипты управления Start/Stop/Restart.

3. Для удобство работы с базой необходим phpMyAdmin.

Итак, цели ясны, запасаемся кофе и поехали!

1. Подготовка окружения.

В рамках этого шага мы подготовим нашу систему к установке сервера.

1.1. Отключение штатного Apache.

Если вы используете Mac OS 10.8, этот шаг можете пропустить, в случае использования Mac OS младших версий, необходимо отключить Apache, поставляемый с системой.

Для этого перейдите в Системные настройки -> Общий доступ и снимите галку Общий веб-доступ.

macnginxapachem

1.2. Установка XCode.

Для создания нашего сервера мы будем использовать программу MacPorts, которая требует наличия XCode.

Xcode можно поставить из App Store, чем мы и воспользуемся.

После того, как Xcode установлен, необходимо согласиться с его лицензией, это можно сделать введя команду

Обязательно промотайте лицензию до конца и наберите agree.

Далее нам необходимо установить компоненты XCode.

Для этого запустим XCode, зайдем в Preferences ->DownLoads.

Найдем Command Line Tools и нажмем install.

macnginxxcode

1.3. Установка MacPorts.

Мы можем установить MacPorts двумя способами — либо поставить пакет pkg, либо собрать его из исходников. Рассмотрим оба варианта.

1.3.1. Установка MacPorts из пакета.

Перейдем на сервер http://www.macports.org/install.php, в секции Mac OS X Package (.pkg) Installer найдем наш версию Mac OS X и кликнем по гиперссылке, ведущей на дистрибутив.

После скачки откроем инсталлятор, ответим на все вопросы.

Теперь в терминале обновим список портов:

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

1.3.2. Установка MacPorts из исходников.

Перейдем на страницу http://www.macports.org/install.php, в секции Source Installation увидим гиперссылку архив последней версии MacPorts, скопируем ее в буфер. В рамках примера мы будем качать файл tar.gz.

На момент написания статьи актуальной версией MacPorts была 2.1.3.

Ссылка на эту версию https://distfiles.macports.org/MacPorts/MacPorts-2.1.3.tar.gz

Перейдем в окно терминала.

В середине процесса вам потребуется ввести свой пароль.

После установки необходимо будет прописать глобальный путь, где bash будет искать bin файлы:

Добавим две строки

Теперь, для того, чтобы избежать потенциальных проблем, перезагрузим Mac OS X любым доступным способом. Из терминала это можно сделать так:

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

Если все прошло гладко — можем смело двигаться дальше.

2. Установка nginx.

Для начала проверим, что nginx присутствует в репозитарии портов:

На момент написания статьи актуальная версия nginx из портов — 1.2.7

Проверим зависимости nginx от других приложений:

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

После того, как мы определились, что именно нам надо, установим nginx с выбранными модулями. В примере я выбрал модули gzip_static, image_filter и zip

После того, как установка nginx закончится, необходимо создать конфигурационный файл. За основу временно мы возьмем файл default и копируем его в nginx.conf

Так-же поступим с файлом mime.types

Проверить версию nginx, узнать местоположение логов и конфигов, посмотреть список модулей мы можем выполнив команду:

Самое время проверить работоспособность:

Остановить nginx можно командой:

3. Установка php-fpm.

Теперь по аналогии с nginx установим php-fpm.

Ищем порты:

На момент написания статьи версия 5.5 была в альфе, поэтому в примере будем использовать 5.4.

Копируем образец php-fpm.conf.defaultt в php-fpm.conf.

Откроем  /private/etc/php-fpm.conf.

Добавим строки пути лога и pid.

Отредактируем пользователя, под которым будут запускаться процессы. По умолчанию стоит nobody, исправим на www.

Теперь скопируем fastcgi_params.default в fastcgi_params

4. Настройка связки ngin+php-fpm

Настала пора скрещивать nginx и php-fpm.

4.1. Для этого откроем файл /opt/local/etc/nginx/nginx.conf и заменим следующим содержимым

4.2 Следующим этапом надо настроить PHP.

Для этого скопируем файл php.ini.default в /private/etc/php.ini.

Если мы хотим использовать короткие конструкции типа <??>, нам необходимо закомментировать в файле строку

Создадим тестовый файл 1.php, который положим в /opt/local/www

Запишем в него строку

Теперь поправим права на директорию, в которой лежит сайт.

Проверим нашу связку:

После этого в браузере наберем http://127.0.0.1/1.php

Если все сделали правильно, откроется информация по php.

5. Установка  MySQL.

Мы близки к цели! Осталось поставить MySQL.

5.1. Инсталляция MySQL.

Через MacPorts на момент написания статьи доступна только MySQL 5.5, мы же будем ставить MySQL 5.6.

Для этого перейдем на сайт http://www.mysql.com/downloads/ и в разделе Mac OS выберем версию Mac OS X ver. 10.7 (x86, 64-bit), DMG Archive.

Откроем dmg и по очереди установим mysql-5.6.10-osx10.7-x86_64.pkg и MySQLStartupItem.pkg.

Согласно нашему условию, ничего автоматически стартовать не должно, поэтому поправми файл hostconfig.

Заменим

MYSQLCOM=-YES- на MYSQLCOM=-NO-

5.2 Настройка MySQL.

Добавим символические ссылки на наши бинарники.

Проверим работоспособность базы

Введем в терминале:

Если все сделали правильно, откроется mysql, успешно подключившийся к базе.

После этого можно остановить или перезапуститить сервер командами

Настроим безопасность MySQL

Ответим на все вопросы, не забыв установить пароль root. При первом входе праоль на root пустой.

5.3. Настройка связки php + MySQL.

Идем в php.ini

Все вхождения

изменяем на

Убиваем и перезапускаем php-fpm.

6. Настройка запуска, остановки и доступа к файлам.

Создадим на нашем рабочем столе директорию WebServer.

Перейдем в нее.

Создадим ссылку на директорию www.

Создадим  директории — conf и scripts

Перейдем в conf.

Создадим ссылки на конфиг файлы:

Перейдем в директорию scripts.

Сделаем простые скрипты запуска и остановки (можно креативить с контролем запуска/останова, но я сделаю все аскетично и не очень правильно).

Скрипт СТАРТ.

Скрипт СТОП.

Скрипт РЕСТАРТ.

Теперь сделаем все скрипты исполняемыми.

Откроем директорию в Finder :

Рабочий стол->WebServer->scripts

Зайдем в свойства лежащего там start.sh

Изменим программу во вкладке «Открывать в программе» на Терминал. Он лежит в директории Утилиты.

Нажмем на кнопку «настроить» под надписью «Открывать в этой программе все документы данного типа».

7. Установка phpMyAdmin.

Скачаем последнюю версию phpMyAdmin по адресу

http://www.phpmyadmin.net/home_page/index.php

Распакуем его в директорию www.

Сразу после этого им можно пользоваться.

На этом установка завершена, все конфиги и файлы доступны с рабочего стола. Спасибо за внимание.