05
Ноя
2011
w411

Настройка локальной среды разработки на Mac OS X

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

Итак, двигаемся по пунктам
1. Apache уже установлен на Mac OS X и это отлично
для его старта достаточно ввести в консоли
sudo apachectl start
и проверить работу введя в браузере http://localhost
Я не буду расписывать как грамотно настраивать сервер, могу только сказать что
все нужные конфиги находятся в /etc/apache2/httpd.conf и /etc/apache2/extra/httpd-*.conf
Также нужно зайти в system preferences -> sharing
и разрешить web sharing, чтобы сервер был доступен по сетевому адресу (192.168.1.100)
Apache будет стартовать при старте системы!

2. PHP
В macos есть уже скомпилированный php, но он обычно не всегда нужной версии.
Поэтому мы будем ставить свою версию. Вот тут есть некоторые проблемы.
Дело в том что я не сторонник компиляции из исходников, да и обычно это занимает
приличное кол-во времени, а потому я воспользовался такой полезной штукой как
MacPorts, скачиваем и ставим здесь: http://www.macports.org/
После установки достаточно запустить в консоли:
sudo port install php52 +mysql5 и получить таким образом
последнюю версию php ветки 5.2.x и последний mysql5 клиент
После установки не забудьте в конфиг apache добавить вместо
LoadModule php5_module libexec/apache2/libphp5.so
строчку:
LoadModule php5_module /opt/local/apache2/modules/libphp5.so
и перезапустить сервер apache (sudo apachectl restart)
Конфиг php при этом будет находиться здесь:
/opt/local/etc/php5/php.ini

Из MacPorts можно поставить кучу разных расширений, в том числе для различных баз данных, все
автоматом, без утомительных ковыряний
поиск расшиений:
sudo port search EXTENSION_NAME

3. Mysql 5
здесь все просто
загружаем pkg дистрибутив c http://mysql.com (документация кстати на http://dev.mysql.com лежит)
ставим сам сервер и MySQLSturtapItem (чтобы сервер стартовал при загрузке системы, локально можно стартануть mysqld командой)
далее можно поставить что-нить вроде Sequel Pro и удобно управлять юзерами и базами данных
по умолчанию присоединиться к серверу можно без пароля с логином root

4. Теперь у нас есть настронная связка apache + php + mysql
казалось бы что еще нужно для счастья? Но нам еще нужно настроить php функцию mail - чтобы мы могли отправлять письма из своих скриптов
Для этого в Mac OS X уже установлен postfix и sendmail.
Нам потребуется gmail почта, с которой будут отправляться наши письма
1) вам необходимо открыть файл php.ini, раскомментировать и привести к следующему виду строку
sendmail_path="sendmail -t -i"
после не забываем перезапустить apache:
sudo apachectl restart
2) Откроем файл /etc/postfix/main.cf
и добавим в его данные:
relayhost = smtp.gmail.com:587
smtp_use_tls=yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
3) Создаем файл паролей:
sudo vi /etc/postfix/sasl_passwd
и добавляем в него строку:
smtp.gmail.com:587 USERNAME@gmail.com:PASSWORD
4) Теперь создаем map table и запускаем postfix
sudo postmap /etc/postfix/sasl_passwd
sudo postfix start
5) Осталось только сделать так чтобы postfix запускался при загрузке системы.
Для этого открываем файл
sudo vi /System/Library/LaunchDaemons/org.postfix.master.plist
и вставляем перед тегом :
RunAtLoad

Все, можно тестировать mail функцию!

5. И на последок мы выведем наш веб-сервер на внешний адрес, чтобы можно было показывать клиенту
наш супер продукт, для этого:
- зафиксируем на нашем роутере ip адрес устройства по MAC адресу
- включим домашние сервисы сети и пробросим 80ый порт по tcp
В завершении прикрутим какой-нибудь внешний домен (home.site.ru), добавив в него dns запись
home A XX.XX.XX.XX
XX.XX.XX.XX - это наш статический ip

И вот тут есть одна маленькая, но мега важная штука
дело в том что с локальной сети ресурс не будет доступен по внешнему адресу, только по локальному адресу компьютера (например 192.168.1.100)

Чтобы сделать доступным ресурс через домен в локале, добавим в /etc/hosts строчку:
127.0.0.1 home.site.ru

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
Проверочный код
Вопрос необходим для предотвращения автоматического добавления комментариев.
Image CAPTCHA
Введите символы изображенные на картинке.