非root用户启动nginx报错

时光毁灭记忆、已成空白 提交于 2020-02-15 00:56:40

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!