以nginx用戶執行 ./nginx 出現下面報錯
nginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /home/nginx/nginx_dev/conf/nginx.conf:2
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
非root 用戶不可以使用1024以下的端口.
解決辦法
1.修改配置文件,將端口設置爲1024以上的
2.修改用戶權限
所有用戶都可以運行(因爲是755權限,文件所有者:root,組所有者:root)
chown root.root nginx
chmod 755 nginx
chmod u+s nginx
此方式,不修改nginx端口號,無法運行.
3.在sbin目錄下 sudo ./nginx
這種方式可能出現下述錯誤.
nginx 不在 sudoers 文件中。此事將被報告。
sudo命令可以讓你以root身份執行命令,來完成一些我們這個帳號完成不了的任務。
其實並非所有用戶都能夠執行sudo,因爲有權限的用戶都在/etc/sudoers中呢。
我們可以通過編輯器來打開/etc/sudoers,或者直接使用命令visudo來搞定這件事情。
打開sudoers後,像如下那樣加上自己的帳號保存後就可以了。
root ALL=(ALL:ALL) ALL
nginx ALL=(ALL:ALL) ALL
sudoers的權限是0440,即只有root才能讀。在你用root或sudo後強行保存(wq!)即可。