題 OSX,無法收聽0.0.0.0:80(原因:權限被拒絕)


我是OSX Mavericks的。我安裝了PHP 5.5 http://php-osx.liip.ch/。當我在瀏覽器中訪問localhost時,我得到一個頁面,上面寫著“它工作!”這不是我創建的頁面,所以我不確定它的位置。這是來自PHP安裝還是只是Apache?

當我打開我的IDE(PHPStorm)並運行網站時,如果我使用像8080這樣的端口,它就可以工作。如果我將端口設置為80,它會失敗並且IDE會說:

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

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

當我搜索那個特定的錯誤時,我找到的只是幫助 NGINX,但我正在使用Apache。我需要更改什麼才能在端口80上本地運行我的代碼?

我想這樣做,所以我可以使用localhost而不是localhost:8080。


4
2018-01-29 20:04


起源


因為你得到一個頁面 本地主機,則表示計算機上的某些軟件已在使用端口80.兩個程序不能同時使用同一個端口。 - Ben Voigt
我怎樣才能看到目前使用它的是什麼?我猜它是在初創時發生的事情。 - Justin
為此,請參閱 誰正在偵聽Mac OS X上的給定TCP端口? - Ben Voigt
當我做 sudo lsof -i TCP:80 | grep LISTEN 我沒有結果。 - Justin
你沒有關閉端口號 - >名稱查找,所以它可能正在輸出 TCP:http (我不知道Mac lsof但是 netstat 在其他操作系統上)。檢查just的輸出 sudo lsof -i TCP 看看它的格式。 - Ben Voigt


答案:


低於1024的端口具有特權,並且不能由root以外的任何人綁定。既然你不能以root身份運行你的IDE,我會設置一個從端口80到端口8080的Nginx代理,應該很容易做,有很多教程= D


14
2018-01-29 20:09



或者Apache代理,如果您對此更熟悉。雖然Nginx搖滾。哦,既然你在端口80上運行OSX的Apache,你就必須停止它(或者使用它 它 作為代理人) - Yarek T
他可能會以root身份運行他的IDE ..''sudo open / Applications / PHPStorm'' - 雖然我不確定IDE是否以可以指向項目的方式使用Workspaces。對於開發/測試,在1024以上的端口上運行似乎比nginx反向代理要少一點,儘管它們很容易建立。 - James T Snell
如果OSX的Apache在端口80上運行而且我無法在我的IDE中使用它,那麼它的運行是否有任何意義?把它關掉會有意義嗎?那可能嗎? - Justin
@Justin除非您在開發過程中特別需要端口80,否則我只使用端口8080.它創建了最少量的頭痛/工作和安全漏洞。 - Darth Android
謝謝。雖然我能夠讓Apache停止以便釋放本地主機地址(不再是“它工作!”頁面),但由於您在答案中描述的原因,我仍然無法在端口80上運行我的IDE。我只會處理dev的醜陋URL。 - Justin