![PikPak安卓最新版APP v1.46.2_免费会员兑换邀请码【508001】可替代115网盘_全平台支持Windows和苹果iOS&Mac_ipad_iphone -云主机博士 第1张 PikPak安卓最新版APP v1.46.2_免费会员兑换邀请码【508001】可替代115网盘_全平台支持Windows和苹果iOS&Mac_ipad_iphone -云主机博士 第1张](https://www.yunzhujiboshi.com/zb_users/upload/2022/06/202206281656381457152123.png)
Windows7 64位系统下面配置Apache2.2+PHP5.3+mod_fcgid运行高效的FastCGI模式安装方法 -云主机博士
![PikPak安卓最新版APP v1.46.2_免费会员兑换邀请码【508001】可替代115网盘_全平台支持Windows和苹果iOS&Mac_ipad_iphone -云主机博士 第1张 PikPak安卓最新版APP v1.46.2_免费会员兑换邀请码【508001】可替代115网盘_全平台支持Windows和苹果iOS&Mac_ipad_iphone -云主机博士 第1张](https://www.yunzhujiboshi.com/zb_users/upload/2022/06/202206281656381457152123.png)
由于自己的笔记本安装的是windows7 64位的操作。所以在安装配置apache+php+mysql这个。就要安装想对应的64位版本(至于为什么要安装64位,这里不多做解释了)
FastCGI模式是经实践证明了比传统的模块模式运行效率高很多。记录如下:
一、mod_fcgid配置说明
1、首先下载 mod_fcgid-2.3.7-win64.zip,下载地址:http://www.apachelounge.com/download/win64/
将解压的相关文件复制到apache的“modules”目录下。
2、打开apache的配置文件“httpd.conf”,文件最后加入如下配置:
<IfModule fcgid_module> FcgidInitialEnv PATH "D:/PHP/php5;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;" FcgidInitialEnv SystemRoot "C:/Windows" FcgidInitialEnv SystemDrive "C:" FcgidInitialEnv TEMP "C:/WINDOWS/Temp" FcgidInitialEnv TMP "C:/WINDOWS/Temp" FcgidInitialEnv windir "C:/WINDOWS" # 设置PHP_FCGI_MAX_REQUESTS大于或等于FcgidMaxRequestsPerProcess,防止php-cgi进程在处理完所有请求前退出 FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 #php-cgi每个进程的最大请求数 FcgidMaxRequestsPerProcess 1000 #php-cgi最大的进程数 FcgidMaxProcesses 5 #最大执行时间 FcgidIOTimeout 120 FcgidIdleTimeout 120 <Files ~ "\.php$>" AddHandler fcgid-script .php #php.ini的存放目录 SetEnv PHPRC "D:/PHP/php5" #php-cgi的路径 FcgidWrapper "D:/PHP/php5/php-cgi.exe" .php </Files> </IfModule>
另外一个配置文件如下:来自:http://www.apachelounge.com/viewtopic.php?t=4800
<IfModule fcgid_module> FcgidInitialEnv PATH "c:/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;" FcgidInitialEnv SystemRoot "C:/Windows" FcgidInitialEnv SystemDrive "C:" FcgidInitialEnv TEMP "C:/WINDOWS/Temp" FcgidInitialEnv TMP "C:/WINDOWS/Temp" FcgidInitialEnv windir "C:/WINDOWS" FcgidIOTimeout 40 FcgidConnectTimeout 10 FcgidMaxProcesses 8 FcgidOutputBufferSize 64 ProcessLifeTime 240 FcgidMaxRequestsPerProcess 500 FcgidMinProcessesPerClass 0 <Files ~ "\.php$>" AddHandler fcgid-script .php #php.ini的存放目录 SetEnv PHPRC "D:/PHP/php5" #php-cgi的路径 FcgidWrapper "D:/PHP/php5/php-cgi.exe" .php </Files> </IfModule>
3、告诉APACHE执行方式。修改你的配置如下:
在PHP执行目录里加上Options +ExecCGI,最好是在所有的<Directory > 里面都做修改,如果开启了vhost.conf文件,里面的配置也要做相对应的修改!
<Directory "E:/wwwroot"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from all </Directory>
4、重启apache。
5、如果配置没错的话,你运行phpinfo.php可以看到有如下的输出信息:
Apache/2.2.23 (Win64) mod_fcgid/2.3.7 mod_gzip/2.1.0
二、mod_fcgid概念说明以及mod_fastcgi和mod_fcgid的区别
mod_fcgid是一个跟mod_fastcgi二进制兼容的Apache module。
原来的mod_fastcgi因为实现方式的限制,所以可能会创建了很多不必要的进程,而实际上只需要更少的进程就能处理同样的请求。 mod_fastcgi的另外一个问题是每一个CGI的多个进程都共享同一个管道文件,所有到同一个fastcgi的通讯都通过这个同名的管道文件进行, 这样当出现通讯错误的时候,根本不知道正在通讯的是哪一个fastcgi,于是也没有办法将这个有问题的进程杀死。
mod_fcgid尝试使用共享内存来解决这个问题。共享内存里面有当前每个fastcgi进程的信息(包括进程号,进程使用的管道文件名等),当 每次尝试请求fastcgi工作的时候,Apache将会首先在共享内存里面查询,只有在共享内存里面发现确实没有足够的fastcgi进程了,才会创建 新的进程,这样可以保证当前创建的进程数量刚好能够处理客户的请求。另外,由于每一个fastcgi进程使用不同名称的管道文件,所以可以在通讯失败的时 候知道到底哪个fastcgi进程有问题,而能够尽早的将其剔除。
三、mod_fcgid程序实现的目标
1、跟mod_fastcgi二进制兼容
只要在Apache中用mod_fcgid替换了mod_fastcgi,就能工作。原来的fastcgi程序不用重新编译,立即可以工作。
2、更严格的控制进程的创建
Apache中每一个request handler都能通过共享内存知道当前系统fastcgi运行的情况,这样可以防止过度的创建fastcgi进程,无谓的消耗系统的资源。
3、简单清晰的进程创建速度控制策略
每一个fastcgi都会维护一个计数器,这个计数器在程序创建和程序结束的时候都会增加,而这个计数器每秒会减1,直到0。当计数器的值高于某个阀值的时候,程序就会停止创建,直到计数器的值回落。这样既可以保证在请求突然增多的时候能够快速反应(特别是Apache刚启动,需要大量创建程序的时 候),也能保证当fastcgi程序有问题,不断重起的时候,重起的速度不会过高而消耗过多的系统资源。
4、自动检测出有问题的进程
因为每个fastcgi使用自己特定的管道文件,所以在通讯错误的时候可以轻易知道哪一个程序出现问题,而尽早的将其剔除。
5、可移植性
遵照Apache2的习惯,所有可移植的代码都放到一起,所有不可移植的代码都在arch目录下分开存放。当前已经测试过的系统包括 Linux , FreeBSD(已经包含入FreeBSD4和FreeBSD5的port中), Solaris, Windows 2000.
6、支持FastCGI方式运行的PHP
可以直接支持以FastCGI方式运行的PHP。因为PHP现在还不能保证所有的扩展代码都是线程安全的,所以并不建议在Apache2的线程模式 下使用mod_php。而以FastCGI方式运行的PHP则是其中一个解决办法。另外,使用mod_fcgi还可以在不修改任何PHP代码的情况下,获得数据库连接池的功能,大大减少PHP进程到数据库的连接。
本文参考了http://fuzzytolerance.info/code/apache-mod_fcgid-and-php-on-windows/一文,套用原文作者的话,t’s tricky to set up the first time, but mod_fcgid is the best way to run PHP on Apache I’ve found。
最后记录一下64位版本的apache php的下载地址:
Apache:http://www.apachelounge.com/download/win64/ 本文所使用的64位Apache是在这个地址下载的
PHP:http://www.anindya.com/ 这个地址也有64位的Apache下载
MySQL:http://www.mysql.com 官方提供了64位的,使用在这里下载就可以了
![iproyal.png iproyal.png](https://pawns.iproyal.com/img/b/728.jpg)