PHP разработчику под MacOS

PHP and Mountain Lion

Так сложилась ситуация, что я стал Mac’оводом… Наиграться с MacOS я успел за пару месяцев, пора переходить к работе — о том что и как я сетапил и пойдёт речь.

Небольшое лирическое отступление – ноут у меня шёл с предустановленной MacOS 10.7 aka Lion, дабы не заморачиваться с установкой был установлен
MacPorts (менеджер пакетов), а с него уже устанавливалась связка Apache+PHP+MySQL и всё работало, пока я не решил обновить систему до Mountain Lion – после оного всё сломалось, то апач не тот, то мускуль отпадает, переустановка через port не помогала — тратить на это время мне не хотелось, поэтому пошёл в обход

Hosting

Из коробки с MacOS идёт Apache 2.2.22 и устаревший PHP 5.3.15, при этом модуль PHP отключён, а DocumentRoot смотрит куда-попало. Если вас эта среда устраивает, а работать вы всегда будете лишь над одним проектом, то вам потребуется лишь изменить httpd.conf:

sudo vim /etc/apache2/httpd.conf
# находим и разкоменчиваем
LoadModule php5_module libexec/apache2/libphp5.so
# изменяем директиву DocumentRoot
# DocumentRoot "/Library/WebServer/Documents"
DocumentRoot "/Users/Anton/Sites"

Изменили, сохранили, перезапустили:

apachectl -k restart

Apache

Меня ситуация с одним проектом совсем не устраивает, поэтому лезем в настройки виртуальных хостов и прописываем хост для каждого проекта, говорим куда смотреть и где искать… Та ну его, я балованный, я не люблю править конфиги ручками, поэтому чуток погугля был найдет скрипт, который будет делать это за меня — https://github.com/pgib/virtualhost.sh. Работать с ним достаточно просто:

sudo virtualhost.sh <name>
sudo virtualhost.sh --list
sudo virtualhost.sh --delete <name>

PHP

PHP версии 5.3 мне не подходит, надо поновее — 5.4, но на MacOS нельзя просто взять и обновить PHP… Для таких страждущих уже всё придумали — взгляните на ресурс http://php-osx.liip.ch/ — там есть простая инструкция по установке:

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.4

Если никому не доверяете – то можете сами просмотреть данный скрипт, либо устанавливать вручную

В результате получим следующее:

PHP 5.4

Если уж упомянул о возможности обновить «ручками» — то вот вам руководство к действию: Upgrading the Native PHP Installation on OS X Mountain Lion (ага, и картинку я тоже у них взял)

MySQL

Для установки MySQL вам потребуется лишь скачать нужный .dmg с официального сайта: идём по ссылке http://dev.mysql.com/downloads/mysql/, затем «Mac OS X ver. 10.6 (x86, 64-bit), DMG Archive&raquol → «Download» → «No thanks, just start my download!».
Скачанный архив содержит 3 компонента — сам сервер, тулзы автозапуска, панель управления и readme.txt:

MySQL DMG Archive

Устанавливаем всё перечисленное, хотя установка панели управления – это дело вкуса:

MySQL Control Panel

В любом случае у вас будет консоль, стартуем сервер:

sudo /usr/local/mysql/support-files/mysql.server start

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

cd ~; vim .profile
# добавляем путь
export PATH="/usr/local/mysql/bin:$PATH"
# сохраняем, выходим

Применяем наши изменения:

source .profile

Проверяем что всё работает как надо:

mysql --version
#> mysql  Ver 14.14 Distrib 5.5.27, for osx10.6 (i386) using readline 5.1

И ещё момент — не зубудьте задать пароль для root’а :)

mysqladmin -u root password 'newpassword'

IDE

Ну мой выбор IDE очевиден — PHPStorm — имхо, лучшая PHP IDE на данный момент, голосую за неё рублём:

PHPStorm

MySQL Manager

Для работы с базой данных я использую SQLYog Enterprise — приобретена данная версия ради двух «платных» фич: туннели разных мастей для соединения и синхронизация БД (весь остальной функционал есть и в Community Edition). С данным менеджером лишь одна беда — он доступен лишь под Windows, для установки оного под MacOS потребуется Wine + XQuartz — с такой связкой SQLYog замечательно работает.
Я думаю, те немногие, что столкнутся с данной проблемой, справятся с установкой и без посторонней помощи :)

А вот выбор «родного» маковского софта не радует, я нашёл лишь Navicat, к которому оставлено куча нелестных отзывов, но есть trial версии — так что сможете испытать, прежде чем купить. Кстати, в сторе Premium Essintials сейчас по $19.99 (сравнить функционал можно тут), но там засада — в более дешёвой версии нет автодополнения кода в редакторе :(

В комментариях подсказали ещё Sequel Pro — хорош для работы с localhost, да и SSH туннель поддерживает, бесплатный. Мне не совсем подходит, т.к. нет туннеля по HTTP (это очень выручает, когда доступ лишь по FTP) и синхронизация между серверами БД тоже отсутствует :(

Есть ещё вариант использовать phpMyAdmin, но это совсем крайний случай, я когда на него смотрю мне и работать не хочется

На этом «пост-памятку» закончу, возможно в дальнейшем я его дополню, или дополнят мои читатели, используя комментарии ;)

61 thoughts on “PHP разработчику под MacOS”

  1. Пользуюсь MAMP Pro уже несколько лет, очень доволен. аля денвер под макос

  2. В качестве MySQL менеджера советую попробовать Sequel Pro

  3. Тоже долго искал софт для работы с mysql, перепробовал разное добро, на маке с этим все плохо. (
    Пока остановился на Navicat – функциональная и удобная программка, но чудовищно тормознутая. Открываешь данные для редактирования и как начинает тормозить… Даже если записей несколько десятков. Кошмар какой-то, но приходится терпеть. Быстрый и удобный Sequel Pro, к сожалению, не имеет http-туннелинга.

  4. И неужели не используете Sublime? По мне так лучшего софта для разработки не придумали еще.

      1. Это холиварная тема, и я думаю каждый останется при своём мнении.
        Хотя знаете – таки попробуйте поюзать PHPStorm недельку – я Sublime вот уже скачал, может распробую…

      2. Sublime как штатный редактор. Для кода только Storm.

  5. Есть же homebrew, php-mysql-etc лучше ставить оттуда. brew install mysql и т.п. Пакеты завсегда лучше чем установка из исходников.

  6. А почему не воспользоваться port или Homebrew для установки пакетов? Полчаса садомии, зато потом многие года аккуратного управления всеми *nix пакетами

    1. port у меня отлично завёлся на Lion – на Mountain Lion вылетал MySQL попытки в течении дня решить проблему не увенчались успехом, и да, когда я начал путаться в двух апачах это слегка начало бесить… до homebrew не добрался.

    2. C homebrew не все так красиво, как хотелось бы. Или самому рецепт писать или ждать пока его кто-то напишет. У timlar_ua была хорошая статья на эту тему, если не изменяет память. В остальном процентов на 90 согласен с автором!

  7. Непонятно почему все забывают, что любимая IDE умеет работать с и базой данных. В нетбинсе это даёт ещё и ряд преимуществ в виде автокомплита при написании raw sql.
    Ах, ещё бы посоветовал Ampps в качестве готовой сборки, сам пользую его под виндой, есть сборка и для мака.

  8. Вот не нравится мне это все держать у себя.
    Иногда кажется что вот лишний запущенный процесс съедает какие-никакие а минуты жизни от батарейки.
    Поэтому когда надо девелопить лучше parallels + образ debian я пока не нашел для себя. Ну а там уже все известно как что ставить.

    Оч хорошая штука для ускорения этого всего – Vagrant.

  9. В качестве мускуль-менеджера мне приглянулся кроссплатформенный HeidiSQL.
    _____
    Любопытная статья, спасибо.

  10. Так, а впечатления от Mac OS в целом? И какой комп?
    А то у меня параноидальная идея купить Mac и воткнуть туда Ubuntu (за что конечно же мне руки оторвать нужно)

    1. Никаких убунту там не надо! Безумно стабильная ось. Сама по себе является очень простой со стороны GUI, а если надо заморочиться – открываем терминал и товрим что хотим.

  11. На мой взгляд на MacOS лучше всего поставить virtualbox с серверной убунтой. Удобно, легко переносить, бэкапить.

  12. Пользуюсь маком (10.8.2) с месяца три, примерно. Поставил Zend Server и не парюсь. Мускуль работает на ура. В работе PHPStorm, для mysql Mysql Workbench – многие не любят – я увожаю: администрирование, графики, шаблоны, вьювки, да и много всего.

  13. Долгое время пользуюсь MAMP + Coda. По поводу первого скажу: все просто настроить, но это не самое главное, самое главное, что все быстро, и при правильном расположении рук, на продакшене никаких непонятностей не возникнет с конфигами и окружением. По поводу второго, удивлен, что никто из комментаторов не сказал о коде. Это один из самых удобных редакторов для php. На сайте есть видеообзор (прямо на главной). И кстати panic сделала отличную вещь, они написали coda light для ipad.

    1. Вторая версия тормозит, разочарован. А так был любимый редактор. Сейчас пока саблим юзаю

  14. MAMP для серьезной разработки не походит, а MAMP PRO платный и опять же недостаточно гибкий – захотите поднять версию php и упретесь в консоль, плюс с ним в системе начинают жить два php, что затрудняет запуск скриптов из консоли – приходится писать полный путь до bin мампа, либо вносить её в $PATH, что опять же возвращает нас к сисадминству. Так что лучше не страдать ерундой, а нормально поставить все в консоли через тот же brew.

    1. А что не так с MAMP для серьёзной разработки?

  15. Как уже сказали, имхо, лучший вариант под маком – это Ubuntu Server под Virtual Box.
    1) Грузится очень быстро
    2) Практически нет отличий между работой с локальным сервером и боевым
    3) Очень много всяких плюшек под убунтой можно поставить, которые на маке ставятся только через костыли
    4) Легко бекапить
    5) В системе не крутятся постоянно демонты типа Apache/MySQL/memcache и д.р, которые увеличивают время загрузки системы и постоянно забирают какой-то процент ресурсов.
    6) Всегда свежие и именно “боевые” версии нужных нам компонентов а-ля PHP/Apache/etc, а не портированные/скомпилированные для мак.
    7) И так далее.

  16. P.S. Плюс можно запустить сервер на десктопе, а через локалку работать на ноуте, и не важно какая ОС на ноуте (для этого просто выбираем Bridged adapter в настройках VBox, и сервер будет видиться в вашей локальной сети как отдельный хост).

    P.S.S. MacPorts не тру. Используйте HomeBrew. А для MySQL, как уже сказали – бесплатный Sequel Pro.

  17. Уже тоже давно использую Mac. Мое мнение по настройке:
    1. Вместо MacPorts – Homebrew;
    2. Для MySQL – phpMyAdmin (ну не привык я и не вижу смысла в этих всех Sequel Pro и прочих);
    3. MySQL ставлю из бинарника (.dmg);
    4. Сказывается небольшой опыт с бубном, поэтому Apache, PHP и ВСЕ его модули (mcrypt, libpng, libjpeg, apc и т.п.) собираю вручную. Есть небольшой “хинт”, к которому уже привык как-то. Скачиваю Yii, там есть в /requirements файлик тестовый, который отображает что установлено – что нет из модулей, и пока все не загорятся зелененькими – не успокаиваюсь, то же самое и с phpMyAdmin. :)
    5. MAMP – говно, и для ОЧЕНЬ ленивых, иметь unix-like систему и не пользоваться прелестями системы равносильно покупке iPhone в кредит;
    6. PHPStorm 3,4,5… СПАСИБО ВАМ РЕБЯТА ИЗ JETBRAINS! И еще большое спасибо за оперативную реакцию на предложения на хабре. Синтаксисов подсветки и автодополнения PHP, Smarty TPLs, Yii, CSS, HTML, JS, jQuery, SCSS, LESS, SQL… Вобщем лучшее IDE!!!
    7. Для быстрого редактирования какого-то файла – отлично подходит Sublime Text 2;
    8. FTP-клиент – Transmit;
    9. штатного Терминала и стандартные unix command line – вне конкуренции. :)
    Настраивается это все ОДИН раз, в самом начале, дальше делаются резервные копии в TimeMachine и можно про забыть про переустановку… Вобщем 3 года, Snow Leopard – по пальцам рук и ног можно пересчитать количество перезагрузок компьютера в год.

    PS: Поработав один раз с маком становится страшно… страшно от того, что могут испортиться или сбить с true way и начать думать иначе, а не different…

  18. Если пользуетесь PhpStorm, а код после деплоя по-старинке на продакшен заливаете через FTP – то можно обойтись без FTP-клиента – средствами самого PhpStorm. Настраиваем сервер для деполя и либо в ручную заливаем код после изменений (с умным merge причем), либо настраиваем автоматическую заливку после коммита в репозиторий.

  19. Все хорошо написал. У меня почти все тоже самое. Только homebrew вместо macports. А еще Total Terminal в OS X (в Ubuntu Guake) вместо обычного. ИМХО незаменимая штука – возможность повесить терминал на хоткей.

    Еще мне не хватает возможности переключаться между несколькими версиями php. Есть идея сделать это через brew, но нужно покопаться.

    1. За Total Terminal спасибо! в остальном набор пчоти тот же (homebrew вместо macports, но я использую Sequel Pro)

  20. Привет, это очень интересные веб-страницы, и я любил читать много статей и сообщений, содержащиеся на сайте, сохранить хорошую работу и надеюсь, читать некоторые более интересный контент в будущем. Благодарю вас так много.

  21. Из-за проблем с oci8 вынужден держать виртуалку с Линуксом. :( А так все классно, и, да – homebrew рулит.

  22. Пробните Coda(тут и БД и ФТП встроены) или Eclipse. (IDE)
    Оба на порядок лучше как по мне. Именно на маке.

    Еще очень советую Spectacle. Есть в аппсторе бесплатно. Помогает совать окна. Советую настроить на cmd+numpad цифры по направлениям, 5 центр и 0 — фулскрин. Жить без нее не могу.

    Лучший плеер — mplayer. Vlc — кастрат.

  23. Холивары еще не замучали? Я юзаю PHPStorm он удачно контролирует репощитории с SVN, CVS, git, etc – Sublime совсем не то.

    Разница между ними 30$, это не фактор для меня)

  24. Антон, советую Вам посмотреть под MAC такую фитчу как Navicat (СУБД)

    Очень мне нравиться, использую ее и под MAC и под Ubuntu 10.03 и под WIndows 7.
    Имеет множество плюсов, такие как тунель HTTP, SSH, поддерживает огромное кол-во баз данных, очень хорошие бекапы делает :)

  25. Кстати на Маке никаких проблем с PostgeSQL, существует и сам сервер и довольно удобный менеджер PgAdmin

  26. Если еще не добавляли памяти в macbook pro – сделайте это! Я поставил две планки по 8Гб и машинка сразу залетала. Sqlyog поставил в parallels вместе с webuilder – если не рефакторить а быстренько что-то набросать, то мне удобнее работать в нем. В последнее время в офисе виндовую тачку не включаю, а просто цепляю мак к внешнему монитору. Еще винда в parallels может помочь, когда нужно фильм сбросить на внешний жесткий диск в ntfs.
    Coda 2.0.4 – отличный инструмент. Пользовался пока недолго, но понравилось. Sublime Text с плагинами – вещь, но лично мне в нем не хватает просмотра структуры файла (может я еще просто не нашел, но времени искать было маловато – загрузка по работе большая). Теперь думаю натянуть мак на рабочую тачку :).

  27. А я использую на виртуалке веб сервер. ОЧень удобно. Установил на VirtualBox запускается из консоли когда нужно а там по ssh уже работаю.

  28. Есть еще одна прекрасная тулза для работы с MySQL – MySQL Workbench. Есть практически все, что нужно для счастья.

  29. Попробуйте coda 2, очень удобный редактор кода и БД.

  30. Забавно что никто из маководов не вспомнил textmate :)
    VMware Fusion (FreeBSD) + TextMate + Sequel Pro + …. Terminal :)

  31. Уважаемые маководы и автор в том числе).
    Меня давно посещает идия перейти на os x, но мучают сомнения, понравится она или нет.
    Скажите пожалуйста, удобна ли система?

    P.S.
    Не знаю почему, но такое ощущение что работать за os x будет комфортно и приятно.

    1. Голосую за PHPStorm – раньше пользовался Netbeans – тоже вполне неплохо, но в сравнении предпочту однозначно PHPStorm

  32. Друзья, а нет ли среди вас перевербованых на mac os из мира linux (ubuntu, etc…) Вроде бы понимаю, что потеряю при переходе – а как насчет приобретений? Общие впечатления – стоит ли, удобнее, комфортнее, не жалеете? Круг задач – php, js, node, фреймворки и библиотеки серверной и клиентской стороны, изредка графика?

    1. Лучший рецепт – виртуалка с нужным дистрибутивом, т.к. под макось даже апгрейд php фактически – пляски с бубном

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.