Вопрос: OSX, Не удалось прослушивать 0.0.0.0:80 (причина: разрешение отклонено)


Я на OSX Mavericks. Я установил PHP 5.5 из http://php-osx.liip.ch/, Когда я перехожу к localhost в браузере, я получаю страницу с надписью «It Works!». который не является страницей, которую я создал, поэтому я не уверен, где она находится. Это из PHP-установки или просто Apache?

Когда я открываю свою IDE (PHPStorm) и запускаю веб-сайт, он работает, если я использую порт, например, 8080. Если я установил порт на 80, он терпит неудачу, и в IDE сказано:

/ usr / local / php5 / bin / php -S 0.0.0.0:80 -t / mywebsitepath /

Не удалось прослушивать 0.0.0.0:80 (причина: разрешение отклонено)

Когда я искал эту конкретную ошибку, все, что я нашел, это помощь для NGINX, но я использую Apache. Что мне нужно изменить, чтобы иметь возможность запускать мой код локально на порту 80?

Я хочу сделать это, поэтому я могу использовать localhost вместо localhost: 8080.


4
2018-01-29 20:04


Источник


Поскольку вы получаете страницу из локальный, значит, какое-то программное обеспечение на вашем компьютере уже использует порт 80. Две программы не могут использовать один и тот же порт одновременно. - Ben Voigt
Как я могу увидеть, что в настоящее время использует его? Я предполагаю, что это происходит во время запуска. - Justin
Для этого см. Кто слушает данный порт TCP на Mac OS X? - Ben Voigt
Когда я делаю sudo lsof -i TCP:80 | grep LISTEN Я не получаю никаких результатов. - Justin
вы не отключили номер порта-> поиск имени, поэтому он мог бы выводить TCP:http (Я не знаю о Mac lsof, но netstat на других ОС). Проверьте результат просто sudo lsof -i TCP чтобы посмотреть, в каком формате он находится. - Ben Voigt


Ответы:


Порты ниже 1024 являются привилегированными и не могут быть привязаны никем, кроме root. Поскольку вы не можете запускать свою среду IDE с правами root, я бы установил прокси-сервер Nginx, идущий от порта 80 до порта 8080, должен быть прост в использовании, есть много учебников = D


14
2018-01-29 20:09



Или прокси-сервер Apache, если вы более знакомы с этим. Тем не менее, Nginx. О, и поскольку у вас есть Apache Apache, запущенный на порту 80, вам придется остановить его (или использовать Это как прокси) - Yarek T
Возможно, он мог запустить свою среду IDE как root .. '' sudo open / Applications / PHPStorm '' - хотя я не уверен, что эта среда IDE использует Workspaces так, чтобы он мог указать ее на проект .. Для dev / testing, работа на порте выше 1024 будет казаться чуть меньше усилий, чем обратный прокси nginx, хотя их довольно легко установить. - James T Snell
Если OSX Apache работает на порту 80, и я не могу использовать его из своей IDE, есть ли какой-нибудь момент в нем? Было бы разумно отключить его? Это возможно? - Justin
@Justin Если у вас нет чего-то, что требуется для порта 80 даже в разработке, я бы просто использовал порт 8080. Он создает наименьшее количество головных болей / проблем работы и безопасности. - Darth Android
Благодарю. В то время как я смог заставить Apache остановиться, так что адрес локального хоста был освобожден (не более «Он работает!»), Я по-прежнему не мог запустить свою среду IDE на порт 80 по той причине, которую вы описываете в своем ответе. Я просто рассмотрю уродливый URL-адрес для разработчика. - Justin


IP 0.0.0.0 зарезервирован стандартами Ethernet, которые вы не можете использовать, вместо этого используйте 127.0.0.1. Но, как я знаю, вам действительно не нужно вводить IP-адрес, чтобы сообщить Серверу о том, что он должен слушать, для этого вам просто нужен порт.


-4
2018-01-29 20:18



0.0.0.0является INADDR_ANY, в качестве адреса прослушивания имеет особое значение не фильтровать по IP-адресу. - Ben Voigt