用户登录

Linux 系统里面运行的服务都会使用一个特定的用户,比如 NGINX 的工作进程,默认会使用 nginx 这个用户去运行,PHP-FPM 默认会用 php-fpm 这个用户去运行。这些我们都可以在服务的各自的配置文件里面去修改。

您需要了解一下,为什么这个很重要。因为 Linux 系统里面的文件还有目录会有几个级别的权限,它们的拥有者的权限,所属的用户组的权限,还有其它人的权限。关于权限,您可以参考宁皓网的 Linux 文件与目录权限 这个课程。

比如 PHP-FPM ,想要往一个目录里面写入文件,那么运行 PHP-FPM 所使用的用户,就应该对这个目录拥有可以写入的权限。或者这个用户所属的那个用户组,对这个目录拥有可以写入的权限。

我们经常遇到的应用不能正常使用,比如不能启动,不能上传文件等等,这些问题基本上就是跟文件和目录的权限有关。 下面,我们可以先查看一下系统里面正在运行的进程,看一下这些进程都是用哪个用户运行的 ... 要用的是 ps 这个命令 ... 在它后面,我们可以再添加一些选项 .. aux ,这三个选项可以给我们显示出系统里的全部的进程,还会显示这些进程使用的用户 ...

ps aux

会列出很多东西,可以再过滤一下 ... 在这行命令的后面,加上一个 | ,然后输入 grep,接着是一个关键词,比如先看一下 php 相关的进程 ..

ps aux | grep php

你会看到, php-fpm 的 master process ,主进程,用的是 root 这个用户运行的,主要干活的其实是下面这些,它们都是用 vagrant 这个用户运行的 ... 这是因为我们修改了 PHP-FPM 的配置文件,把它的用户修改成了 vagrant 。

一般我们不需要修改这个用户,不过,在用 Vagrant 管理的虚拟机上,主机与虚拟机的共享目录的拥有者默认就是 vagrant 这个用户,而且你在虚拟机上不能使用 chown 去修改这个共享目录还有它里面包含的所有的文件或者目录的拥有者。或者所属的用户组。

PHP-FPM 想要写入文件到这个共享目录里面,就必须拥有写入权限,目录的写入权限一般只有它的拥有者才有。我们又不能去修改这些目录的拥有者,所以只能把运行 PHP-FPM 服务的用户修改成 vagrant 这个用户。

不过这样就会遇到一系列的其它的问题,在后面的视频里我们会看到。 下面,我们再去看一下 NGINX 服务的用户 ...

ps aux | grep nginx

这里显示,NGINX 的 master process ,主进程使用的用户是 root ... 真正干活,接待服务的是 NGINX 的 worker process,工作进程 ... 运行它的用户现在是 nginx 。

查看一下 NGINX 的主配置文件 .. sudo less /etc/nginx/nginx.conf ,这里 user 指令后面的东西,就是 NGINX 的工作进程所使用的用户,你会看到,默认就是 nginx 这个用户。

再去看一下 PHP-FPM 的配置文件 ... sudo less /etc/php-fpm.d/www.conf 查找一下 user= ... 因为我之前修改过这个 user 的值,所以它的值会是 vagrant ,默认这个用户应该是 php-fpm 。

0:00
0:00
0:00
0:00

知道是谁在运行服务《 LEMP 网站应用运行环境 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点