注意:我知道这看起来像是this question的副本。我不知道它是如何复制的。我已经说过我已经检查了这个问题,我尝试了所有的答案,但它没有用。
以下是我的尝试:
根据Dario的回答,我按照步骤操作,但在名称栏目下找不到任何 php
在接受的答案中,我在命令行提示符下运行相同的代码,但它显示:
appcmd.exe set config /section:handlers "/[name='PHP55_via_FastCGI'].ResponseBufferLimit:0"
然后返回:
错误(消息:找不到请求的集合元素。)
然后我检查了PHP手册:
我在配置文件中找不到任何内容,例如_via_FastCGI
我查看了Plesk的PHP设置,是的,我的服务器在FastCGI模式下运行。
所以,我已经在我的开发服务器上工作了很多个小时用于该冲洗部分,现在在我的实时服务器上它无法正常工作。任何帮助将受到高度赞赏
更新1:
正如@artlung所建议的那样,我在这里附上了截图:
更新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" />
答案 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。