温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

nginx、php-fpm和mysql的用户权限如何配置

发布时间:2022-06-14 13:53:00 来源:亿速云 阅读:184 作者:iii 栏目:编程语言

这篇文章主要介绍了nginx、php-fpm和mysql的用户权限如何配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇nginx、php-fpm和mysql的用户权限如何配置文章都会有所收获,下面我们一起来看看吧。

nginx、php-fpm和mysql的用户权限如何配置

通常情况下,我们运行web应用的服务器有CentOS、Ubuntu、Debian等等的Linux发行版本。这时候,构成服务架构所必须的Nginx、php和MySQL等应用的权限控制就显得非常重要,各个服务对代码目录的权限要求各不相同,缺少某些权限会造成服务无法读写或运行的错误,降低了权限要求又会存在被入侵修改的隐患。

一、web服务器Nginx权限

PHP的运行框架通常都是结合Nginx组成LNMP或者结合Apache组成LAMP的架构,这里用Nginx作为例子讲述一下Nginx服务运行所需要的权限。
我们知道,Nginx本身不能解析PHP的语法,所以Nginx对于静态文件(如HTML等)会直接解析返回结果,但是对于PHP的文件,Nginx会转交给PHP的解释器php-fpm进行处理,处理完后再返回响应给客户端浏览器。

因此,我们代码目录下需要统一Nginx和php的服务所需权限。

①如果统一使用root用户,则一般游客账户无法访问应用,而nginx配置成以root运行的话会存在很大的安全隐患,一旦被攻击就会被获取root身份进行系统的一切操作。

②而如果统一将代码目录权限全部设置为rwxrwxrwx,则存在用户直接通过浏览器修改代码目录的隐患。

所以最好的办法就是统一归类到一个新的用户组里面,通过给该用户组分配Nginx和php运行必要的权限,来实现对web应用的权限目录管理。通常情况下,许多团队都会把这个用户组取名www,由www用户来统一管理代码目录权限。

我们可以看到Nginx的配置文件nginix.conf里面划分的运行权限就是配置到了www用户下,因此Nginx的子进程也是由www用户执行,可以通过ps aux | grep nginx来查看:

nginx、php-fpm和mysql的用户权限如何配置

可以看到nginx的主进程是root,其余子进程均是www的用户

nginx.conf的配置:

nginx、php-fpm和mysql的用户权限如何配置

二、php的权限配置

同样的,php的运行方式也是由主进程root运行,在子进程池(pool)里面配置由www用户执行,具体配置在php根目录下的etc\php-fpm.conf下,添加两行:

user = www
 group = www

即可,同样用ps aux | grep php可以查看进程使用的用户身份:

nginx、php-fpm和mysql的用户权限如何配置

三、MySQL服务的权限配置

通过ps aux | grep mysql可以看到MySQL服务是运行在mysql用户下的,该服务只需要我们在php代码连接mysql时带上mysql的用户名密码即可,不需要统一为www,因为数据层需要与业务逻辑层隔离开,保证底层数据的安全。mysql的授权主要是在mysql服务内新增用户和划分权限,用来控制php不同业务以不同权限范围的身份去连接,确保数据安全。

nginx、php-fpm和mysql的用户权限如何配置

四、总结

nginx配置:

user www www;

php-fpm:

user = www
group = www

目录:

drwxr-xr-x 就是755

关于“nginx、php-fpm和mysql的用户权限如何配置”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“nginx、php-fpm和mysql的用户权限如何配置”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI