Установка и настройка Apache в MacOS 10.15 Catalina

Предварительные условие для инструкции:
  1. Установка HomeBrew в MacOS 10.15 Catalina

После выполнения предварительных условий начнем с установки некоторых зависимостей для Catalina:

brew install openldap libiconv

Последняя версия MacOS 10.15 Catalina поставляется с предварительно установленной версией Apache 2.4, однако использовать эту версию вместе с Homebrew не правильно, поскольку Apple удалила некоторые необходимые скрипты в этом выпуске. Решение состоит в том, чтобы установить Apache 2.4 через Homebrew, а затем настроить его для работы на стандартных портах (80/443).

Если у вас уже работает встроенный Apache, сначала его необходимо отключить и удалить все сценарии автозагрузки. На самом деле будет полезно просто запустить все эти команды по порядку — даже если это новая установка:

sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

Теперь установим новую версию Apache  которая поставляется по средствам Brew:

brew install httpd

Теперь выполним команду которая позволит нашему серверу запускаться в автоматическом режиме:

sudo brew services start httpd

Все, вы установили Apache Homebrew и настроили его на автоматический запуск с привилегированной учетной записью. Сервер уже должен быть запущен, проверить это можно пройдя по ссылке http://localhost:8080, вы должны увидеть простой заголовок с надписью «It works!».
Apache управляется с помощью команды apachectl, ниже указаны некоторые команды которые будут полезны:

sudo apachectl start
sudo apachectl stop
sudo apachectl -k restart
 Конфигурация Apache.

Теперь, когда у нас есть работающий веб-сервер, нам нужно будет внести некоторые изменения в конфигурацию, чтобы он работал лучше в качестве локального сервера разработки.

В последней версии Brew вы должны вручную установить порт прослушивания по умолчанию от 8080 до 80, поэтому нам нужно будет отредактировать файл конфигурации Apache

open -a TextEdit /usr/local/etc/httpd/httpd.conf
1. Найдите в файле Listen 8080 и измените на Listen 80;
2. Теперь установим следующие параметры, чтобы Apache смотрел не в свою дефолтную папку /usr/local/var/www а, предположим, в папку нашего пользователя. Ведь у нас же окружение для разработки… Найдите параметр DocumentRoot «/usr/local/var/www»  и измените его на DocumentRoot «/Users/your-user/Sites» где «your-user» имя ваше пользователя в системе.
3. Также необходимо изменить ссылку на тег <Directory> прямо под строкой DocumentRoot. Это тоже должна быть папка вашего пользователя: <Directory /Users/your-user/Sites> где «your-user» имя ваше пользователя в системе.
4. В этом же блоке <Directory> вы найдете параметр AllowOverride, который должен быть изменен на AllowOverride All

Также мы должны включить mod_rewrite, который закомментирован по умолчанию. Найдите в файл mod_rewrite.so и раскомментируйте строку, удалив первый символ ришотки #:

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

Теперь у нас есть конфигурация Apache, указывающая на папку Sites в нашем домашнем каталоге. Однако одна проблема все еще существует. По умолчанию apache запускается как пользовательский демон и демон группы. Это приведет к проблемам с правами доступа при попытке обращения к файлам в нашем домашнем каталоге. Примерно на треть  вниз по файлу httpd.conf есть две настройки, под которыми будет работать пользователь и группа Apache. Их нужно изменить таким образом, чтобы они соответствовали вашей учетной записи пользователя и группе (потребуется заменить your-user на ваше реальное имя пользователя) :

User your_user
Group staff

где «your-user» имя ваше пользователя в системе.

Apache требуется иметь имя сервера в конфигурации, но по умолчанию  эта опция отключена. Для ее включения нам потребуется найти в файле директиву #ServerName www.example.com:8080 и заменить ее на ServerName localhost

Теперь нам нужно создать папку Sites в корне домашнего каталога вашего пользователя.  Это можно сделать сделать это в терминале или в Finder. В этой новой папке «Sites» vs мы создадим простой файл index.html и напишем там что-то что будет показывать, что это именно папака пользователя, например: <h1> My User Sites Folder </ h1>.

mkdir ~/Sites
echo "<h1>My User Sites Folder</h1>" > ~/Sites/index.html

После этого перезапускаем Apache  командой:

sudo apachectl -k restart

Теперь при казании в адресной строке вашего браузера http://localhost  должен отобразится наш текс из шага ранее — My User Sites Folder.

Apache MacOS Catalina in user home folder

Если вы видите это, значит вы все сделали правильно и теперь Apache по умолчанию смотрит в папку Sites вашего пользователя.
На этом первичную настройку Apache можно считать законченой.

3 комментария к “Установка и настройка Apache в MacOS 10.15 Catalina”

  1. Сделал все по инструкции, но текст выводится с разметкой php (

    <

    h1>)
    В чем может быть дело?

    1. Андрей

      Я в процессе написания инструкции об установке PHP в этой связке. Но если вы уже установили PHP попробуйте сделать
      brew services start php@x.x — где x.x версия php которую вы установили, потом
      brew link php@x.x —force
      и на всякий случай logout — login

  2. Дмитрий

    Спасибо, очень понятная и полезная статья ! 🙂 Вот бы ещё статью о том как настроить виртуальные хосты в каталине, нифига не получается

Оставьте комментарий

%d такие блоггеры, как: