非root用戶啓動nginx報錯

以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!)即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章