Loading... > 本文主要讲解 Nginx 启动失败的解决办法。 > systemctl start nginx 无法启动 # 失败原因 多半可能是两种原因: 1. Nginx 的 80 端口被占用。 2. selinux 阻止。 3. 权限问题 # 一、端口占用 ## 查看端口使用情况 ```bash netstat -ntlp ``` 看一下 `80` 端口是否被占用,如果被占用需要更改占用程序的运行端口,或者杀死被占用程序。 ## 查看占用进程 ID ``` ps aux | grep 进程名 ``` ## 然后杀死进程 使用 kill 杀死进程 ``` kill -9 6732 ``` 6723 为进程 ID 这样杀死进程后,就可以直接启动 Nginx 了。 # 二、Selinux 阻止 查看 selinux 是否开启 `getenforce` 可以查看 `SELinux` 状态,如果输出为 `enforcing` 表示已开启 ## 临时关闭 `selinux` ``` setenforce 0 ``` 设置 SELinux 成为 permissive 模式 ``` setenforce 1 ``` 设置 `SELinux` 成为 `enforcing` 模式 ## 永久关闭 `selinux` 修改 `/etc/selinux/config` 文件 将 `SELINUX=enforcing` 改为 `SELINUX=disabled` 重启机器即可 # 三、权限问题 ## 403 Forbidden 错误 nginx 配置好后,访问页面出现 403 Forbidden 错误。可查看错误日志来判断问题原因。 在 /etc/nginx/nginx.conf 文件中指定了错误日志文件名,默认是 /var/log/nginx/error.log,使用命令 ``` tail /var/log/nginx/error.log ``` 查看,如果发现有类似 index.html failed (13: Permission denied) 的信息,通常是 nginx 用户权限和网站目录文件的用户权限不一致的原因(因为网站目录文件的所属用户通常是 xxx 或 root,而 nginx 的默认工作进程用户是 nginx,这可以在 /etc/nginx/nginx.conf 中修改),我的解决方法是不修改 nginx.conf,而是以 root 用户登录,同时把网站目录文件放在 /usr/share/nginx/xxx 下(保证所有文件的所属用户都是 root) 之后重启 nginx,就可以正常访问了。 End Thanks! 最后修改:2020 年 09 月 29 日 02 : 36 PM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 ×Close 赞赏作者 扫一扫支付 支付宝支付 微信支付