gpt4 book ai didi

PHP:超过 30 秒的最大执行时间

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

我有一个 php 应用程序调用一个名为 Client 的类。每隔一段时间我就会遇到一种超时错误。一开始我以为是 SQL,但它把它指向类本身。

Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\ClientPortal\classes\Connections.php on line 3

<?php
session_start();
class Connections { //line 3

有人知道这里发生了什么吗?

谢谢,

比利

最佳答案

如 php.ini 中所声明的,PHP 脚本有允许执行的最长时间。

如果您确实需要,可以通过添加以下行来规避此问题:

ini_set('max_execution_time', 123456);

其中 123456 是您希望限制的秒数。

您还可以使用 set_time_limit 函数,我刚刚发现它并假设它做同样的事情。不过,我总是只做前者。

您可以在 php.ini 文件中更改它,但您可能正在使用脚本执行批处理操作或其他操作。你不希望最终用户访问的 PHP 脚本在那里挂起 30 秒或更长时间,所以你最好将它保留为默认值,甚至在 php.ini 文件中将其关闭,并根据需要设置 max_execution_time。

正如 seengee 在下面的评论中指出的那样,您可以将 max_execution_time 设置为 0 以阻止错误发生,但 seegee 说得对,至少对于网络请求,您真的不应该这样做。对于 php 命令行解释器,此行为是默认行为。

如果您在应该由最终用户通过 Web 请求使用的东西上看到这个问题,您可能必须进行一些分析才能找出真正的原因。如果您正在执行 MySQL 查询,请先打开 slow query log 。当您忘记了索引,或者您正在做其他低效的事情时,它特别擅长让您知道。

你也可以推几个$s = microtime(true);你的东西(); var_dump(microtime(true)-$s); 周围的事物以获得关于哪些位正在减慢速度的模糊概述,只需确保您之后不要留下任何它们!

如果您仍在努力寻找根本原因,请在本地计算机上设置 xdebug 并运行探查器。该扩展可作为预编译的 Windows 二进制文件使用(尽管似乎有一系列令人困惑的版本)。您可以使用 wincachegrind 检查运行探查器的结果。

关于PHP:超过 30 秒的最大执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4051107/

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