在服务器上运行的 Web 应用里面,有些目录或者文件需要可以写入的权限,这就需要我们去为这些目录或者文件去分配合适的权限,一般可以把它们的拥有者设置成 php-fpm 和 nginx 服务使用的用户就可以了。
默认 nginx 服务使用的用户叫做 nginx ,而 php-fpm 使用的用户默认是 apache。我们可以把这些服务使用的用户,改成一个统一的用户,比如可以把 php-fpm 服务使用的的用户修改成 nginx 。
下面,我们先查看一下 php-fpm 服务这个进程 ... 查看系统的进程,用的是 ps 这个命名 ... 这里可以再搜索一下 php 相关的进程 ... ps aux|grep php
在返回来的信息里面,你会发现 ... php-fpm 这个服务都是用 apache 这个用户运行的 ...
再去看一下 nginx 这个服务的用户 ... ps aux|grep nginx ...
nginx 服务用的是 nginx 这个用户运行的 ...
下面,我们可以去把 php-fpm 服务使用的用户修改成 nginx 这个用户 ...
用 vim ,去编辑一下 php-fpm 的配置文件 ... 在根目录下面的 etc ,php-fpm.d 里面 ... 就是 php-fpm 的配置文件 ... 先进入到这个目录 ...
查看一下这里面的东西 ... ls ...
这里有一个 www.conf ... 去编辑一下这个文件 ...
然后输入一个 / ,后面再加上 user ... 可以在这个文件里面搜索 user 这个关键词 ... 按下小写的 n ,可以查看下一处包含 user 的地方 ...
浏览到这个 user = apache 这行代码 ... 它的功能就是指定了 php-fpm 服务所使用的用户 ... 这里我们把 apache 改成 nginx ...
下面的 group ... 是一个群组 ... 也可以把它改成 nginx ...
保存一下这个文件 ... 输入 :wq ....
现在,php-fpm 还有 nginx 这两个服务都会使用同一个用户运行了,也就是 nginx ... 然后把想要拥有写入权限的目录还有文件的拥有者,设置成 nginx 这个用户就可以了 ...
比如我们去修改一下 phoenix.ninghao.net 这个虚拟主机的主目录的拥有者 ... 先进入到根目录下面的 alidata1 ... www ... 查看一下它里面的东西 ... 输入 ls ...
你会看到这个 phoenix.ninghao.net 这个目录 ..
如果想显示的更详细一些,可以这样 ... 输入 ls -la ... 这样会显示出这个目录的拥有者,还有群组 ...
现在,它的拥有者是 root 这个用户,所属的群组也就是 root ...
下面,我们把它的拥有者修改成 nginx ... 可以使用 chown 命令 .. chown -R 这个大写的 R 选项,可以递归的去修改目录的拥有者 .. 在后面加上要修改成的用户的名字 ... nginx ... 最后再加上要修改的目录 ...
完成以后,再查看一下 ...
现在, 你会看到, phoenix.ninghao.net 这个目录的拥有者,就已经变成了 nginx 这个用户了 ...
最后,别忘了再重新加载一下 php-fpm ...
再查看一下进程 ...
现在 php-fpm ,就会用 nginx 这个用户去运行了 。关于 Linux 系统的目录和文件的权限问题 ... 你可以参考宁皓网的 《CentOS:在阿里云上运行网站》这个课程。