广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >FastCGI怎么安装PHP
  • 611
分享到

FastCGI怎么安装PHP

phpfastcgi 2020-03-16 23:03:24 611人浏览 才女
摘要

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑FastCGI怎么安装php?Nginx与PHP(FastCGI)的安装、配置和优化什么是FastCGIFastCGI是一种可伸缩的、高速的在Http server和动态

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑

FastCGI怎么安装phpNginx与PHP(FastCGI)的安装、配置和优化

什么是FastCGI

FastCGI是一种可伸缩的、高速的在Http server和动态脚本语言间通信的接口。FastCGI也被众多脚本语言支持,包括PHP。

FastCGI是从CGI发展而来的。FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分离开,同时在脚本解析服务器上启动一个或多个脚本解析守护进程。

当HTTP服务器每次遇到动态城区时,直接交付给FastCGI进程执行,然后返回结果给浏览器,提高了系统的整体性能。


Nginx+FastCGI运行原理

Nginx并不支持对外部程序的直接调用或解析,所有外部程序都要通过FastCGI接口来调用。为了调用CGI程序,还需要一个FastCGI的wrapper,可以理解为用于启动另一个程序的程序。

这个wrapper绑定在某个固定的Socket上,如端口或文件socket。当Nginx将CGI请求发送给socket时,通过FastCGI接口,wrapper接收到请求,派生一个新的线程,此线程调用解释器或外部程序处理脚本并读取返回数据,接着wrapper将返回数据通过FastCGI接口传给Nginx,最后Nginx再返回给客户端。


spawn-fcgi与PHP-FPM

FastCGI接口在脚本解析服务器上启动一个或多个守护进程动态解析脚本,这也成为FastCGI进程管理器,spawn-fcgi与PHP-FPM就是两个进程管理器。

spawn-fcgi:是HTTP服务器lighttpd的一部分,目前已是独立成为一个项目,一般与lighttpd配合使用来支持PHP。但是spawn-fcgi在高并发的时候会出现内存泄漏甚至自动重启FastCGI。

PHP-FPM:第三方的FastCGI进程管理器,它是作为PHP的一个补丁来开发的。在安装过程中也需要和PHP源码一起编译,也就是说PHP-FPM被编译到PHP内核,因此性能方面更加优秀。同时其处理高并发方面能力也好很多。

因为FastCGI的优点是把动态语言和HTTP server分离开,所以Nginx与PHP/PHP-FPM经常被部署到不通的服务器上,以分担Nginx前端的压力,使Nginx专注处理静态请求,PHP/PHP-FPM解析PHP动态请求。


PHP与PHP-FPM安装与优化

下载安装包

下载php包:www.php.net,这里使用php-5.2.13.tar.gz

下载php-fpm包:php-fpm.org,这里使用php-5.2.13-fpm-0.5.13.diff.gz

注意:最好php和php-fpm版本一致,否则可能会出现兼容性问题。

配置安装环境

需要的依赖包包括:

GCc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel等

根据系统版本的不同,可能依赖的包也不同。

编译安装php和php-fpm

解压缩php的源码包并将php-fpm当做补丁打入php源码中。

tar zxf php-5.2.13.tar.gzgzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1

编译安装,同时启动对FastCGI的支持,激活对FastCGI模式的fpm的支持。

cd php-5.2.13./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpmmake && make install
cp php-ini-dist /usr/local/php/lib/php.ini

配置与优化php-fpm

php的主配置文件为php.ini;

php-fpm的主配置文件为php-fpm.conf,位于/usr/local/php/etc/下,是一个xml格式的文件,下面介绍几个常用的标签:

<value name="listen_address">127.0.0.1:9000</value>:表示配置FastCGI进程监听的IP地址和端口,默认为本地的9000;
<value name="display_errors">0</value>:表示是否显示php错误信息,默认为0表示不显示,设置为1表示显示错误信息;
<value name="user">nobody</value>:表示设置运行FastCGI进程的用户,需要和nginx配置文件中的用户一致;
<value name="group">nobody</value>:表示设置运行FastCGI进程的用户组,需要和nginx配置文件中的用户组一致;
<value name="max_children">5</value>:设置FastCGI的进程数,官方建议小于2G内存,可以只开启64个进程;4G以上可以开启200个进程;
<value name="request_terminate_timeout">0s</value>:设置FastCGI执行脚本的时间,默认0s,意味着无限执行下去;
<value name="rlimit_files">1024</value>:设置php-fpm打开文件描述符的限制,默认1024,这个值最好要和内核打开的文件数一致;
<value name="max_requests">500</value>:设置每一个进程最多处理多少个请求后会被关闭,默认500;
<value name="allowed_clients">127.0.0.1</value>:设置允许访问FastCGI进程解析器的IP地址,如果不设置IP地址,则无法接受nginx传来的php解析请求;

管理FastCGI进程

启动FastCGI进程的方法如下:

/usr/local/php/sbin/php-fpm start

参数的含义如下:

start:启动php的fastcgi进程;
stop:强制停止php的fastcgi进程;
quit:平滑终止php的fastcgi进程;
restart:重启php的fastcgi进程;
reload:重新加载php的fastcgi进程,使进程不中断地加载配置文件;
logrotate:重新启用log文件;

查看FastCGI进程

FastCGI进程启动后,可以通过命令“ps”或者“netstat”查看到相关进程信息,默认监听9000端口;

netstat -antlp | grep 9000ps -ef | grep php-cgi

配置Nginx来支持PHP

Nginx本身不会对PHP进行解析,要想让Nginx解析PHP请求,需要将PHP页面的请求交给FastCGI进程监听的IP地址和端口。Nginx通过反向代理的功能实现对PHP的解析。下面对Nginx解析PHP进行配置实例。

配置实例

      server {
        server_name www.ixdba.net ixdba.net;

        location / {
            index index.html index.php;
            root /WEB/www/www.ixdba.net;
        }

        location ~ \.php$ {
            root                html;
            fastcgi_pass        127.0.0.1:9000;
            fastcgi_index       index.php;
            fastcgi_param       SCRIPT_FILENAME  html$fastcgi_script_name;
            include             fastcgi_params;
        }
      }

location指令,将以“.php”结尾的文件都交给“127.0.0.1:9000”来处理,这里的IP和端口就是FastCGI进程监听的IP和端口。

fastcgi_param指令,指定放置php动态程序的主目录,也就是$fastcgi_script_name前的路径,这里是/usr/local/nginx/html。

fastcgi_params文件是FastCGI进程的一个参数配置文件,安装Nginx后默认生成,这里将它包含进来。

启动nginx

/usr/local/nginx/sbin/nginx

测试Nginx对PHP的解析功能

在/usr/local/nginx/html,也就是上面的php动态程序主目录下,创建一个phpinfo.php文件,内容如下:

<?php phpinfo(); ?>

然后通过浏览器访问http://www.ixdba.net/index.html,将会显示Nginx欢迎页;
浏览器访问http://www.ixdba.net/phpinfo.php,会出现php安装及功能列表信息;


优化Nginx中FastCGI

添加一些优化指令可以让php环境高效稳定的运行,下面给出一些实例,添加到nginx配置文件的http层级:

为fastcgi缓存指定文件路径,目录结构等级、关键字区域存储时间和非活动删除时间;

fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=Test:10m inactive=5m;

连接到后端fastcgi的超时时间;

fastcgi_connect_timeout 300;

向fastcgi传送请求的超时时间,是已经完成两次握手后向fastcgi传送请求的超时时间;

fastcgi_send_timeout 300;

接收fastcgi应答的超时时间,是已经完成两次握手后接收fastcgi应答的超时时间;

fastcgi_read_timeout 300;

读取fastcgi应答第一部分需要缓冲区的大小;

fastcgi_buffer_size 64k;

本地需要多少和多大的缓冲区来缓冲fastcgi的应答请求;

fastcgi_buffers 4 64k;

默认值为fastcgi_buffers的两倍;

fastcgi_busy_buffers_size 128k;

写入缓存文件时使用多大的数据块,默认为fastcgi_buffers的两倍;

fastcgi_temp_file_write_size 128k;

开启fastcgi缓存并为其指定一个名称,可以有效降低cpu负载,防止502错误。

fastcgi_cache TEST;

fastcgi_cache_valid指定应答代码的缓存时间。
将200, 302的应答时间缓存1小时;

fastcgi_cache_valid 200 302 1h;

将301应答缓存一天;

fastcgi_cache_valid 301 1d;

其余应答缓存1分钟;

fastcgi_cache_valid any 1m;

以上就是FastCGI怎么安装PHP的详细内容,更多请关注编程界其它相关文章!

--结束END--

本文标题: FastCGI怎么安装PHP

本文链接: https://www.lsjlt.com/news/1147.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • FastCGI怎么安装PHP
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑FastCGI怎么安装PHP?Nginx与PHP(FastCGI)的安装、配置和优化什么是FastCGIFastCGI是一种可伸缩的、高速的在HTTP server和动态...
    99+
    2020-03-16
    php fastcgi
  • Nginx+PHP+FastCGI加速模式怎么实现
    本篇内容介绍了“Nginx+PHP+FastCGI加速模式怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-19
  • php cgi和fastcgi有什么区别
    PHP CGI(Common Gateway Interface)和FastCGI(Fast Common Gateway Inte...
    99+
    2023-09-22
    php
  • 怎么安装PHP
    这篇“怎么安装PHP”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么安装PHP”文章吧。安装PHP在开始安装PHP之前,需...
    99+
    2023-07-06
  • Nginx+PHP(FastCGI)搭建高并发WEB服务器(自动安装脚本)第二版
    本文是依照张宴的 Nginx 0.7.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版) 编写 原文地址 http://blog.s135...
    99+
    2022-11-21
    Nginx FastCGI
  • 安装了nginx后怎么安装php
    这篇文章主要讲解了“安装了nginx后怎么安装php”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“安装了nginx后怎么安装php”吧!安装了nginx再安装php的方法:首先通过“yum ...
    99+
    2023-06-20
  • php 中FastCGI模式的作用是什么
    php 中FastCGI模式的作用是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、说明是一种让交互程序与 Web 服务器通信的协议。FastCGI 是早期通用网关接...
    99+
    2023-06-15
  • php 5.6.15怎么安装
    本文操作环境:windows7系统、php 5.6.15版,DELL G3电脑php 5.6.15怎么安装?PHP 5.6.15 编译安装准备安装文件 php-5.6.15.tar http://php.net/d...
    99+
    2019-07-27
    php 5.6.15
  • ioncube php怎么安装
    本文操作环境:Windows7系统、php5.4版,DELL G3电脑。ioncube php怎么安装ionCube是PHP的一个扩展库,运行时处理编码文件的读取和执行,相当于一个解密操作。类似于php5.3之前版本的zendguard。方...
    99+
    2020-01-12
    ioncube php
  • iis5.1怎么安装php
    本文操作环境:winxp sp3+iis5.1、php-4.4.2-Win32、apache_2.2.6-win32-x86-no_ssl.msi版,DELL G3电脑。iis5.1怎么安装php?iis5.1配置php运行环境安装apac...
    99+
    2019-02-21
    iis5.1 php
  • kail怎么安装php
    本教程操作环境:Windows7系统、php7.3版、Dell G3电脑。kail怎么安装php?kali 安装php7.3-fpm或者其他版本的phpkali 系统环境,已经安装php7.3,未安装php7.3-fpm#安装php7.3-...
    99+
    2022-11-23
    kail php
  • iis怎么安装php
    IIS安装PHPIIS是一种用于在Windows操作系统上托管Web应用程序的Web服务器软件。而PHP是一种广泛使用的服务器端脚本语言,与IIS能够完美地配合使用。在本文中,将会介绍如何在IIS上安装PHP。步骤1:下载PHP在开始安装过...
    99+
    2023-05-14
  • php-composer怎么安装
    这篇文章主要介绍php-composer怎么安装,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php-composer的安装与使用方法(简化版)1.简介Composer 是 PHP 的一个依赖管理工具。它允许你申明项...
    99+
    2023-06-14
  • php怎么安装memcache
    本篇内容主要讲解“php怎么安装memcache”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php怎么安装memcache”吧!下载memcached软件32位下载地址: memcached-...
    99+
    2023-06-04
  • PHP-FPM、Nginx和FastCGI间的关系是什么
    这篇文章主要介绍了PHP-FPM、Nginx和FastCGI间的关系是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP-FPM,Nginx,FastCGI 之间的关系...
    99+
    2023-06-15
  • PHP中怎么安装CakePHP
    小编给大家分享一下PHP中怎么安装CakePHP,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最常...
    99+
    2023-06-14
  • mac 怎么安装php mongodb
    本文操作环境:macOS10.13.3系统、mongodb1.4.3&&PHP7.1.16版本、MacBook Air 2019电脑mac 怎么安装php mongodbmac下PHP安装mongodb的扩展:phpize路...
    99+
    2017-03-13
    mac php mongodb扩展
  • centos 7.5怎么安装php
    本文操作环境:CentOS7.5系统、php7.4.1版、DELL G3电脑centos 7.5怎么安装php?CentOS-7.5 编译安装php-7.4.1踩坑记录:一般用yum安装包,比较抵触源码编译,百度了一下,成功安装了~1、环境...
    99+
    2017-06-16
    centos php
  • centos怎么安装php ldap
    本文操作环境:centOS6.8系统、PHP7.0版、DELL G3电脑Centos下安装PHP ldap扩展Centos下安装PHP ldap扩展,有两种方法,仅供参考。一、在线安装执行下面命令:1yum install PHP-ldap...
    99+
    2018-06-26
    centos
  • iis 2008怎么安装php
    本文操作环境:Windows2008系统、PHP5.6.9版、DELL G3电脑Win2008 Server配置PHP环境:在配置PHP环境之前要先配置好IIS。传送门-> Win2008 Server下配置安装IIS 如果IIS是以...
    99+
    2017-10-28
    iis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作