nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
这通常是由于权限问题引起的。
Nginx 默认监听端口 80,而端口号低于 1024 被视为特权端口,只有特定的用户(例如 root 用户)才有权限绑定到这些端口上。因此,当你尝试以非特权用户(例如普通用户)身份启动 Nginx 并绑定到端口 80 时,会出现权限被拒绝的错误。
解决方法:
-
使用特权用户:以 root 用户身份运行 Nginx,这样它将能够绑定到端口 80。但这并不是一个安全的做法,因此只有在必要时才应该这样做。
-
更改端口:将 Nginx 配置文件中的监听端口改为大于 1024 的其他端口,例如 8080。这样,非特权用户就可以启动 Nginx 了。
-
使得 Nginx 运行在 root 权限下:
cd /usr/local/nginx/sbin/ chown root nginx chmod u+s nginx 或者: cd /usr/local/nginx/sbin/ sudo chown root nginx sudo chmod u+s nginx