首先,本文默认已安装nginx,安装方法可以参考https://mp.csdn.net/postedit/79930569
1.获取并解压PHP源文件
下载地址:http://www.php.net/downloads.php
$wget http://cn2.php.net/get/php-7.2.4.tar.gz/from/this/mirror //下载
$tar xvf mirror //解压
2.编译安装PHP
$cd php-7.2.4 //切换至解压后的目录
$./configure --prefix=/安装目录/php --enable-fpm --with-mysql=~/mysql /*此处 --prefix=指定安装目录,最好为绝对路径,~/mysql为mysql所在目录可以加入多个编译选项或扩展模块,“--enable-fastcgi”是启用对PHP的FastCGI支持,“--enable-fpm”是激活对FastCGI模式的fpm支持*/
$make //编译
$make install //安装
3.配置PHP
将配置文件复制到正确的位置:
$cp php.ini-development /安装目录/php/php.ini
$cp /安装目录/etc/php-fpm.conf.default /安装目录/etc/php-fpm.conf
$cp sapi/fpm/php-fpm /安装目录/bin
将 php.ini 文件中的配置项 cgi.fix_pathinfo 设置为 0 :
$vim /usr/local/php/php.ini //打开 php.ini
找到 cgi.fix_pathinfo=1 并将其修改为
cgi.fix_pathinfo=0
4.修改 php-fpm.conf 配置文件
$vim /安装目录/etc/php-fpm.conf
找到以下内容并修改
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = nginx
group = nginx
;listen.owner = nginx
;listen.group = nginx;listen.mode = 0660
若php-fpm.conf文件最后有include=/home/odin/huanlisuhuan_i/php/etc/php-fpm.d/*.conf,则上述设置在/安装目录/etc/php-fpm.d/www.conf.default中,可以执行:
$cp /安装目录/etc/php-fpm.d/www.conf.default /安装目录/etc/php-fpm.d/www.conf
$vim /安装目录/etc/php-fpm.d/www.conf
再进行上述修改
5.启动启动 php-fpm 服务
$./安装目录/bin/php-fpm
6.配置 Nginx 使其支持 PHP 应用:
$vim /nginx安装目录/nginx/conf/nginx.conf
修改默认的 location 块,使其支持 .php 文件:
location / {
root html;
index index.php index.html index.htm;
}
配置对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块, 取消默认的 PHP 配置块的注释,并修改为下面的内容:
location ~* \.php$ { //location 正则匹配到以php结尾的到这里解析
fastcgi_index index.php; //fastcgi_index 指明首页
fastcgi_pass 127.0.0.1:9000; //fastcgi_pass 指明了用哪里的php-fpm来解析
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; //fastcgi_param 指明的是php动态程序的主目录
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
7.重启 Nginx
$/nginx安装目录/nginx/sbin/nginx -s stop
$/nginx安装目录/nginx/sbin/nginx
8.测试
$rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
访问 http://localhost,将会显示 phpinfo() 。
通过以上步骤的配置,Nginx 服务器现在可以以 SAPI 模块的方式支持 PHP 应用了。 当然,对于 Nginx 和 PHP 的配置,还有很多可用的选项, 在可对应的源代码目录执行 ./configure --help 来查阅更多配置选项。
参考:
官方讲解:http://php.net/manual/zh/install.unix.nginx.php
博客实战Nginx与PHP(FastCGI)的安装、配置与优化:http://blog.51cto.com/ixdba/806622
博客Nginx系列2之Nginx+php:http://www.cnblogs.com/liaojiafa/p/6046226.html
别人的配置代码:https://github.com/vfhky/mylnmp