Отключить apache mac os

Обновлено: 04.07.2024

Эта статья является переводом статьи How to Set up Apache in macOS Sierra 10.12, и я размещаю ее здесь в первую очередь для себя, так как часто приходится к ней прибегать для настройки/перенастройки Apache в Sierra. Возможно, кому-то этот русскоязычный перевод облегчит понимание, и я буду рад что смог чем-то помочь.

macOS Sierra поставляется с веб-сервером Apache версии 2.4.23. Настройка Apache будет состоять из трех этапов:

0. Terminal, без которого никуда

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

Терминал находится по адресу:

Запустите его. Приглашение командной строки будет иметь следующий вид:

Сначала будет указано имя компьютера, потом :

потом ваше короткое имя пользователя и знак $ в конце.

1.1. Создаем папку Sites и папки для проектов

Папка Sites будет выступать в роли Document Root для Apache, и в то же время удобно располагаться в вашей домашней папке, обеспечивая беспрепятственный доступ к своему содержимому. Отметим, что папка Sites уже была предустановлена во всех ранних системах Mac OS X и исчезла в OS X 10.7 Lion. Равно как и галочка “web sharing” в System Preferences -> Sharing, которая позволяла запускать/останавливать Apache. Видимо в Apple посчитали, что среднестатистическому пользователю это не нужно, а кому нужно, разберется и без графического интерфейса. Но как только вы создадите папку Sites, сразу станет понятно что Finder ожидает ее возрождения и у него уже есть заготовленная иконка для этой папки с логотипом Safari.

Создать папку можно с помощью Finder, но мы сделаем это через Terminal, из учебных соображений. Для создания директорий есть команда mkdir (сокращение от make directory). После mkdir должен быть указан путь в файловой системе к создаваемой папке. Символом тильда (

) обозначается ваш домашний каталог (это сокращение принято во всех Unix системах). Таким образом, следующая команда позволит создать папку Sites внутри вашей домашней директории:

Как узнать что команда сработала и папка создалась? Выполните:

Команда ls (сокращенно от list), показывает содержимое указанной директории, в данном случае она покажет содержимое нашей домашней директории так как в качестве пути стоит тильда

Папка Sites теперь будет показываться среди другого содержимого домашней папки.

Теперь создадим две папки для сайтов внутри Sites. Используем для этого mkdir:

С помощью ls убедитесь что папки созданы:

1.2. Создадим простой HTML файл

Можно, конечно, создать simple-text файл в TextEdit, и наполнить его HTML кодом, но мы по-прежнему будем использовать Терминал. Создавать файл удобно командой touch. Она либо создает новый пустой файл либо меняет дату изменения на текущую на указанном файле либо директории. Это удобно запомнить, так как touch == потрогать.

От пустого index.html толку мало, нужно наполнить его HTML разметкой, и для этого мы воспользуемся редактором nano:

Откроется текстовый редактор прямо в окне Терминала. Внизу будут перечислены команды-подсказки. Символ ^ стоящий перед буквой означает что чтобы выполнить эту команду, нужно нажать клавишу Ctrl и соответствующую букву.

Добавьте следующие строки в файл

Закройте и сохраните файл используя клавишное сочетание Ctrl+X (выйти) потом Y (да, сохранить) и Enter.

А теперь откройте свежескопированный файл в nano:

Измените его содержимое, чтобы оно выглядело примерно так:

Теперь, когда у нас есть две папки с тестовыми файлами, можно переключиться на настройку Apache.

1.3. Настраиваем Apache

1.3.1. Конфигурационный файл Apache

Теперь нам нужно переместиться в директорию /etc/apache2/users и создать там .conf-файл. Apache будет его искать именно там. Переместитесь в эту папку командой cd:

Еще раз проверьте что вместо username вы подставили свое реальное имя пользователя!

Откроется новый пустой текстовый файл в редакторе nano, в который нужно добавить следующее содержимое:

И снова замените username на ваше имя пользователя. Закройте Ctrl+X редактор, укажите сохранить (Y) документ, и нажмите Enter для подтверждения.

Теперь подкорректируем права доступа, чтобы Apache мог прочитать этот новосозданный файл. Для изменения прав доступа воспользуйтесь командой:

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

На следующем шаге нам нужно переместиться назад или вверх на один уровень, в папку /etc/apache2. Сейчас, вы наиболее вероятно находитесь в /etc/apache2/users (если не переходили никуда с прошлого шага). Чтобы переместиться на уровень вверх (перейти в родительскую папку), используйте команду cd и две точки вместо указания имени папки:

Перешли? Проверьте, что вы находитесь в правильном месте командой pwd (сокращение от print working directory):

Команда должна показать: /etc/apache2.

Как и в предыдущем случае, обязательно создадим резервную копию файла перед изменением:

1.3.4. Перезагрузка Apache

Внеся указанные выше изменения в:

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

После перезапуска Apache можно проверить результат с помощью браузера (Safari, Firefox, или что вы там используете).

1.3.5. Просмотр локальных веб-сайтов

username, только не забудьте поменять username на свое имя пользователя. Если все настроено верно, вы увидите содержимое папки Sites, среди которого будут созданные нами ранее

/Sites/bar. Если щелкнуть на foo или bar, откроется заготовленная нами веб-страница которая выводит Hello World. Apache видит наличие html-файла по умолчанию, а именно index.html и при переходе в папку автоматически загружает index.html.

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

username/bar, можно настроить локальные доменные имена для каждого проекта. В таком случае сайт, размещенный в

/Sites/foo будет доступен по адресу foo.localhost, а сайт из папки

/Sites/bar будет доступен соответственно по bar.localhost. Так удобнее, правда?

Обратите внимание: используя VirtualHosts, нам придется отказаться от индексированного представления на localhost, и нужно будет отредактировать hosts файл вашего Mac, добавив в него уникальные имена хостов для каждого проекта.

Будьте внимательны редактируя файл hosts. Добавьте ваши записи в низ файла и не изменяйте первых три строчки!

Откройте файл /etc/hosts с помощью nano:

Если вы ранее не вносили никаких правок в этот файл, он должен выглядеть так:

Добавьте в него свои локальные доменные имена, и файл будет выглядеть примерно так:

Сохраните и закройте /etc/hosts.

Прежде чем мы сможем проверить что мы понастраивали, нужно перезапустить Apache:

После перезапуска Apache, заходим на foo.localhost и bar.localhost веб-браузером, оба сайта должны выдавать соответствующий index.html.

Найдите и раскомментируйте в этом файле строку:

3.1. Интерпретация PHP кода внутри HTML файлов

Добавьте следующий блок кода в самый верх файла:

И после всех этих изменений перезапустим Apache:

3.2. Проверка работы PHP модуля

А теперь проверим, все ли у нас корректно работает. Для начала создадим обычный .php файл:

Поместите в него php-код следующего содержания или любой другой php-код:

Также желательно протестировать как будет интерпретироваться PHP код, вставленный в HTML документ. Открываем на редактирование index.html:

Добавим несколько строк PHP кода в самое начало файла, этот код будет задавать переменную $day, присваивая ей текущее значение дня недели. И потом в теле HTML документа мы выведем значение переменной $day:

Когда вы обратитесь браузером по адресу foo.localhost, вы должны увидеть какой сейчас день недели с учетом часового пояса.

На этом настройка Apache завершена, и ваш компьютер теперь представляет собой практически полноценный веб-сервер.

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

Конечно, немаловажный вопрос о версии PHP. К сожалению, в Sierra используется уже немного подустаревший и в плане функционала и в плане производительности PHP 5.6.3. В High Sierra, насколько мне известно уже предустанавливается PHP 7.1. В любом случае, обновление до 7.2 крайне желательно, но эту тему мы рассмотрим уже в другой статье.

Я на льве Macosx. Служба запущена и работает на localhost: 8080.

Эта служба представляет собой apache + php в пакете entreprisedb.

Как убрать автозапуск?

4 ответа

1) Автозапуск обычно отсутствует в User-Autostart-Items, но вы все равно должны их проверить:

Откройте Системные настройки > Пользователи > Выберите своего пользователя > Начальные объекты .

Проверьте, не запущено ли что-то, что вы хотите деактивировать, и сделайте это, если.

2) Обычно запуск apache обрабатывается службой launchd: вы можете изменить это вручную или с помощью старого небольшого инструмента под названием "Lingon". Чтобы сделать это вручную, вам нужно найти папки с запуском:

Там вы найдете .plist-файлы, которые определяют, когда и с чего начать. Чтобы удалить объект из автозапуска, используйте команду launchctl на терминале, чтобы удалить его из фактического запуска, а затем просто удалите файл.

Убедитесь, что вы не удалили неправильные файлы! Это может привести к фатальной ситуации на вашей машине. Кстати: файлы .plist можно прочитать с помощью BBEdit, TextWrangler или PropertyList Editor из Инструменты разработчика Apple.

В Mountain Lion (OSX 10.8.5) мне удалось отключить сервер Apache, поставляемый с OSX, с помощью следующей команды:

Эта конкретная команда, вероятно, не будет работать, если другая версия Apache была установлена ​​через MacPorts или HomeBrew.

Использование sudo важно, поскольку Apache необходимы привилегии root для работы на защищенном порте с низким номером (порт 80).

Ответ Эрика: это почти полный список мест, где можно найти элементы автозагрузки. Есть еще два места, где я обнаружил, что несколько приложений запускаются, даже если вы нажимаете SHIFT во время входа в систему.

Вы можете прочитать их, используя:

по умолчанию читать /private/var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist

по умолчанию sudo читать /private/var/db/launchd.db/com.apple.launchd/overrides.plist

Достаточно сделать sudo apachectl stop .

Затем для начала сделайте sudo apachectl start . Это также заставит веб-сервер запускаться при запуске системы.

Это работает, как я вам говорю, потому что эти команды вызывают под капотом «launchctl». Вы можете проверить это, запустив

Это привело к тому, что на моей машине работало две версии Apache2: 2.2 и 2.4. При запросе в терминале, для которого работает apache, ответ был 2.4, но при попытке открыть экземпляр моей программы на моем виртуальном хосте я не смог добраться до страницы.
То, что произошло после этого, сбито с толку, потому что другие люди работают над ним, пытаясь решить его, и они меняют и перемещают файлы, поэтому, когда я вернул свой компьютер, я даже не знал, с чего начать, чтобы понять, где я был, поэтому Я попытался удалить обе версии Apache и переустановить 2.4.

Позже я добавил следующее в файл hosts в папке / etc (который не совпадает с / usr / local / etc, этот находится в корневом каталоге, на один уровень выше / usr):

Я запустил apachectl configtest и получил синтаксис ОК. Я запустил php -v и получил PHP 5.4.45 (cli) (сборка: 23 ноября 2016 г., 11:12:05), так что все работает.

У меня все те же проблемы.

Что я действительно не понимаю, так это структура всех папок, потому что я пытаюсь следовать другим руководствам, но они, похоже, указывают на папку apache2, которую я должен был стереть, пока не должен был пытаться удалить старые версии и, по-видимому, он не был воссоздан во время переустановки (/ etc / apache2 / users). У меня нет папки apache2 в моей папке etc, которая у меня есть на корневом уровне, поэтому я предполагаю, что мне нужно искать / users в / etc / apache2, который у меня есть в / usr / local, но в этой папке я только есть каталог 2.4.

Меня крайне смущает организация всех этих каталогов и файлов, и я не могу понять, были ли они перемещены людьми, которые пытались мне помочь, если я случайно стер это / etc / apache2 / пользователи при удалении этих предыдущих версий или если я просто испортил слишком много разных руководств.

Итак, мой вопрос:

Если нет, то как я могу удалить apache чистым способом, убедившись, что я не удаляю важные файлы, которые не должны быть затронуты, и в то же время убираю все те, которые создадут конфликт с недавно установленной версией ?

Решение

После долгих исследований и совместной работы единственным способом заставить Apache работать снова было восстановление заводских настроек для моей ОС и возврат к организации по умолчанию.
Теперь мои папки выглядят чистыми, и Apache работает на порте 80, как и положено вместо 8080. Теперь я приступлю к созданию виртуального хоста для myApp.


CatalinaMAC OSX
Предварительные условие для инструкции:

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

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

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

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

Конфигурация Apache.

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

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

1. Найдите в файле Listen 8080 и измените на Listen 80;

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

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

Apache MacOS Catalina in user home folder

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

Читайте также: