我使用wkhtmltopdf导出pdf,当我尝试导出pdf localy或从同一网络中的其他机器导出时,它工作正常 但是当我尝试从不是来自同一网络的其他PC导出pdf时,我收到此错误消息
FatalErrorException in WindowsPipes.php line 207:
Maximum execution time of 30 seconds exceeded
答案 0 :(得分:1)
这是为了确保坏脚本不会占用太多资源。要允许PHP脚本长时间运行,您需要使用以下任何方法增加PHP脚本的最大执行时间限制; - 请参阅:https://www.simplified.guide/php/increase-max-execution-time
编辑您的php.ini文件并找到以下行:
max_execution_time
将其值更改为300:
max_execution_time = 300
否则,你需要在你的php页面的头部添加这一行:
ini_set('max_execution_time', 300); //seconds
答案 1 :(得分:0)
你的循环可能是无止境的。你需要在php页面的顶部添加它
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
否则添加此行
ini_set('max_execution_time', 0);
答案 2 :(得分:0)
您必须最大化执行时间。
如果您正在使用Live服务器而不是创建名为 user.ini 的文件并编写以下代码。 (将user.ini文件保存在相同文件夹)
max_execution_time = 600 // 600 seconds
如果您正在使用localhost,那么您可以使用像这样的ini_set()函数,
ini_set('max_execution_time', 600); //600 seconds
答案 3 :(得分:0)
这是最好的方法,因此您无需添加它以将这些代码添加到所有页面。转到php.ini
中的C://xampp/php/php.ini
,然后转到类似max_execution_time = 30
的行,将值更改为您希望保存的所需秒数并重新启动XAMPP服务器
答案 4 :(得分:0)
您提到的问题与PHP的max_execution_time
ini参数无关。
通过查看您添加到问题中的标记,您似乎正在使用PHP Laravel框架。您可能正在使用PHP库,该库使用wkhtmltopdf
生成PDF(例如,来自HTML内容),即KnpLabs/KnpSnappyBundle。
这样的库不使用exec函数,它会阻止PHP脚本,直到它及时完成或超出max_execution_time。相反,它使用proc_open函数执行wkhtmltopdf
命令并打开输入/输出的文件指针,从而立即返回(因此max_execution_time
不会生效)。
如果是这种情况,则Maximum execution time of 30 seconds exceeded
的原因与您正在使用的库严格相关。
如果您的库正在使用进程驱动的类来执行wkhtmltopdf
命令,那么您描述的问题可能与使用KnpSnappy库的人员描述的原因相同。如果是这种情况,那么请检查这些链接,这可能会有所帮助:
在我的情况下,问题与PHP会话和cookie
参数有关,因此我配置了我的库,以便将--cookie
参数传递给wkhtmltopdf
命令。查看wkhtmltopdf manual了解详情。
答案 5 :(得分:0)
在某些情况下,这种缓慢是由某些缺少的项目引起的,例如:图像,字体和链接。
尝试检查某些图像是否指向无效路径。