在安装前,先了解下nginx和php之间的关系
nginx就像个传话官,把请求转发给php-fpm。这就需要知道php-fpm的联系方式, listen的值就是php-fpm的电话号。
当请求来的时候,nginx就给php-fpm打电话,说有个人找你,php-fpm就派个人出来接客人,派出的这个人呢,就是一个php进程。
看到这里相信聪明的你就明白了,php-fpm是负责管理调度php进程的。
言归正传开始配置
因为是个人电脑也就来个简单的直接使用apt命令了
sudo install nginx
sudo apt-get install php7.0-fpm php7.0-mysql php7.0-common php7.0-curl php7.0-cli php7.0-mcrypt php7.0-mbstring php7.0-dom
多装点php模块没坏处,省的到时候报错,后面如果缺少组件还可以继续安装,很方便。
如果是下载的源码包自己编译,就比较麻烦了,需要先安装一些以来的类库。
这里一切从简,主要是介绍nginx与php7是如何配合工作的。
执行上面两条命令后,软件就大功告成了。
首先我们先看一下php-fpm的配置/etc/php/7.0/fpm/pool.d/www.conf(如果是centos或编译安装,配置文件的地址会有所不同),在配置文件中找到
listen=/run/php/php7.0-fpm.sock
#也有可能是
listen=127.0.01:9000
不管是什么反正你记住listen=什么,这个很重要,这说明fpm在监听什么
下面看nginx的配置/etc/nginx/sites-enabled/default,(如果是centos或编译安装,配置文件的地址会有所不同),在配置文件中找到server{},这个代表你的虚拟主机。在其中找到
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
看到fastcgi_pass了吗,这个代表将请求转交给谁。给谁呢?没错聪明的你一定明白了,就是上面我们在php-fpm中监听的那个。
如果php-fpm中是listen=/run/php/php7.0-fpm.sock
那么nginx中要使用fastcgi_pass unix:/run/php/php7.0-fpm.sock;
如果php-fpm中是listen=127.0.01:9000
那么nginx中要使用fastcgi_pass 127.0.0.1:9000;