Я обожаю использовать 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.
Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание
Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.
Добавить Комментарий