php fastcgi是什么?fastcgi如何实现
发布时间:2023-11-01 11:06:56 所属栏目:PHP教程 来源:转载
导读: 特点:
1、持久连接。不必对每一个请求都启动和初始化,速度很快。
2、据说可让php的执行速度快3到30倍。原因是: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 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐