Skip to content

Установка Apache на macOS Catalina

Published: at 13:30

Операционная система macOS уже содержит встроенный сервер Apache, но не самую последнюю его версию, поэтому лучше установить свежую версию из Homebrew.

Установка Xcode Command Line Tools

Если установка производится на чистую ОС, то в первую очередь надо установить Xcode Command Line Tools для работы с командной строкой:

xcode-select --install

Установка Homebrew

Следующим шагом устанавливаем Homebrew, для чего вводим команду с сайта.

Создаем директории для логов Apache

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

sudo mkdir /usr/local/log

sudo mkdir /usr/local/log/httpd

sudo chgrp -R staff /usr/local/log/httpd

sudo chmod -R ug+w /usr/local/log/httpd/

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

Нужно отключить предустановленный Apache, установить Apache из Homebrew и настроить его на 80-й порт.

Если предуставновленный Apache запущен, его нужно остановить и удалить из автозагрузки:

sudo apachectl stop

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

Устанавливаем последнюю версию Apache из Homebrew:

brew install apache

Запускаем Apache и добавляем его в автозагрузку:

brew services start httpd

Для проверки работы веб-сервера можно пройти по адресу http://localhost:8080, должна отобразиться страничка с текстом It works.

Теперь нужно сконфигурировать Apache через файл:

vim /usr/local/etc/httpd/httpd.conf

Изменение порта сервера

В конфигурационном файле найти строку Listen 8080 и меняем ее на Listen 80.

Подключение необходимых модулей

Следующее, что нужно сделать, это подключить дополнительные модули. Делается это раскомментированием (удалением символа # в начале строки) соответствующих строчек в файле.

LoadModule deflate_module lib/httpd/modules/mod_deflate.so

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

Изменение настроек пользователя и группы

По умолчанию, Apache запускается от имени пользователя _www и группы _www. Так как мы собираемся перенести корневую директорию в пользовательскую директорию Work, то для того, чтобы избежать проблем с правами, изменим пользователя и группу.

Для этого в файле httpd.conf найти строчки, отвечающие за пользователя и группу и заменить их на собственные.

User your_username

Group staff

Настройка администратора и имени веб-сервера

Для этого нужно найти строчку ServerAdmin (при необходимости раскомментировать) и добавить собственную почту.

ServerAdmin yourname@email.com

Настраиваем имя сервера, для этого раскомментируем соответствующую строчку в конфигурационном файле и изменим значение на localhost.

ServerName localhost

Настройка корневой директории веб-сервера

Следующее, что нужно сделать - изменить корневую директорию. Это директория, в которой будет Apache будет искать файлы, по умолчанию назначена на /usr/local/var/www/. Для удобства пользования, изменим ее на папку в домашней директории.

Для этого надо найти строку DocumentRoot и изменить ее значения на подходящее.

DocumentRoot "/Users/your_username/Work"

Затем нужно изменить ссылку на директорию в тэге ниже.

<Directory "/Users/your_username/Work">;

В этом же блоке нужно найти AllowOverride и изменить его значение с None на All.

AllowOverride All

Настройка расположения лога ошибок

Затем нужно настроить логирование ошибок сервером во вновь созданные директории. Для этого надо найти строку, содержащую ErrorLog и заменить ее значение на нужное.

ErrorLog "/usr/local/log/httpd/error_log"

После чего, сохраняем файл.

Создание рабочей директории

Для проверки работы сервера создадим рабочую директорию Work и простой html-файл index.html.

mkdir ~/Work

echo "<h1>It works in my Work Folder!</h1>;" > ~/Work/index.html

Перезапуск Apache

Для применения всех внесенных нами изменений, нужно перезапустить сервер.

sudo apachectl -k restart

После чего набрать в поисковой строке браузера http://localhost, должна появиться наша страничка с приветствием It works in my Work Folder!. Теперь наш сервер работает на 80 порту.