PHP 脚本是否使用“php”运行?命令受超时限制影响吗?
使用“php”命令运行的 PHP 脚本是否受到超时限制的影响?我计划使用 cron 来安排 php 脚本。
Are PHP scripts run using the "php" command affected by the timeout limit? I plan to schedule php scripts using cron.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的,但您可以通过将其添加到脚本顶部来设置无限超时:
Yes, but you can set an unlimited timeout by adding this to the top of your script:
某些系统(例如 Ubuntu)实际上已经在
/etc/php5
中以单独的 CLI 和 Apache 配置启动。ini 文件中的相关命令是:
但是,如果您由于某种原因无法修改 php.ini,您可以使用有利于命令行的配置设置创建一个新的 php.ini,并像这样指向该文件:
php -c /path/to/ini/php.ini -f script.php
或者,您可以使用 Cailin 的解决方案,并在文件顶部设置时间限制 - 但如果您是在启用了 PHP“安全模式”的服务器上运行,那么您将必须使用自己的 ini 文件。
Some systems, such as Ubuntu, actually already start with separate CLI and Apache configurations in
/etc/php5
.The relevant command in the ini file is:
However, if you are unable to modify the php.ini for whatever reason, you can create a new php.ini with configuration settings favourable to the command-line, and point to the file like so:
php -c /path/to/ini/php.ini -f script.php
Or, you can use Cailin's solution, and set the time limit at the top of the file - but if you are running on a server with PHP 'safe mode' enabled, then you will have to use your own ini file.
视情况而定。如果您的 php 二进制文件是 PHP CLI 界面,则默认的 max_execution_time 为零(意味着没有限制)。
另一方面,如果它是旧式 CGI 二进制文件,您将受到
max_execution_time
限制的影响,您需要调用set_time_limit
来摆脱它(假设您没有处于可怕的 PHP 安全模式)。Depends. If your php binary is the PHP CLI interface, the default
max_execution_time
is zero (meaning there is no limit).On the other hand, if it's the older-style CGI binary, you will be affected by the
max_execution_time
limit, and you'll need to callset_time_limit
to get rid of it (assuming you're not in the dreaded PHP safe mode).