我建议这里有三个可能的问题。
- 端口 80 已在使用中。
- 您没有以 root 身份运行应用程序(如果您不是 root,则无法绑定到端口 <1024)
- http-server 没有正确绑定
要检查端口 80 是否已在使用中,请尝试
netstat -lntu | grep :80
如果端口 80 已在使用中,您应该会看到类似
tcp6 0 0 :::80 :::* LISTEN
您将需要关闭端口 80 上运行的所有内容(apache?nginx?)
要检查您是否真的可以绑定到端口 80,请尝试从控制台运行 http-server 而不是通过 npm 即
sudo http-server -a [my ip address] -p 80 -c-1
如果上述方法有效,您应该能够以 root 身份运行 npm 来启动您的 http-server,即
sudo npm start
您可能需要从 package.json 中删除 sudo:
"start": "http-server -a [my ip address] -p 8065 -c-1"
我们需要确保 http-server 在您的系统上正常工作。我们将使用基于控制台的 Web 浏览器 w3m 对其进行测试。
sudo apt-get install w3m
如果您还没有w3m,您可能需要安装它。
- 创建一个新目录。
mkdir /tmp/testing
- CD 进入新目录
cd /tmp/testing
- 使用 `http-server 启动 http-server。-a 本地主机 -p 1234
- 使用 w3m访问http://localhost:1234
w3m http://localhost:1234/
- 使用 `http-server 启动 http-server。-a 本地主机 -p 80
- 在 w3m中访问http://localhost
w3m http://localhost/
是否有效?