我对Linux相当陌生。我有几个网站想用 Nginx 在我的 CentOS 7 VPS 上托管。
Nginx 应该在启动时启动,但由于某些权限问题而失败,我知道哪个文件有问题,但我不知道应该有什么权限才能让 Nginx 开心。
我已经在截屏视频中捕捉到了正在发生的事情。
我错过了什么?正如您从截屏视频中看到的那样,nginx:nginx
是为站点目录中的所有文件设置的用户和组。
我假设我不需要www-data
用户和组,因为 Nginx 有自己的用户和组(nginx:nginx
)?
CentOS 使用 SELinux 来限制 http 服务器。当您使用非默认配置(非典型位置的日志文件、启用服务器端脚本等)时,您可能需要调整 SELinux 策略。
SELinux 在审计日志 (
/var/log/audit/audit.log
) 中记录策略访问拒绝,用于建议和策略生成的默认工具包括audit2why
和audit2allow
.解决 SELinux 权限问题的常用步骤包括调整策略布尔值或(/和)添加和应用文件标签规则。我已经更一般和详细地解释了这个主题: Configure SELinux to allow daemons to use files in non-default locations。
我建议检查
audit2allow
建议的内容。您的问题可能会通过启用布尔策略选项来解决。如果布尔调整还不够,您需要添加文件标签规则。有关正确的文件上下文,请参阅httpd_selinux
手册页。