XAMPP не запускает Apache на Mac OS X 10.6.8 Snow Leopard

когда я пытаюсь запустить Apache из панели управления XAMPP (Mac OS X 10.6.8 Snow Leopard), я получаю следующее всплывающее окно ошибки, и Apache не запускается:

/Applications/XAMPP/xamppfiles/bin/apachectl: line 70: ulimit: open files: cannot modify limit: Invalid argument
(48)Address already in use: make_sock: could not bind to address [::]:80

XAMPP работал отлично 10 минут назад. Я остановил Apache, чтобы добавить .conf файлы и не удалось перезапустить. Я удалил все новое .conf файлы (т. е. отменить его, как это было раньше), но теперь я получаю выше сообщение.

Я проверил AppMonitor и я вижу httpd процессы (по _www вложенные в корневой). Просто попытался бросить их, но они автоматически перезапускаются на новых идентификаторах процессов, и это не решило проблему.

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

5
задан JakeGould
01.02.2023 3:11 Количество просмотров материала 2660
Распечатать страницу

3 ответа

Он жалуется на порт 80 уже используется. В сценариях, подобных вашему, это обычно вызвано тем, что Apache уже (или все еще) работает.

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

0
отвечен Der Hochstapler 2023-02-02 10:59

Это permentaly отключить файл httpd.

sudo launchctl unload -w /System/Library/LaunchDaemon/org.apache.httpd.plist
0
отвечен Arsalan 2023-02-02 13:16

есть две вещи, которые могут быть причиной проблемы: встроенный в веб-сервис обмена 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 должно быть доступно снова.

0
отвечен JakeGould 2023-02-02 15:33

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх