时间:2021-05-26
CGI的英文全称为Common Gateway Interface(公共网关接口),是Nginx和动态脚本程序的桥梁,Nginx通过FastCGI接口将动态请求发送给FastCGI,FastCGI中的Wrapper进程生成一个线程,将请求交给脚本解释程序执行,然后通过原来的socket将解释执行后的结果原路返回给Nginx,之后Nginx将结果交给客户端。
Nginx是通过套接字文件socket来将动态请求发送给wrapper,使用的是Tcp协议。wrapper通过CGI接口来接受请求。这样web服务器和解释程序之间完全可以独立开发,这样避免了解释程序直接调用服务器的接口而导致的出错和崩溃以及安全性问题。而且可以使Nginx专心处理静态页面请求和转发动态请求,而将脚本解释器安装在另一台服务器,使服务器的压力得到分摊。
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安装时自动生成。 }声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
nginx通过FastCGI运行PHP比Apache包含PHP环境有明显的优势,最近有消息称,PHP5.4将很有可能把PHP-FPM补丁包含在内核里,nginx
开启php-fpm状态页有助于我们分析当前php请求的情况,来决定php-fpm参数是否设置合理。nginx配置:location/status{fastcgi
第一:修改nginx配置注意:所有配置都是基于lnmp1.4的一键安装环境的根据自己的nginx配置,找到正确的fastcgi.conf,修改fastcgi_p
nginx+php出现502badgateway,一般这都不是nginx的问题,而是由于fastcgi或者php的问题导致的,常见的有以下几种。1.php.in
开发环境codeigniter2.14PHP5.4.18nginx1.4.2Codeigniter配置打开codeignite的config.php文件修改如下