这不是我安装的第一个安装程序,但我不明白发生了什么......
系统:
- Windows Server 2003
- 带有 FastCGI 的 IIS
- PHP 5.3.1
我已经设置了:
- fcgi.ini 像往常一样,只有一个 [PHP] 部分指向我的 C:\PHP\php-cgi.exe
- IIS / FCGI 映射到 .php 文件
- PHP.ini 几乎是标准的。刚刚启用了完整的错误日志记录和 MySQL 扩展。
最奇怪的结果是:
- 当我在浏览器中调用 test.php 时,它只是永远“连接...”。没有显示,没有错误。
即使我的 test.php 不包含 PHP!
但如果我将其重命名为 test.html,一切就都正常了!
我有点迷路了......
答案1
我最近实施了一个类似的设置:
- Windows Server 2003 Web 版
- IIS / FastCGI(http://www.iis.net/expand/fastcgi)
- PHP 5.3.1(通过 zip 文件安装到 c:\php)
根据我的部署说明,安装步骤如下:
- 下载 PHP 5.3.1 zip (http://windows.php.net/download/,请注意“我该选择哪个版本?”部分)
- 安装到 c:\php
- 测试php-v 命令在命令行上运行(在 c:\php 中)
- 将 .php 与 FastCGI 关联:IIS 管理器 -> 计算机 -> 网站 -> 站点 -> 右键单击,选择属性 -> 选择“主目录”选项卡,单击“配置”,“映射”选项卡。.php 的配置如下所示:
- 配置 FastCGI 的配置文件 (C:\WINDOWS\system32\inetsrv\fcgiext.ini) 至少包含以下内容:
[类型] php=PHP [PHP] ExePath=c:\php\php-cgi.exe
- 将以下内容附加/更改为 c:\php\php.ini。如果没有此配置,我的配置会在显示空白页和根本不加载之间来回切换(我猜这是你的问题):
fastcgi.模拟 = 1 fastcgi.日志 = 0 cgi.fix_pathinfo=1 强制重定向 = 0
- 放
显示错误
在 c:\php\php.ini 中取消注释 extension=php_mysql.dll。 - 重新启动网站的 IIS(单击停止/播放按钮)
在此配置中,您实际上有两个组件,即 IIS-FastCGI-PHP 之间的管道和 PHP 本身。我建议隔离其中哪个不起作用:
- 临时编辑 fcgiext.ini 并将 PHP ExePath 指向其他内容,例如 c:\php\nothere.exe。如果服务器开始对 PHP 请求返回“无法找到 FastCGI 可执行文件”,则说明 FastCGI 工作正常,而 PHP 存在问题。
- 使用默认配置运行 PHP,进行上述 fastcgi/cgi 更改并启用 display_errors。您需要重新启动 IIS(并可能终止所有 php-cgi 进程)以使要重新启动的站点能够识别更改。
- 使用简单的 phpinfo(); 脚本在命令行上运行 PHP,检查基本操作,并注意加载的 php.ini 在哪里。这将检查恶意配置文件(例如 c:\、c:\windows 等)是否正在使用。
这些步骤确认(至少)PHP 可执行文件正在被调用,并具有最基本的配置。
希望这可以帮助,
洛基
答案2
现在可以工作了:我只是忘了正确设置 PHP 设置“extension_dir”为“ext”,而 PHP Zip 版本中默认情况下不是这样。