linux中关于php和nginx用户权限的一些东西

时间:2022-01-22 15:27:52

当我们启动nginx之后, 会有两个nginx进程(一个是master, 一个是worker).

master的用户身份是root, worker用户的身份是nobody. 在nginx中可以修改 worker 进程的用户身份, 默认的则是 nobody.

以上可以解释为什么之前访问网站目录下的某个文件夹中网页出现403错误了, 因为worker进程的用户身份是nobody, 而当时的文件夹的权限对于other来说没有x权限.

顺便一提, phpcgi的用户身份是root, 因为启动phpcgi的时候顺便用的sudo执行的, 我让phpcgi监听的是9000端口, 所以非root用户应该也可以, 据说是监听小于1024的端口号需要root权限.

当phpcgi进程的用户身份是root的时候, 还可以发现在php中上传的文件的所有者和所属组也是root.