Linux上PHP的真实max_execution_time
According to the documentation:
测试证实了这一点: 不会超时
会超时吗?
我们的问题是,我们真的希望PHP在给定的时间之后暂停,无论它在做什么(因为如果我们知道我们无法以可接受的数量提供页面,我们不想让资源保持忙碌时间,如10秒).我们知道我们可以使用诸如MySQL wait_timeout之类的设置来进行SQL查询,但页面超时将取决于执行的查询数. 有些人试图提出workarounds,但似乎没有实现. 问:有没有一种简单的方法可以在Linux上获得真正的PHP max_execution_time,或者我们是否更好地在其他地方超时,例如Apache级别? 最佳答案 这是一个非常棘手的建议,但如果你愿意修改和重新编译PHP,它肯定会做你想要的.在函数zend_set_timeout查看https://github.com/php/php-src/blob/master/Zend/zend_execute_API.c的PHP源代码(文件是Zend / zend_execute_API.c).这是实现时间限制的功能.以下是它在不同平台上的工作方式: >在Windows上,创建一个新线程,在其上启动一个计时器,当它完成时,将名为timed_out的全局变量设置为1,PHP执行核心检查每个指令的变量,然后退出(非常简化) 现在你要做的是将Linux上的itimer从ITIMER_PROF更改为ITIMER_REAL,当然你需要手动,重新编译,安装等.这两者之间的另一个区别是它们在计时器运行时也会使用不同的信号出.所以我的建议是改变ifdef:
成
这样你就可以设置ITIMER_REAL和PHP等待SIGALRM的信号. 无论如何,这个想法是未经测试的(我将它用于一些非常具体的系统,其中ITIMER_PROF被破坏,似乎有效),不受支持等.使用它需要您自担风险.它本身可以与PHP本身一起使用,但如果它们出于某种原因,它可能会破坏PHP和Apache中的其他模块,使用SIGALRM信号或其他计时器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Mysql入门windows server 2008 64位MySQL5.6免安装版本配置
- Mysql学习mysql完全卸载步骤分享
- Mysql必读mysql下mysqladmin日常管理命令总结(必看篇)
- Mysql应用mysql 常用命令集锦(Linux/Windows)
- Mysql入门Mysql 5.7.17忘记密码怎么办
- Mysql实例master and slave have equal MySQL server ids
- MySQL为关联表添加数据
- MYSQL教程使用JDBC从数据库中查询数据的方法
- ubuntu mysql中.frm .ibd 是什么文件
- Mysql应用与MSSQL对比学习MYSQL的心得(五)--运算符