PHP刷新在IIS 8中停止刷新

时间:2016-05-19 06:49:27

标签: php iis iis-8 flush

注意:我知道这看起来像是this question的副本。我不知道它是如何复制的。我已经说过我已经检查了这个问题,我尝试了所有的答案,但它没有用。

以下是我的尝试:

  1. 根据Dario的回答,我按照步骤操作,但在名称栏目下找不到任何 php

  2. 在接受的答案中,我在命令行提示符下运行相同的代码,但它显示:

    appcmd.exe set config /section:handlers "/[name='PHP55_via_FastCGI'].ResponseBufferLimit:0"
    

    然后返回:

      

    错误(消息:找不到请求的集合元素。)

  3. 然后我检查了PHP手册:

    flush manual

    我在配置文件中找不到任何内容,例如_via_FastCGI

  4. 我查看了Plesk的PHP设置,是的,我的服务器在FastCGI模式下运行。

  5. 所以,我已经在我的开发服务器上工作了很多个小时用于该冲洗部分,现在在我的实时服务器上它无法正常工作。任何帮助将受到高度赞赏

    更新1:

    正如@artlung所建议的那样,我在这里附上了截图:

    FAST CGI HANDLERS

    更新2:

    以下是我通过搜索关键字" FastCGI"

    在notepad ++中找到的内容
    <add name="FastCgiModule" lockItem="true" />
    <add name="PleskEngine-FastCGI-html" path="*.html" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\admin\bin\php-cgi.exe|-dauto_prepend_file=auth.php" resourceType="Either" responseBufferLimit="0" />
    <add name="PleskEngine-FastCGI-html" path="*.html" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\admin\bin\php-cgi.exe|-dauto_prepend_file=auth.php" resourceType="Either" responseBufferLimit="0" />
    <add name="PleskEngine-FastCGI-php3" path="*.php3" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\admin\bin\php-cgi.exe|-dauto_prepend_file=auth.php" resourceType="Either" responseBufferLimit="0" />
    <add name="PleskEngine-FastCGI-php3" path="*.php3" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\admin\bin\php-cgi.exe|-dauto_prepend_file=auth.php" resourceType="Either" responseBufferLimit="0" />
    <add name="PleskEngine-FastCGI-php" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\admin\bin\php-cgi.exe|-dauto_prepend_file=auth.php" resourceType="Either" responseBufferLimit="0" />
    <add name="PleskEngine-FastCGI-php" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\admin\bin\php-cgi.exe|-dauto_prepend_file=auth.php" resourceType="Either" responseBufferLimit="0" />
    <add name="PHP-phtml" path="*.phtml" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP55\php-cgi.exe" resourceType="Either" />
    <add name="PHP-php3" path="*.php3" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP55\php-cgi.exe" resourceType="Either" />
    <add name="PHP-php" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP55\php-cgi.exe" resourceType="Either" />
    <add name="PHP-phtml" path="*.phtml" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP55\php-cgi.exe" resourceType="Either" />
    <add name="PHP-php3" path="*.php3" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP55\php-cgi.exe" resourceType="Either" />
    <add name="PHP-php" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP55\php-cgi.exe" resourceType="Either" />
    <add name="PHP-phtml" path="*.phtml" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP55\php-cgi.exe" resourceType="Either" />
    <add name="PHP-php3" path="*.php3" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP55\php-cgi.exe" resourceType="Either" />
    <add name="PHP-php" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP55\php-cgi.exe" resourceType="Either" />
    

3 个答案:

答案 0 :(得分:4)

appcmd.exe set config /section:handlers "/[name='NAME'].ResponseBufferLimit:0"

NAME更改为您要更新的处理程序的名称,例如PHP7_via_FastCGI

检查路径,它应该解决你的问题,我有同样的问题,这个方法帮助了我。

答案 1 :(得分:3)

IIS中有许多功能及其设置可能会相互冲突。

您似乎无法为处理程序设置responseBufferLimit

您需要首先了解您的处理程序的名称。

打开命令提示符并运行:

%windir%\system32\inetsrv\appcmd.exe list config -section:system.webServer/handlers | find "FastCGI"

可以在下面列出多个处理程序,这样就行了。你的排名第一,在这里PHP53_via_FastCGI

<add name="PHP53_via_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.3\php-cgi.exe" resourceType="Either" />
<add name="PHP54_via_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.4\php-cgi.exe" resourceType="Either" /
<add name="PHP55_via_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.5\php-cgi.exe" resourceType="Either" />
<add name="PHP56_via_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.6\php-cgi.exe" resourceType="Either" />
<add name="PHP70_via_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v7.0\php-cgi.exe" resourceType="Either" />

PHP53_via_FastCGI替换为您的{0}},运行以下命令更改responseBufferLimit

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/handlers /[name='PHP53_via_FastCGI'].responseBufferLimit:"0" /commit:apphost

运行以下命令重新启动IIS:

iisreset

再次尝试加载php页面。

如果仍然没有按预期工作,您可以确定它是因为IIS的动态压缩。由于默认情况下它处理内容类型为text/*的所有动态响应,因此启用它时可能会阻止PHP响应进行压缩。

您可以暂时禁用动态压缩以查看它是否有效。 请备份您的网站web.config,然后输入以下内容,并尝试加载您的PHP页面。

的web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <urlCompression doDynamicCompression="false" />
    </system.webServer>
</configuration>

如果您不想为所有网站禁用动态压缩,可以使用其他级别禁用虚拟应用程序,物理和虚拟目录或特定文件的动态压缩。

有关详细信息,请查看HTTP Compression Feature Requirements

答案 2 :(得分:1)

查找fcgiext.ini并取消注释/添加行ResponseBufferLimit=0,然后重新启动IIS。