nginx/php-fpm及网站目录的权限设置

本文介绍如何正确配置Nginx和PHP-FPM的用户权限,遵循最小权限原则,确保网站安全运行。包括将Nginx及PHP-FPM设置为nobody用户运行,调整网站目录权限,并解决因权限问题导致的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

核心总结:nginx、php-fpm 进程所使用的用户,不能是网站文件所有者。 凡是违背这个原则,则不符合最小权限原则。

最佳实践:
nginx 以nobody运行
修改nginx.conf
user nobody
重启nginx服务器

php-fpm 也以nobody运行
编辑文件php-fpm.conf
user nobody
group nobody
重启php-fpm

网站目录设置为可读即可,某些需要写入权限的目录设置为777

nginx静态资源 403 forbidden
有可能是selinux的原因

临时关闭selinux
setenforce 0

永久关闭selinux
vi /etc/selinux/config
SELINUX=disabled

重启服务器

PS:
访问出现异常,chrome控制台报错ERR_INCOMPLETE_CHUNKED_ENCODING

查看日志 /var/log/nginx/error.log

open() “/var/cache/nginx/fastcgi_temp/4/09/0000000094” failed (13: Permission denied) while reading upstream,

原因是:
nginx会使用fastcgi_buffer_size指定的大小的缓冲区用于缓存fastcgi流的内容。当大小超出此大小时会继续用fastcgi_buffers指定的数量和大小申请缓冲区。如果依然超出此大小,会将多出的内容写入临时文件。上面日志中反应的就是nginx无权写入临时文件。

于是将/var/cache/nginx/用户也设为nobody

chown nobody:nobody -R /var/cache/nginx/

解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值