Настройка Apache на macOS

Я обожаю использовать mac для web разработки и на php я пишу только на нем. На Surface Pro у меня нет ни PHP, ни MySQL, ни Apache. Давние читатели блога уже знают, что я когда-то пробовал MAMP, но потом перешел на чистый MAMP (Mac, Apache, MySql, PHP). Недавно получил письмо с просьбой расказать, как настроить Apache на маке. Выполняю просьбую.  

Apache в macOS уже установлен и даже запускается по умолчанию. Если у тебя не стратует, то вручную его можно запустить: 

sudo apachectl start

Эта команда запустит Apache, но только для текущей сессии. После перезагрузки macOS придется стартовать сервер заново. Чтобы этого не делать каждый раз, можно выполнить команду: 

sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

Теперь, если в браузере загрузить страницу localhost, то ты должен увидеть сообщение что-то типа It Works. 

Дальше настройка Apache идет абсолютно так же, как и на Linux, потому что абач он и в Канаде апач. Я покажу те настройки, которые сам меняю для собственных нужд. 

Сперва открываем основной файл настройки httpd.conf:

 

sudo vi /etc/apache2/httpd.conf

 

Я еще старый программер (линуксоедом себя назвать не могу), поэтому предпочитаю vi. 

По умолчанию PHP отключен, поэтому ищем строку:

 

#LoadModule php7_module libexec/apache2/libphp7.so

 

И убираем решеточку - символ комментария. Я уже не помню, где по умолчанию сервер хранит файлы, кажется это что-то типа /usr/www. Я это дело не люблю, поэтому следующим шагом я ищу параметр: DocumentRoot и меняю его на свою домашнюю папку:

 

DocumentRoot "/Users/mikhailflenov/Projects/Web/"

<Directory "/Users/mikhailflenov/Projects/Web/">

    Options FollowSymLinks Multiviews

    MultiviewsMatch Any

    AllowOverride All

    Require all granted

</Directory>

 

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

Все, сохраняю изменения и перезапускаю сервер:

 

sudo apachectl restart

 

Этого вполне достаточно, чтобы теперь сайты работали локально. 

Следующее, что нужно сделать, создать виртуальные хосты. Редактируем следующий файл:

 

sudo vi /etc/apache2/extra/httpd-vhosts.conf

 

Вот так например у меня описан локальный сайт profwebdev.com:

 

<VirtualHost *:80>

    DocumentRoot "/Users/mikhailflenov/Projects/Web/profwebdev.com"

    ServerName profwebdev1.com

    ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"

    CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common

</VirtualHost>

 

В качестве имени сервера используется profwebdev1.com, чтобы отличать локальный от основного. Файлы сервера располагаются в /Users/mikhailflenov/Projects/Web/profwebdev.com. 

Теперь в /etc/hosts добавляем строку:

 

127.0.0.1   profwebdev1.com

 

И на этом конфигурация локального сайта закончена. 

Иногда для отличия локальной версии от рабочей я заменяю www на dev. 



Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповидания на русском или английском языке.

Пишите мне


Я в социальных сетях
Facebook Telegram Youtube Instagram