есть две вещи, которые могут быть причиной проблемы: встроенный в веб-сервис обмена Apple, будучи активным или зомби XAMPP процессы по-прежнему активны.
если это вызвано веб-обмена Apple, вы можете справиться с этим все, перейдя к System Preferences…
и выберите Sharing
. Оказавшись там, снимите флажок Web Sharing
- который в основном просто Apache httpd
-и ваша проблема должна быть решена.
что сказал, Если это в основном" зомби " экземпляр Apache работает после некоторых XAMPP tweaks, лучше всего сделать что-то вроде следующего:
во-первых, работать 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
и тогда родительский процесс убит, и все дочерние процессы также должны отпасть. Тогда port 80
должно быть доступно снова.