![阻止 Nginx 启动的文件夹权限](https://linux22.com/image/132264/%E9%98%BB%E6%AD%A2%20Nginx%20%E5%90%AF%E5%8A%A8%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%E6%9D%83%E9%99%90.png)
我对 Linux 还很陌生。我想在带有 Nginx 的 CentOS 7 VPS 上托管几个网站。
Nginx 应该在启动时启动,但由于某些权限问题而失败,我知道哪个文件有问题,但我不知道应该有什么权限才能使 Nginx 满意。
我已经捕捉到了正在发生的事情截屏视频。
我缺少什么?正如您从截屏视频中看到的,nginx:nginx
是站点目录中所有文件的设置用户和组。
我假设我不需要www-data
用户和组,因为 Nginx 有自己的用户和组(nginx:nginx
)?
答案1
CentOS使用SELinux来限制http服务器。当您使用非默认配置(非典型位置的日志文件、启用服务器端脚本等)时,您可能需要调整 SELinux 策略。
SELinux 在审核日志 ( /var/log/audit/audit.log
) 中记录策略访问拒绝,并且用于建议和策略生成的默认工具包括audit2why
和audit2allow
。
解决 SELinux 权限问题的常用步骤包括调整策略布尔值或(/和)添加和应用文件标签规则。我已经更普遍和更详细地解释了该主题的问题: 配置 SELinux 以允许守护进程使用非默认位置的文件。
我建议检查一下audit2allow
建议。您的问题可以通过启用布尔策略选项来解决。如果布尔调整还不够,您需要添加文件标签规则。对于正确的文件上下文,请参阅httpd_selinux
手册页。