gpt4 book ai didi

php - 如何确定 FastCGI 是否被用于运行 php 脚本

转载 作者:IT王子 更新时间:2023-10-29 00:16:15 28 4
gpt4 key购买 nike

我有一个托管站点,但在配置 Joomla 时遇到问题(在 IIS7 + win server 2008 上运行 Joomla + php + mySQL)。我在本地机器上运行了类似的配置(Joomla + php + IIS7 + vista x64 上的 mySQL),所以我至少能够按照各种教程中显示的说明进行设置。

托管站点的这种症状是我无法在 Joomla 中打开任何 SEO 设置(甚至不是第一个设置“搜索引擎友好的 URL”)。我收到 404(未找到文件)或 URL 似乎已正确重写,但显示的始终是主页的内容。我在我的家用机器上遇到了类似的问题,结果证明是因为我没有使用 FastCGI 来托管 php,所以我决定在托管网站上调查一下。

无论如何,我在托管站点上托管 joomla 的目录的 web.config 文件中注意到以下行:

<add name="Plesk_Handler_3522909676" path="*.php" verb="*" modules="IsapiModule" scriptProcessor="c:\program files (x86)\parallels\plesk\additional\pleskphp5\php5isapi.dll" resourceType="Either" />

根据以往的经验,我知道 php 不在 fastCGI 下运行时会出现一些问题。我注意到根文件夹中的 web.config 使用了以下行:

<add name="Plesk_Handler_0286090609" path="*.php" verb="*" modules="CgiModule" scriptProcessor="c:\program files (x86)\parallels\plesk\additional\pleskphp5\php-cgi.exe" resourceType="Either" /> 

我将它复制到 joomla 目录的 web.config 中,得到了不同的行为......但仍然无法正常工作。如果我在运行 phpInfo() 的 joomla 目录中加载一个 .php 文件,在服务器 API 下它会显示 CGI/FastCGI 。这是正在使用 FastCGI 的正面确认吗?为什么 Web 配置中的处理程序指向 modules="CgiModule"而不是 modules="FastCgiModule"(我什至不确定它是否存在,但我只是觉得提到 CgiModule 很可疑)。

这是一个托管站点,据我所知,我无法访问 ApplicationHost.config 文件...

最佳答案

这是一个简单的测试:

  1. 创建一个 phpinfo.php 文件

 <?php phpinfo(); ?> 

内部;

  1. 请求 http://yoursite.com/phpinfo.php/foobar?foo=bar

  2. 检查 phpinfo 的输出并查找 _SERVER["REQUEST_URI"]。

如果缺少此变量,则使用 CGI。如果该变量存在并正确设置为/phpinfo.php/foobar?foo=bar,则使用 ISAPI 或 FastCGI。查看服务器 API 输出的顶部附近;它应该设置为 ISAPI(这意味着正在使用 ISAPI)或 CGI/FastCGI(这意味着正在使用 FastCGI,因为我们已经排除了 CGI)。

关于php - 如何确定 FastCGI 是否被用于运行 php 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/609044/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com