Есть две вещи, которые могут быть причиной проблемы: активная встроенная в Apple служба совместного использования веб-сайтов или все еще активные процессы зомби XAMPP.
Если это вызвано совместным использованием веб-страниц Apple, вы можете справиться со всем этим, перейдя в « System Preferences…
и выбрав « Sharing
. Оказавшись там, снимите флажок Web Sharing
который в основном просто Apache httpd
- и ваша проблема должна быть решена.
Тем не менее, если это в основном «зомби» экземпляр Apache, запущенный после некоторых настроек XAMPP, лучше всего сделать что-то вроде следующего:
Сначала запустите lsof
(список открытых файлов), в котором перечислены все файлы, активно открытые в системе.
sudo lsof | grep MAMP | grep apache
Обратите внимание на две команды grep
конвейеру? Что я делаю, так это получаю список открытых файлов, затем фильтрую те, у которых путь к файлу подключен к MAMP - или, в вашем случае, меняем его на XAMPP или любую папку / каталог, в котором он запущен - и я фильтрую apache
в пути. Список должен выглядеть примерно так:
httpd 2204 jake 2w REG 1,2 24685 17953784 /Applications/MAMP/logs/apache_error.log
httpd 2211 jake 2w REG 1,2 24685 17953784 /Applications/MAMP/logs/apache_error.log
httpd 2212 jake 2w REG 1,2 24685 17953784 /Applications/MAMP/logs/apache_error.log
httpd 2213 jake 2w REG 1,2 24685 17953784 /Applications/MAMP/logs/apache_error.log
httpd 2214 jake 2w REG 1,2 24685 17953784 /Applications/MAMP/logs/apache_error.log
httpd 2215 jake 2w REG 1,2 24685 17953784 /Applications/MAMP/logs/apache_error.log
httpd 2216 jake 2w REG 1,2 24685 17953784 /Applications/MAMP/logs/apache_error.log
Хорошо, это целый список процессов. Apache использует концепцию наличия одного родительского процесса с множеством дочерних процессов, порожденных для обработки трафика. Поэтому, если вы убьете дочерний процесс, родительский процесс заметит его и возродит нового дочернего процесса.
Теперь, посмотрев на этот список, обычно наименьшее число в этом списке процессов будет родительским (поскольку он запускается раньше, чем другой дочерний процесс, разумеется), поэтому вы должны убить его, чтобы уничтожить все процессы. Так что в этом случае процесс с наименьшим номером в списке - 2204
, поэтому просто запустите эту команду:
kill 2204
И тогда родительский процесс уничтожается, и все дочерние процессы также должны удаляться. Тогда порт 80
должен быть снова доступен.