AjaXplorer [用 PHP 编写] 在 IIS 上太慢

发布于 2024-09-05 19:13:09 字数 197 浏览 3 评论 0原文

我已经在我的 IIS (Windows Server 2008 SP2 x64) 上安装了用 PHP 编写的 AjaXplorer(非常好的 Web 文件浏览器)。它对我来说太慢了。

可能是什么原因? php.ini中有一些设置吗?或者,也许 IIS 有问题?

我使用 32 位 PHP,php-cgi.exe 作为解释器。

问候,

I've installed AjaXplorer (very nice web file explorer), written in PHP, on my IIS (Windows Server 2008 SP2 x64). It works too slow for me.

What can be the cause? Are there some settings in php.ini? Or, maybe, something is wrong with IIS?

I use 32-bit PHP, php-cgi.exe as interpreter.

Regards,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧伤还要旧人安 2024-09-12 19:13:09

首先,CGI 总是很慢。它需要为每个请求启动整个 PHP 运行时。尝试使用 FastCGI (如果您使用的是 IIS 7,或如果您使用的是 IIS 6)...

之后,尝试看看为什么它很慢。是因为 PHP 脚本需要很长时间才能执行(意味着这是代码问题),还是因为服务器配置。要进行测试,请将其修改为 PHP 程序入口点 (index.php) 的开头:

define(START_TIME_CUSTOM, microtime(true));
function onEndTimeCompute() {
    $timeTaken = microtime(true) - START_TIME_CUSTOM;
    echo "Completed In: ".number_format($timeTaken, 4)." Seconds\n";
}
register_shutdown_function('onEndTimeCompute');

Completed in n Seconds 写入生成的输出的末尾(即使 die( ) 被调用)。如果 Ajax 调用预计返回 JSON,则可能会导致一些问题,因此通常不要这样做,只是为了试图弄清楚发生了什么。

因此,如果总请求花费了 1 秒,但您看到 Completed in 0.004 Seconds,您就知道 PHP 代码本身不是问题(它要么在 CGI 解释器的设置中,要么在某个地方)其他在 IIS 中)...

这至少应该告诉你问题出在哪里...

First off, CGI will always be slow. It needs to boot the entire PHP runtime for each request. Try using FastCGI (If you're using IIS 7, or if you're using IIS 6)...

After that, try to see why it's slow. Is it because the PHP script takes a long time to execute (meaning it's a code issue), or is it because of a server config. To test, modify this into the start of the entrance point of the PHP program (index.php):

define(START_TIME_CUSTOM, microtime(true));
function onEndTimeCompute() {
    $timeTaken = microtime(true) - START_TIME_CUSTOM;
    echo "Completed In: ".number_format($timeTaken, 4)." Seconds\n";
}
register_shutdown_function('onEndTimeCompute');

That write Completed in n Seconds to the end of the generated output (even if die() is called). It may cause some issues if Ajax calls are expected to return JSON, so don't do it as a rule, just for trying to figure out what's going on.

So, if the total request takes 1 second, yet you see Completed in 0.004 Seconds, you know that the PHP code itself is not the issue (it's either in the setup of the interpreter by CGI, or somewhere else in IIS)...

That should at least show you where the problem is...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文