PHP+FastCGI+Nginx动态请求处理配置
Nginx不支持对外部程序的调用,所以必须通过FastCGI接口实现对外部程序的调用从而实现对client动态页面请求的处理。
CGI的英文全称为Common Gateway Interface(公共网关接口),是Nginx和动态脚本程序的桥梁。Nginx通过FastCGI接口将动态请求发送给FastCGI,FastCGI中的Wrapper进程生成一个线程。将请求交给脚本解释程序运行,然后通过原来的socket将解释运行后的结果原路返回给Nginx,之后Nginx将结果交给client。
Nginx是通过套接字文件socket来将动态请求发送给wrapper,使用的是Tcp协议。wrapper通过CGI接口来接受请求。这样webserver和解释程序之间全然能够独立开发,这样避免了解释程序直接调用server的接口而导致的出错和崩溃以及安全性问题。并且能够使Nginx专心处理静态页面请求和转发动态请求。而将脚本解释器安装在还有一台server,使server的压力得到分摊。
CGI是作为PHP程序的补丁开发的,安装PHP首先安装其所依赖的库,之后在编译配置參数时增加对CGI的支持--enable-fpm --enable-cgi等选项。编译PHP的扩展模块。须要用到php中的phpize工具用来生成模块编译时的configure文件。假设执行phpize时无法生成configure文件,原因有:没有安装autoconf软件包。
php-fpm进程的配置文件为/usr/local/php/etc/php-fpm.conf 能够对php-fpm进行对应的配置。
Nginx配置支持fastcgi:
location ~ \.php${
root html;
fastcgi_pass unix:/tmp/fastcgi.soke //通过套接字文件和cgi建立联系,该文件在php-fpm.conf中设置
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME html$SCRIPT_FILE_NAME;设置參数
include fastcgi_params; //导入fastcgi參数配置文件。该文件在nginx安装时自己主动生成。
}
相关文章
- LNMP(linux+nginx+mysql+php)服务器环境配置
- windows下配置nginx+php环境
- CI框架在 nginx 服务器上配置 rewrite 去掉 index.php 的方法:
- nginx:413 Request Entity Too Large 及 修改 PHP上传文件大小配置
- PHP Socket编程 之 fsockopen异步请求执行https(ssl)站点方法分享
- php分享三十三:用php中的register_shutdown_function和fastcgi_finish_request
- Centos7下yum安装配置nginx与php
- Linux下安装php环境并且配置Nginx支持php-fpm模块
- vue3:vue+nginx+php进行服务端部署的配置(nginx/1.18.0 / vue@3.2.37)
- php 得到上周,本周,上月,本月,本季度,上季度
- php5.6源码安装及php-fpm配置与nginx集成
- php循环某个月的所有日期
- thinkphp6:配置应用的日志(thinkphp6.0.5 / php 7.4.9)
- centos8上配置openresty/nginx可访问php
- windows下配置nginx+php环境
- php安装&配置
- 如何搭建配置php开发环境
- php扩展yaf 按照配置
- CentOS+Nginx+PHP+MySQL详细配置(图解)