2016-01-02 4 views
3

Я загрузил PhpStorm и установил всю необходимую конфигурацию. Когда я пытаюсь запустить проект на порту 80, я получаю эту ошибку.OSX: Не удалось прослушивать на localhost: 80 (причина: разрешение отклонено)

Failed to listen on localhost:80 (reason: Permission denied)

И когда я пытаюсь использовать любые другие порты, такие как 8080, я получаю эту ошибку.

Failed to listen on localhost:8080 (reason: Address already in use)

Я пробовал несколько различных случайных портов. Но я все время использую эту ошибку.

У меня установлен xampp. И когда я пытаюсь запустить url в браузере с портом, он отлично работает. Проблема в том, что он не работает с PhpStorm.

Я застрял.

+0

Попробуйте отключить xampp, прежде чем запускать проект в PHPStorm. В то же время у вас не может быть двух веб-серверов. – Stalinko

+0

Что вы подразумеваете под этим? – hellosheikh

+0

Кто выбрасывает ошибки, перечисленные выше? И что вы пытаетесь сделать в PHPStorm? – Stalinko

ответ

0
  1. Остановите свой сервер Apache от XAMPP.

  2. Запустите свой PHPStorm с привилегиями ROOT.

Если работает PHPStorm, отображается ваша ошибка, указанная Failed to listen on localhost:8080 (reason: Address already in use). ports 80 используется любым другим приложением. Попробуйте проверить используемые порты с помощью бесплатных инструментов. Остановите процесс с помощью порта 80 и попробуйте запустить phpstorm.

0

Описание ошибки очень ясно:

Ошибка:

Failed to listen on localhost:80 (reason: Permission denied)

  • Вы действительно не имеют разрешения на использование этого порта; и ошибка:

Failed to listen on localhost:8080 (reason: Address already in use)

  • Адрес, который вы пытаетесь использовать localhost:8080 уже используется другим процессом/программное обеспечение.

Обычно, если вы измените порт, это решит проблему: (например, 9090).


Но, если вы хотите узнать, какая программа использует порт в Unix (Mac OSX, Linux), вы можете использовать lsof команду:

Для этого:

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

sudo lsof -i :80

Это приведет к что-то вроде т его:

COMMAND PID USER FD TYPE    DEVICE SIZE/OFF NODE NAME 
httpd  82 root 4u IPv6 0x763617bed21ecc33  0t0 TCP *:http (LISTEN) 
httpd  226 _www 4u IPv6 0x763617bed21ecc33  0t0 TCP *:http (LISTEN) 

В этом результате мы можем видеть, что /usr/sbin/httpd прослушивает порт 80 на моей машине, то есть сервер Apache.

Чтобы узнать PID детали процесса, который прослушивает порт 80 вы можете использовать ps команду:

ps u PID_of_target_process

, который будет возвращать результат, похожий на этот:

USER PID %CPU %MEM  VSZ RSS TT STAT STARTED  TIME COMMAND 
root 82 0.0 0.0 2463324 4248 ?? Ss 9:48AM 0:00.93 /usr/sbin/httpd -D FOREGROUND 

Чтобы убить процесс с помощью pid, вы можете использовать команду kill, как показано ниже:

sudo kill -KILL PID_of_target_process

После того, как вы убьете процесс, порт будет снова доступен.

Смежные вопросы