Home > Apple > Поднимаем стек MAMP

Поднимаем стек MAMP

С публикацией очередного приложения в AppStore возникли некоторые осложнения. Пока ведется битва с командой iTunes Connect (позже напишу, как это было), параллельно занимаюсь разработкой следующего iOS проекта. Ядро уже спроектировано и есть черновой вариант. В этом проекте я планирую реализовать немного клиент-серверной технологии. Разработку серверной части решил вести на локальном компьютере. Ранее я это делал на своем домашнем серваке, но с недавнего времени отправил его на пенсию (старенький он уже), а новый еще до конца не сконфигурировал.  Переехав на Mac OS X Lion, пришлось кой-что переустанавливать вручную, так как Ассистент Миграции не восстанавливает ненативные программы. Пришлось опять долго вспоминать, как поднять стек Mac OS X, Apache, MySQL, PHP – решил использовать классический server-side. Чтоб в следующий раз не мучаться воспоминаниями, накидаю парочку хинтов. 
Начнем с Apache. Будем собирать апач из исходников, как тру хакеры)) Качаем unix-sources отсюда. Рекомендуется брать последнюю стабильную версию. Скачали архив, распаковали, в папке, куда распаковались исходники, находим файл config.layout и, открыв в любом ANSI-текстовом редакторе, добавляем в конец следующее:

<Layout Lion>
 prefix: /usr
 exec_prefix: ${prefix}
 bindir: ${exec_prefix}/bin
 sbindir: ${exec_prefix}/sbin
 libdir: ${exec_prefix}/lib
 libexecdir: ${exec_prefix}/libexec+
 mandir: ${prefix}/share/man
 sysconfdir: /etc+
 datadir: /Library/Webserver
 installbuilddir: ${prefix}/share/httpd/build
 errordir: ${prefix}/share/httpd/error
 iconsdir: ${prefix}/share/httpd/icons
 htdocsdir: ${datadir}/Documents
 manualdir: ${datadir}/share/httpd/manual
 cgidir: ${datadir}/CGI-Executables
 includedir: ${prefix}/include+
 localstatedir: /var
 runtimedir: ${localstatedir}/run
 logfiledir: ${localstatedir}/log+
 proxycachedir: ${runtimedir}/proxy
 </Layout>

Данные определяют схему расположения файлов проекта. Для меня, если честно, всегда было загадкой, есть ли в юникс-системах какая-то общая концепция размещения файлов: исполняемых, конфигурационных, пользовательских. Совершенно определенно можно сказать, что у какой-либо конкретной программы (например, апача), точно есть. Но, если сравнивать mysql и apache, можно заметить, что схемы расплолжения файлов ощутимо различаются.

Далее создаем в папке с исходниками файл conf.args и наполняем его следующим содержимым:

./configure \
 --enable-layout=Lion \
 --enable-mods-shared=all \
 --with-mpm=prefork \
 --disable-static \
 --disable-unique-id \
 --disable-ipv6 \
 --enable-dav \
 --enable-cache \
 --enable-proxy \
 --enable-shared \
 --enable-logio \
 --enable-deflate \
 --with-included-apr \
 --enable-cgi \
 --enable-cgid \
 --enable-suexec

Это опции конфигурации. Копируем это все в буфер обмена, запускаем терминал, делаем cd в то место, где находятся исходники апача, и вставляем конфигурационную команду из буфера. Выполняем ее.
Далее выполняем

make

Долго-долго компилируется (у меня где-то полчаса продолжалось). Далее выполняем

sudo make install

Файл конфига находится /etc/apache2/httpd.conf. После этого запускаем апач:

sudo apachectl start

Если httpd.conf не содержит ошибок, апач должен стартовать.
Переходим в mysql. К счастью тут мы избавлены от сборки проекта из исходников. Вместо этого можно скачать так называемый Community Server. Идем сюда, выбираем нужную нам платформу и скачиваем dmg-образ, монтируем, запускаем pkg. Далее все просто. После установки запускаем демона:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

останавливается соответственно так:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

Чтобы не писать такие длинные команды, можно прописать в .bash_profile следующие строчки

alias mysql_start="/Library/StartupItems/MySQLCOM/MySQLCOM start"
alias mysql_stop="/Library/StartupItems/MySQLCOM/MySQLCOM stop"

Папка с файлами баз данных находится /usr/local/mysql/data. Если платформа совместимая, то можно импортировать базы просто скопировав их в эту папку. Я не фанат командной строки mysql (за исключением случаев восстановления баз из backup), поэтому пользуюсь графическими тулзами. Не смотря на то, что версия немного старовата (аж для OS X Tiger), на Льве работает стабильно – меня устраивает.

Остался php. Никаких дополнительных действий не понадобится – php идет в комплекте c Mac OS X Lion. Сейчас я наблюдаю версию 5.3.6 у себя.

PS. Наткнулся на такую штуку, как install MAMP with one click. Может в следующий раз попробую.

Categories: Apple Tags: , , ,
  1. No comments yet.