Локальный веб-сервер MAMP для Mac OS. Личный опыт Web разработки в Mac OS X Локальный сервер на мак

На самом деле статей про то, как поднять локальный сервер (а тут речь зайдет конкретно об OS X) достаточно много. Но как и с меня постигло разочарование, когда я хотела просто воспользоваться инструкцией и не заморачиваться. Все же я не программист.

Меня не интересовали всякие дополнительные супер крутые все содержащие в себе программы типа MAMP. Они сожрут мне место на диске и наделают кучу непонятных папок. Я точно знала, что линуксоподобная OS X итак почти все в себе имеет, надо просто знать как этим воспользоваться. Но я и не думала, что мне так повезет! И я смогу поднять локальный сервер в любой папке (то есть моя структура проектов на диске не будет нарушена вообще).

Тут я опишу небольшую последовательность действий, которая позволила мне установить Wordpress в одной из выбранной мною (а не разработчиками супер программ, упомянутых выше) папке. Конечно локальный сервер нужен не только для WordPress, но я буду описывать конкретно мой случай.

Исходные данные

Для начала стоит отметить, что инструкция касается > OS X 10.10 (Yosemite) . На версиях ниже тоже скорее всего будет работать, но не гарантирую, что все в точности так же (это зависит от предустановок системы).

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

  1. Если вам нужен сервер для html верстки (ну к примеру, для ajax, или чтобы потестить сколько запросов будет отправляться на сервер вашей версткой), то вообще ничего не нужно устанавливать. Смотрите раздел “Простой веб-сервер от Python”.
  2. Если вам нужно установить WordPress , то тут необходимо посмотреть требования этой CMS . На тот момент, что я устанавливала Вордпресс, это: PHP 5.4 и выше, MySQL 5.5 и выше, Apache модуль.

Инструкция

1. Устанавливаем все необходимое для сервера

Вводим в консоли:

type - a python

Должно показать что-то типа того:

python is /usr/local/bin/python python is /usr/bin/python

Откроется файлик, нужно найти строчку LoadModule php5_module libexec/apache2/libphp5.so (горячая клавиша для поиска текста в vi – ?) и раскомментировать ее (удалить # перед строкой).

MySQL вряд ли установлен. И тут в дело вступает лень. Чтобы ничего самим не скачивать, не устанавливать и не настраивать, просто выполняем скрипт, введя в консоли:

bash <(curl -Ls http://git.io/eUx7rg)

bash < (curl - Ls http : //git.io/eUx7rg)

Этот скрипт я нашла . Проверила, ничего ужасного с моим маком не сделал этот чей-то самописный скрипт, все как и обещано. А именно, он делает следующее:

  • Проверяет, установлен ли MySQL в системе
  • Скачивает последнюю версию MySQL
  • Устанавливает пароль для root, показывает пароль
  • Записывает пароль в файл на рабочем столе (мне это потом пригодилось, так как при установки я пароль конечно не записала)
  • Что-то настраивает, спрашивает не хотите ли вы еще что-то настроить (я просто ответила нет, мне это не интересно и не нужно)
  • Предлагает установить программу Sequel Pro (менеджер баз данных, полезная штука). Я ответила да и не пожалела.

Все, теперь перезагружаемся. И устанавливаем WordPress куда глаза глядят.

2. Поднимаем сервер и устанавливаем WordPress

Простой веб-сервер от Python

Помните, что этот вариант подходит только для теста верстки и других простых задач, где кроме HTTP запросов ничего не нужно. Если вам тоже нужно установить WordPress на локалку, листайте на раздел ниже.

1. Открываем консоль, переходим в нужную папку:

2. Набираем в консоли команду: python -m SimpleHTTPServer

В консоли появится надпись Serving HTTP on 0.0.0.0 port 8000 …

Теперь вводим в адресную строку браузера http://localhost:8000/какой-то_ваш_файл.html

Полноценный сервер на локалке + WordPress

1. Переходим в папку с предполагаемым WordPress для проекта:

2. Запускаем сервер с поддержкой PHP командой php -S 127.0.0.1:8000

3. Открываем программы Sequel Pro, вводим адрес, пользователя и пароль, соединяемся с нашим локальным сервером:

4. Создаем новую базу данных для WordPress в Sequel Pro.

5. Переходим по адресу http://localhost:8000/wp-admin/install.php , чтобы начать установку.

Ссылки по теме

How to use SimpleHTTPServer – немного о питон сервере
Install MySQL on OS X 10.9 Mavericks – подошло и для Yosemite

Привет Хабр!

Как веб-разработчик, выбравший Mac OS X в качестве основного рабочего инструмента, я столкнулся с проблемой настройки необходимого окружения. По многолетней привычке работы с серверами на Linux, руки сами потянулись в консоль дабы все поставить, но остановились - постойте, постойте, но зачем мне превращать эту операционку в очередной Linux сервер? Мне этого шаманства с консолью на серверах хватает, спасибо. Будем использовать встроенные компоненты, насколько это возможно.

Web сервер

Apache предустановлен в Mac OS и для локальной разработки его более чем хватает.
Маленькая хитрость – если не нужен виртуальный хост, то очень помогает вот такой трюк:
/etc/apache2/extra/httpd-userdir.conf
Options Indexes Order allow,deny Allow from all
Осталось кинуть проект в ~/Sites/%имя_проекта% и открыть в браузере localhost/~%user_name%/%имя_проекта%
На крайний случай, если нужна полная копия production окружения всегда можно установить Vagrant .

PHP

PHP предустановлен в Mac OS. Если его версия устраивает, то просто включаем загрузку модуля php5_module : /etc/apache2/httpd.conf
LoadModule php5_module libexec/apache2/libphp5.so
Если не устраивает, то можно установить PHP по мануалу отсюда php-osx.liip.ch . Эта версия не заменит системную, сама найдет Apache и вообще установится в /usr/local/php5 . Установка предельно проста – одна строка в консоли (пример для PHP 5.5):
curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5

MySQL

Установить MySQL можно несколькими способами, например, через Homebrew . Но компилировать из исходников MySQL только потому что это позволяет пакетный менеджер? Мне кажется что проще взять DMG архив с официального сайта и установить. После установки в Системных настройках появится вкладка MySQL:

FTP/SFTP

Кроме работы над основным проектом приходится отвлекаться и исправлять/доделывать что-то у клиентов. Обычно это чужой хостинг с доступом по FTP. Значит нужен FTP клиент. Выбор пал на Cyberduck :




Почему Cyberduck? Потому что хранит пароли в Keychain, переведен на русский, бесплатен и поддерживает FTP , SFTP , WebDAV , Amazon S3 , Google Cloud Storage и Rackspace Cloud Files .

MySQL клиент

Долго выбирал рать между MySQL Workbench и Sequel Pro . В силу легкости победил Sequel Pro.

Почему локальное приложение а не phpmyadmin или mysql в консоли хостинга? Потому что все курируемые базы в одном месте и не надо при задаче «посмотри что там в базе у клиента » открывать консоль, SSH и вспоминать пароли. Да, это удаленное подключение и MySQL на хостинге смотрит наружу. Но доступ по IP или SSH туннель спасают отца русской демократии.
Возможностей у программы достаточно много, лучше почитать на официальном сайте.

Sublime Text

Без него никуда. Маленькая хитрость в настройках:
{ "open_files_in_new_window": false, }
По-умолчанию выставлено в TRUE и из-за этого Cyberduck открывает новые файлы в новом окне, а не в новой вкладке существующего окна.

Кроме этого, бывает что нужно быстро запустить небольшой кусок PHP кода, а делать это в IDE не удобно. Можно выполнить PHP код из Sublime Text, добавив новую Build System (Tools –> Build System -> New ):
{ "cmd": ["php" , "$file"] }
Теперь жмем CMD + B и результат работы кода появится в консоли Sublime Text.

Dash


Это удобный сборник документации, вот его особенности:

  • Автообновление документации с официальных сайтов
  • Оффлайн доступ
  • Шпаргалки (Cheat Sheets)
  • Создание своих сниппетов
  • Интеграция в PhpStorm и Sublime Text

Конечно, можно еще начать петь дифирамбы тач-жестам и полноэкранному режиму приложений, но это выходит за рамки статьи.

Привет Хабр!

Как веб-разработчик, выбравший Mac OS X в качестве основного рабочего инструмента, я столкнулся с проблемой настройки необходимого окружения. По многолетней привычке работы с серверами на Linux, руки сами потянулись в консоль дабы все поставить, но остановились - постойте, постойте, но зачем мне превращать эту операционку в очередной Linux сервер? Мне этого шаманства с консолью на серверах хватает, спасибо. Будем использовать встроенные компоненты, насколько это возможно.

Web сервер

Apache предустановлен в Mac OS и для локальной разработки его более чем хватает.
Маленькая хитрость – если не нужен виртуальный хост, то очень помогает вот такой трюк:
/etc/apache2/extra/httpd-userdir.conf
Options Indexes Order allow,deny Allow from all
Осталось кинуть проект в ~/Sites/%имя_проекта% и открыть в браузере localhost/~%user_name%/%имя_проекта%
На крайний случай, если нужна полная копия production окружения всегда можно установить Vagrant .

PHP

PHP предустановлен в Mac OS. Если его версия устраивает, то просто включаем загрузку модуля php5_module : /etc/apache2/httpd.conf
LoadModule php5_module libexec/apache2/libphp5.so
Если не устраивает, то можно установить PHP по мануалу отсюда php-osx.liip.ch . Эта версия не заменит системную, сама найдет Apache и вообще установится в /usr/local/php5 . Установка предельно проста – одна строка в консоли (пример для PHP 5.5):
curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5

MySQL

Установить MySQL можно несколькими способами, например, через Homebrew . Но компилировать из исходников MySQL только потому что это позволяет пакетный менеджер? Мне кажется что проще взять DMG архив с официального сайта и установить. После установки в Системных настройках появится вкладка MySQL:

FTP/SFTP

Кроме работы над основным проектом приходится отвлекаться и исправлять/доделывать что-то у клиентов. Обычно это чужой хостинг с доступом по FTP. Значит нужен FTP клиент. Выбор пал на Cyberduck :




Почему Cyberduck? Потому что хранит пароли в Keychain, переведен на русский, бесплатен и поддерживает FTP , SFTP , WebDAV , Amazon S3 , Google Cloud Storage и Rackspace Cloud Files .

MySQL клиент

Долго выбирал рать между MySQL Workbench и Sequel Pro . В силу легкости победил Sequel Pro.

Почему локальное приложение а не phpmyadmin или mysql в консоли хостинга? Потому что все курируемые базы в одном месте и не надо при задаче «посмотри что там в базе у клиента » открывать консоль, SSH и вспоминать пароли. Да, это удаленное подключение и MySQL на хостинге смотрит наружу. Но доступ по IP или SSH туннель спасают отца русской демократии.
Возможностей у программы достаточно много, лучше почитать на официальном сайте.

Sublime Text

Без него никуда. Маленькая хитрость в настройках:
{ "open_files_in_new_window": false, }
По-умолчанию выставлено в TRUE и из-за этого Cyberduck открывает новые файлы в новом окне, а не в новой вкладке существующего окна.

Кроме этого, бывает что нужно быстро запустить небольшой кусок PHP кода, а делать это в IDE не удобно. Можно выполнить PHP код из Sublime Text, добавив новую Build System (Tools –> Build System -> New ):
{ "cmd": ["php" , "$file"] }
Теперь жмем CMD + B и результат работы кода появится в консоли Sublime Text.

Dash


Это удобный сборник документации, вот его особенности:

  • Автообновление документации с официальных сайтов
  • Оффлайн доступ
  • Шпаргалки (Cheat Sheets)
  • Создание своих сниппетов
  • Интеграция в PhpStorm и Sublime Text

Конечно, можно еще начать петь дифирамбы тач-жестам и полноэкранному режиму приложений, но это выходит за рамки статьи.

Существует множество способов развернуть локальный сервер на Mac OS X, но сама система уже содержит предустановленный веб-сервер Apache и интерпретатор PHP, которые необходимо активировать и настроить.

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

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

Включить веб-сервер можно в настройках: Системные настройки > Общий доступ > включить службу Общий веб-доступ.

Если набрать в адресной строке браузера http://localhost/ , то сервер вернет страницу с текстом «It works!».

Команды для работы с Apache через командную строку:

sudo apachectl start | stop | restart

Ошибка Apache в Mac OS X 10.6.5 и выше

Следующая ошибка наблюдается при перезапуске Apache в Mac OS X 10.6.5 и выше, если попытаться перезапустить сервер через командную строку, Apache вернет ошибку:

/usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument

Необходимо внести изменения в скрипт apachectl (/usr/sbin/apachectl):

sudo nano /usr/sbin/apachectl

закомментируем строку 82:

ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"

и добавим под ней:

ULIMIT_MAX_FILES=""

Сохраняем скрипт и перезапускаем Apache.

Конфигурация Apache

Для конфигурации Apache необходимо открыть файл /etc/apache2/httpd.conf:

sudo nano /etc/apache2/httpd.conf

Переходим к строке 116 и подключаем PHP (необходимо раскомментировать строку):

LoadModule php5_module libexec/httpd/libphp5.so

Зададим свой каталог для локального сервера, поменяем путь к корневому каталогу в строке 168 и 195. После этих изменений корневым каталогом будет папка Сайты (Sites), находящаяся в домашнем каталоге пользователя.

DocumentRoot "/Library/WebServer/Documents"

DocumentRoot "/Users/имя_пользователя/Sites"

Аналогично заменим прежний путь в строке 195:

В строке 230 пропишем какие типы файлов и в какой последовательности должен обрабатывать Apache:

DirectoryIndex index.php index.html

В строке 264 можно задать место для хранения журнала ошибок Apache:

ErrorLog "/private/var/log/apache2/error_log"

Раскомментируем строку 469, чтобы подключить файл в котором будем записывать виртуальные хосты:

Include /private/etc/apache2/extra/httpd-vhosts.conf

Сохраняем все изменения в файле httpd.conf и перезапускаем Apache. Если перейти по адресу http://localhost/ , загрузится стартовая страница из папки сайты с приветствием "Ваш веб-сайт".

Проверим работоспособность PHP, для этого создадим в каталоге Сайты тестовый PHP-скрипт:

touch ~/Sites/index.php
sudo nano ~/Sites/index.php

и напишем сценарий, который покажет конфигурацию PHP:

Сохраняем файл index.php и вновь переходим по адресу http://localhost/ , должна открыться страница с информацией о версии PHP. Если по прежнему загружается страница приветствия, необходимо проверить настройки Apache (строка 230).

Конфигурационный файл php.ini находится в папке /private/etc/php.ini.defaults , его необходимо переименовать в php.ini:

sudo mv /private/etc/php.ini.default /private/etc/php.ini

Конфигурация виртуальных хостов.

Все проекты будут размещаться в каталоге пользователя Сайты (/Users/имя_пользователя/Sites/). Создадим в этом каталоге новую папку с названием test , а в ней файл index.php с тестовым скриптом. Локальный сайт будет открываться по адресу http://test/ . Переходим к командной строке и вводим следующие команды:

mkdir ~/Sites/test
cd ~/Sites/test
touch index.php
nano index.php

и добавим сценарий:

Теперь займемся конфигурацией виртуальных хостов. Для начала откроем файл /etc/hosts и добавим в исключения адрес локального сайта (http://test/). Переходим к командной строке:

sudo nano /etc/hosts

и добавляем строчку:

Добавим записи с конфигурацией нового виртуального хоста:

sudo nano /private/etc/apache2/extra/httpd-vhosts.conf

И в конец файла добавляем записи:

ServerAdmin DocumentRoot "/Users/имя_пользователя/Sites/test" ServerName test AllowOverride All Order allow,deny Allow from all

Сохраняем изменения и перезапускаем Apache. Теперь, если перейти по адресу http://test/ откроется страница с приветствием «Hello world!».

Все указания выше приведены с учетом моих вкусов и предпочтений, цель данного руководства разобраться с основными принципами конфигурации нативного Apache и PHP на Mac OS X. С огромным удовольствием выслушаю предложения и замечания по доступности изложенного материала.

Сегодня мы поговорим о локальном веб-сервере, доступном как для Windows, так и для OS X. При этом его ключевая особенность - наличие простого и понятного интерфейса. Чтобы запустить сервер, не нужно быть бородатым администратором. Достаточно лишь вдумчиво прочитать инструкцию, и вы легко оживите локальную версию сайта.

Итак, встречайте MAMP и MAMP PRO. Первый - бесплатный, но с урезанными возможностями, которых всё равно хватит для большинства ваших потребностей. Второй - платный, он обойдётся в 4 000 рублей. Если после прочтения решитесь загрузить MAMP или купить MAMP PRO, добро пожаловать на сайт разработчика .

Сначала давайте поговорим о бесплатной версии MAMP, потому что именно с неё проще всего начать знакомство с локальным веб-сервером. Сразу после установки вы получите работоспособный веб-сервер с Apache, MySQL и PHP.

mamp.info

После запуска MAMP вы увидите простое меню из наиболее востребованных опций. Можно запустить или остановить веб-сервер, перейти на главную страницу веб-интерфейса или изменить какие-либо настройки. Настроить можно порты для Apache и MySQL, выбрать версию PHP и указать корневую папку вашего проекта. В целом даже с настройками по умолчанию можно начинать работать.


mamp.info

Возможностей по настройке MAMP PRO несравненно больше. Более того, MAMP PRO является надстройкой бесплатного MAMP, поэтому может быть установлен в любой момент без вреда для вашего текущего проекта. Если почувствовали, что бесплатная версия не даёт вам развернуться, то переезд не доставит хлопот.

Теперь быстро пройдёмся по отличиям MAMP PRO.

Разработчики делают ставку на дополнительную и рекомендуют запускать веб-сервер в MAMP PRO под записью www/mysql. Это особенно актуально в том случае, если компьютер постоянно подключён к интернету. Также полная версия позволяет включать или отключать отдельные модули Apache.


mamp.info

Дополнительные параметры MySQL также направлены на безопасность. Можно задать или изменить основной пароль MySQL, а также ограничить доступ к вашей базе извне. Также и для Apache, и для MySQL доступны логи ошибок, что может быть полезно. Примечательно, что в MAMP PRO полностью русифицирован интерфейс phpMyAdmin, а вот бесплатная версия этим похвастаться не может.

Есть у полной версии веб-сервера и поддержка Dynamic DNS. Можно сопоставить имя сайта и ваш текущий IP-адрес. Кроме того, имеется поддержка провайдеров dyndns.com и easydns.com. Достаточно иметь учётную запись у одного из них, чтобы воспользоваться поддержкой Dynamic DNS.


mamp.info

MAMP PRO позволит настроить отправку писем с вашего локального веб-сервера, если возникнет такая необходимость.

Платная версия отличается также возможностью создавать неограниченное количество хостов, прилагая минимум усилий. Иными словами, вы можете одновременно запустить несколько сайтов. Бесплатный MAMP ограничен всего одним.


mamp.info

MAMP и MAMP PRO - это наиболее дружелюбные решения в сфере локальных веб-серверов. Понятный интерфейс и подробная документация позволят быстро разобраться во всех тонкостях. Необходимость в дорогостоящей платной версии может возникнуть, если ваша работа над сайтом или несколькими ресурсами выходит за рамки простого любопытства. Это серьёзный инструмент для веб-разработчиков.



Понравилась статья? Поделиться с друзьями: