Предварительные условие для инструкции:
После выполнения предварительных условий начнем с установки некоторых зависимостей для 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
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” имя ваше пользователя в системе.
Теперь нам нужно создать папку 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 по умолчанию смотрит в папку Sites вашего пользователя.
На этом первичную настройку Apache можно считать законченой.
Сделал все по инструкции, но текст выводится с разметкой php (
<
h1>)
В чем может быть дело?
Я в процессе написания инструкции об установке PHP в этой связке. Но если вы уже установили PHP попробуйте сделать
brew services start php@x.x – где x.x версия php которую вы установили, потом
brew link php@x.x –force
и на всякий случай logout – login
Спасибо, очень понятная и полезная статья ! 🙂 Вот бы ещё статью о том как настроить виртуальные хосты в каталине, нифига не получается
Товарищ! Вот ты Гон”№”№%” !
Чаще всего людям все это нужно в связке с PHP
Благодаря твоей инструкции сервер-то настраивается, только вот php больше не работает. т.е. следуя ей я запустил сервер, но остался без php. Ну и на кой мне сервер без php? Туб сразу предупреждал в начале статьи, что “уважаемые пользователи, инструкция предполагает, что вы грохните php, а как его вернуть я напишу в когда-нибудь в другой раз”. ДЕБИЛ!
Возникают ошибки
sudo apachectl -k restart
httpd not running, trying to start
(48)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(48)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs