(13)Permission denied: make_sock: could not bind to address [::]:80, Mac OS Lion

Nat*_*ate 5 apache-http-server port ruby-on-rails passenger osx-lion

我试图让乘客在我的家用电脑上工作,但遇到了这个问题。

当我尝试启动 Apache 时出现此错误。

(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)

当我测试 Apache 时,语法正常。

这是我在我的 Apache 配置文件中设置端口 80 的地方。

 52 NameVirtualHost *:80

 53 Listen 80
Run Code Online (Sandbox Code Playgroud)

不知道我做错了什么。

Cry*_*vok 9

问题是您没有以 root 身份启动 Apache - 默认情况下,在任何基于 unix 的操作系统上,只有 root 可以将进程绑定到 1024 以下的端口。

您可以选择使用高于 1023 的端口并记住在连接时指定它,或者确保以 root 身份启动 Apache。不幸的是,我不是 Mac 用户,我无法提供有关如何进行第二次操作的详细信息。


chx*_*chx 4

有帮助吗?

\n\n
\n
    \n
  1. 转到我的 System Preferences.app 并打开 \xe2\x80\x9cSharing\xe2\x80\x9d 窗格。禁用网络共享服务。

    \n\n

    在此输入图像描述

  2. \n
  3. 使用以下命令启动 Terminal.app 并停止 httpd (apache):

    \n\n
    sudo apachectl -k stop\n
    Run Code Online (Sandbox Code Playgroud)
  4. \n
  5. 进入 Activity Monitor.app 并搜索 \xe2\x80\x9chttpd\xe2\x80\x9d。选择两个进程并单击 \xe2\x80\x9cStop\xe2\x80\x9d。

    \n\n

    在此输入图像描述

  6. \n
  7. 关闭并启动我的 Mac(正确关闭,而不是重新启动!)

  8. \n
  9. 当 Mac 恢复运行时:进入 Terminal.app 并执行:

    \n\n
    sudo apachectl -k start\n
    Run Code Online (Sandbox Code Playgroud)
  10. \n
\n
\n