![无法使 PHP 在 Apache 和 Windows 上作为 FastCGI 工作](https://linux22.com/image/600704/%E6%97%A0%E6%B3%95%E4%BD%BF%20PHP%20%E5%9C%A8%20Apache%20%E5%92%8C%20Windows%20%E4%B8%8A%E4%BD%9C%E4%B8%BA%20FastCGI%20%E5%B7%A5%E4%BD%9C.png)
我尝试将 PHP 作为 FastCGI 运行,但没有成功。
我制作了一个 *.conf 文件,例如mod_fcgid 页面但没有包装脚本。
这是我的配置:
# php5 as FastCGI executable
FcgidMaxRequestsPerProcess 10000
# Uncomment the following line if cgi.fix_pathinfo is set to 1 in
# php.ini:
# FcgidFixPathinfo 1
<Location "D:/www">
AddHandler fcgid-script .php
Options +ExecCGI
FcgidWrapper "C:/php/php-cgi.exe" .php
# Customize the next two directives for your requirements.
Order allow,deny
Allow from all
</Location>
服务器正常启动,并且显示fcgid_module httpd -M
,但是php文件以纯文本形式提供给服务器。
答案1
出于好奇,尝试改变你的线路:
AddHandler fcgid-script .php
到
AddHandler fcgid-script php
为了启动并运行,您可能还需要考虑使用 mod_fastcgi(注意,不是 Apache 的 mod_fcgid)。可在此处获取 dllhttp://www.fastcgi.com/dist/mod_fastcgi-2.4.6-AP22.dll 请注意,这是针对 Httpd 2.2 的。(2.4 的 dll 也可用。)
您的配置条目看起来可能会像这样:
LoadModule fcgid_module modules/mod_fcgid.so
<IfModule mod_fastcgi.c>
Alias /fcgi-bin "C:/www/cgi-bin"
FastCgiServer "C:/www/cgi-bin/php-cgi.exe" -initial-env PATH=C:/php -initial-env PHPRC=C:/php
AddHandler php-fastcgi .php
<Location /fcgi-bin/>
Options ExecCGI
SetHandler php-fastcgi
</Location>
AddType application/x-httpd-fastphp .php
Action php-fastcgi /fcgi-bin/php-cgi.exe
</IfModule>
你也许可以用更少的钱来解决问题,但它在 Windows 上对我来说是有效的。