- 背景
在linux系统下,通过yum方式安装nginx后 通过nginx命令
nginx
可以启动nginx
但是作为测试或者生产服务器,我们需要配置开机自启动,这时候需要用服务方式启动
yum安装后的nginx 已经默认生成了服务启动方式的 nginx.service文件
按照正常情况 是可以通过服务启动方式
systemctl start nginx
进行启动
- 问题
通过systemctl start nginx启动的时候报错
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
一直无法找到问题
于是打开nginx启动报错日志
sudo tail -f /var/log/nginx/error.log
发现是权限的问题 于是使用
sudo setenforce 0 # 临时禁用 SELinux
展示禁用SELinux
然后使用systemctl start nginx顺利启动了nginx
之后继续配置开机自启动
systemctl enable nginx
结果报错
Failed to execute operation: File exists
在看nginx启动日志 原因是加载nginx.service的问题 系统中有两个nginx.service文件
原因是自己在/etc/systemd/system下面创建了一个
删除后设置systemctl enable nginx
校验是否设置成功
systemctl is-enabled nginx
设置成功
- 验证
重启服务器 验证开机自启是否成功
结果还是没有自启动
继续排查 原来临时禁用 SELinux 重启无效
需要为nginx单独设置SELinux 权限
方法
- 修改selinux 为关闭(停用)
- 编辑vi
/etc/selinux/config
文件,设置SELINUX=disabled
。之后将系统重启一下
至此 nginx开机自启动生效