nginx代理php

前言

原理

nginx 本身不会对php文件进行解析。对PHP页面的请求将会被nginx交给FastCGI进程监听的IP地址及端口,由php-fpm(第三方的fastcgi进程管理器)作为动态解析服务器处理,最后将处理结果再返回给nginx。

先知

  • nginx.conf
    nginx 配置代理文件
  • PHP-FPM(PHP FastCGI Process Manager)
    PHP FastCGI 进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。
    PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。

步骤

系统环境

Ubuntu 18.04.5 LTS
nginx version: nginx/1.14.0 (Ubuntu)
PHP 8.0.3 (cli) (built: Mar 5 2021 07:53:56) ( NTS )

一、配置安装php-fpm

  1. 查看配置
    cd /etc/php/8.0/fpm/pool.d
    vim www.conf
    在这里插入图片描述
    记录listen的值 为:/run/php/php8.0-fpm.sock
  2. 测试运行php-fpm
cd /usr/sbin
php-fpm8.0 -t
php-fpm8.0 #运行

在这里插入图片描述

二、配置php页面

在这里插入图片描述

三、配置nginx

  1. 配置代理
    vim /etc/nginx/conf.d/wordpress.conf
server {
        listen          80; 
        server_name  blog.caesarding.space; # 域名
        root   /var/www/wordpress; # php页面路径
        index  index.html index.htm index.php;

        location ~ \.php {
                # fastcgi_pass   127.0.0.1:9000; # tcp协议
                fastcgi_pass   unix:/run/php/php8.0-fpm.sock; # 保持和www.conf一致
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
#               fastcgi_split_path_info ^(.+\.php)(/.*)$;
#               fastcgi_param PATH_INFO $fastcgi_path_info;
                include        fastcgi_params;
        }   
}
  1. 重启nginx服务
    systemctl restart nginx

四、访问测试

我的wordpress博客

参考