Windows下AMP平台配置FastCGI方法(以xampp为基础)
一、配置Apache部分。
配置httpd.conf文件
在根配置节加入:
LoadModule fcgid_module modules/mod_fcgid.so
DefaultInitEnv PHPRC "D:/xampp/php/"
DefaultInitEnv PATH "D:/xampp/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
DefaultInitEnv SystemRoot "C:/Windows"
DefaultInitEnv SystemDrive "C:"
DefaultInitEnv TEMP "C:/WINDOWS/TEMP"
DefaultInitEnv TMP "C:/WINDOWS/TEMP"
DefaultInitEnv windir "C:/WINDOWS"
AddHandler fcgid-script .php
其中“D:/xampp/php”为你的PHP所在目录。
在网站配置节中加入
FCGIWrapper "D:/xampp/php/php-cgi.exe" .php
二、配置PHP部分。
复制xampp/apache/bin/php.ini到xampp/php目录替换
三、配置应用程序部分。
以ThinkPHP框架为例
原.htaccess文件的:
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
改为
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
四、常见错误处理
连接MYSQL时出现Can’t create TCP/IP socket (10106)
检查httpd.conf文件中
DefaultInitEnv PHPRC "D:/xampp/php/"
DefaultInitEnv PATH "D:/xampp/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
DefaultInitEnv SystemRoot "C:/Windows"
DefaultInitEnv SystemDrive "C:"
DefaultInitEnv TEMP "C:/WINDOWS/TEMP"
DefaultInitEnv TMP "C:/WINDOWS/TEMP"
DefaultInitEnv windir "C:/WINDOWS"
保证里面的目录信息都是正确的就可以
.htaccess 中Rewrite规则有问题
Fastcgi模式下,不支持rewrite的目标网址的PATH_INFO的解析,例如
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
转向的目标地址是index.php/Module/Action,则fastcgi会当作实际的目录查找而并非解析index.php文件,所以要根据程序支持将其修改为类似
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
以下内容在2009-2-14 补充
如果发现PhpMyAdmin访问不了,可以打开xampp/apache/conf/extra/httpd-xampp.conf文件,在
<Directory "D:/xampp/phpMyAdmin">
一节中加入
<FilesMatch .php$>
SetHandler application/x-httpd-php
</FilesMatch>