加入收藏 | 设为首页 | 会员中心 | 我要投稿 通辽站长网 (https://www.0475zz.com/)- 图像处理、建站、语音技术、AI行业应用、媒体智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php fastcgi是什么?fastcgi如何实现

发布时间:2023-11-01 11:02:47 所属栏目:PHP教程 来源:未知
导读:   特点:



  1、持久连接。不必对每一个请求都启动和初始化,速度很快。



  2、据说可让php的执行速度快3到30倍。原因是:PHP解释程序被载入内存而不用每次需要时从存储器
  特点:
 
  1、持久连接。不必对每一个请求都启动和初始化,速度很快。
 
  2、据说可让php的执行速度快3到30倍。原因是:PHP解释程序被载入内存而不用每次需要时从存储器读取,极大的提升了依靠脚本运行的站点的性能。
 
  3、因为不必对每一个请求都启动和初始化,所以也大大减少了系统资源(CPU)的占用。
 
  4、对原来的php程序来说完全不用修改。
 
  5、只有一个可用的php.ini文件。当要配置多个php.ini文件以适应不同的脚本需要时,你要在其子目录禁用PHP的快速CGI,如此则可保证其它目录继续对cgi有效。
 
  linux下php以fastcgi模式运行
 
  1、linux系统
 
  [root@localhost /]# cat /etc/redhat-release
 
  CentOS release 5.2 (Final)
 
  2、安装apache
 
  下载并解压缩apache,本文演示用的版本是2.2.19
 
  [root@localhost]# wget http://labs.renren.com/apache-mirror//httpd/httpd-2.2.19.tar.gz
 
  [root@localhost]# tar xvzf httpd-2.2.19.tar.gz
 
  编译和安装apache,本文的目的只是演示php以fastcgi方式运行,为了方便,只选必须的参数编译
 
  [root@localhost]# cd httpd-2.2.19
 
  [root@localhost]#./configure --enable-so
 
  [root@localhost]#make
 
  [root@localhost]#make install
 
  3、安装mod_fcgid(注意是mod_fcgid,不是mod_fastcgi)
 
  下载并解压缩mod_fcgid,本文测试时用的版本是2.3.6
 
  [root@localhost]wget http://labs.renren.com/apache-mirror//httpd/mod_fcgid/mod_fcgid-2.3.6.tar.gz
 
  [root@localhost]tar xvzf mod_fcgid-2.3.6.tar.gz
 
  编译并安装mod_fcgid
 
  [root@localhost]cd mod_fcgid-2.3.6
 
  [root@localhost]APXS=/usr/local/apache2/bin/apxs ./configure.apxs
 
  [root@localhost]make
 
  [root@localhost]make install
 
  注释:网络上部分文档没有APXS=/usr/local/apache2/bin/apxs,详情参考mod_fcgid软件中的README-FCGID文档
 
  4、安装PHP
 
  下载并加压缩PHP,PHP版本是5.3.6
 
  [root@localhost]wget http://www.php.net/get/php-5.3.6.tar.bz2/from/cn.php.net/mirror
 
  [root@localhost]tar xvjf php-5.3.6.tar.bz2
 
  编译并安装PHP
 
  [root@localhost] cd php-5.3.6
 
  [root@localhost]./configure --prefix=/usr/local --with-configure-file-path=/etc
 
  [root@localhost]make
 
  [root@localhost]make install
 
  注释:要是有库文件报错,请安装相关库文件,笔者的系统上曾报libxml2的错,yum install libxml2-devel,解决问题。网络上很多文档,说要使用--enable-fastcgi这个参数,笔者在./configure --help中没有找到这个参数,倒是找到一个--disable-cgi的参数,因而决定不加--enable-fastcgi这个参数,此后证实这个参数可以不加。--with-apxs2这个参数一定不能加。
 
  5.配置
 
  创建FastCGI脚本目录
 
  [root@localhost]# mkdir /usr/local/apache2/fcgi-bin
 
  [root@localhost]# ln -s /usr/local/php/bin/php-cgi /usr/local/apache2/fcgi-bin/php-cgi
 
  编辑apache配置文件
 
  [root@localhost]# vi /usr/local/apache/conf/httpd.conf
 
  加入以下内容
 
  ScriptAlias /fcgi-bin/ "/usr/local/php5/bin/"
 
  AddHandler php-fastcgi .php
 
  Action php-fastcgi /fcgi-bin/php-cgi
 
  AddType application/x-httpd-php .php
 
      IdleTimeout 300
 
      ProcessLifeTime 1800
 
      MaxProcessCount 100
 
      DefaultMinClassProcessCount 3
 
      DefaultMaxClassProcessCount 8
 
      IPCConnectTimeout 15
 
      IPCCommTimeout 300
 
      MaxRequestsPerProcess 100
 
        AllowOverride None
 
        Options FollowSymLinks +ExecCGI
 
        Order allow,deny
 
        Allow from all
 
  修改
 
      Options Indexes FollowSymLinks +ExecCGI
 
      AllowOverride None
 
      Order allow,deny
 
      Allow from all
 
  注释:笔者测试的test.php文件放在htdocs目录下面,因此htdocs目录的权限需要ExecCGI,若目录不同,请赋予目录ExecCGI的权限。另LoadModule fcgid_module modules/mod_fcgid.so 这个再装mod_fcgid的时候,自动添加了。
 
  6、验证
 
  编辑测试页面
 
  [root@localhost]# vi /usr/local/apache2/htdocs/test.php
 
  echo phpinfo();
 
  ?>
 
  IIS7中配置FastCGI运行PHP
 
  环境说明:
 
  操作系统:使用windows 2008 server 64位系统,IIS7.5
 
  PHP版本:官方下载PHP 5.4.16 VC9 x86 Non Thread SafeZIP版本。
 
  PHP路径:C:php-5.4.16
 
  配置步骤:
 
  解压PHP文件,修改目录名放到C盘。目录地址为C:php-5.4.16
 
  复制php.ini-production改名为php.ini,先参考PHP.ini参数说明修改。
 
  并修改PHP对FastCGI支持:
 
  winmail站点打开添加相关的选项:
 
  选择“处理程序映射”:
 
  选择“添加模块映射”:
 
  选择“模块”-“FastCgiModule”和PHP路径 :
 
  选择“是”:
 
  按设置“FastCGI”相关选项:
 
  “最大实例数”和“实例最大请求数”可以根据自己情况修改。
 
  “最大实例数”:如果是 Windows Server 2008 R2 操作系统将属性设置为 0,则可以使 IIS 自动选择当前执行环境下 FastCGI 进程的最佳数量。
 
  “实例最大请求数”:可以根据自己情况修改,也可以修改到10000。
 
  添加一条变量:PHP_FCGI_MAX_REQUESTS 值是:10000
 
 

(编辑:通辽站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章