问题标签 [ini-set]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 使用 ini_set() 的 PSR-1 兼容替代方案是什么?
我正在使我的代码库符合 PSR-2(因此符合 PSR-1)并且我遇到了以下代码:
这用于增加此特定脚本(仅站点管理员可以访问并且不经常运行)能够消耗的内存量和执行时间。
memory_limit
在 php.ini中设置默认值max_execution_time
(所有标准脚本/文件都会遵守),然后在需要时增加这些限制,这对我来说当然是一个完全可以接受且合乎逻辑的实现。
但是,我记得 PSR-1 指出:
“文件应该声明符号(类、函数、常量等)或引起副作用(例如生成输出、更改 .ini 设置等),但不应该两者都做。”
然后它继续说明 usingini_set()
是副作用的一个示例(至少他们的示例表明它在类或函数的范围之外使用):
该文档可以在这里看到
因此,我的问题是:
- 在类方法(根据我的上下文)中使用 ini_set() 是副作用的一个例子吗?
- 如果是这样,符合 PSR-1 的替代方案是什么?
这个特定的脚本需要允许更多的内存使用和执行时间,但我不想仅仅为此增加全局 php.ini 设置,因为这将允许所有其他 PHP 进程使用它们应该使用的更多内存和执行时间。
php - php特定功能/ url /文件最大帖子大小?
我想知道您是否可以post_max_size
为特定页面或功能(在 中php.ini
)设置唯一?
您可以将其设置在.htaccess
php_value upload_max_filesize 4M
php_value post_max_size 4M
但它不适用于特定页面。ini_set()
也不适用于特定页面。
有什么建议么?
php - 包含其他文件时的最大执行时间
我有一个 php 文件 a.php,其中包括 b.php,其中包括 c.php。
所以 a.php 看起来像这样:
b.php 看起来像这样:
当我运行 a.php 时,出现此错误:
致命错误:c.php 中超过 60 秒的最大执行时间
当我收到此错误时,我通常使用:
问题就消失了。
我试图把它放在 a.php 和 c.php 中,但我仍然得到错误。
第一个问题是:我把它放在 a.php 还是 c.php 中是否重要?第二个问题:如果在a.php和c.php中设置max_execution_time不起作用,我该怎么办?
顺便提一句。我不能访问 php.ini 所以我不能把它设置在那里。注意:显然这不是我的实际代码和文件名,但这几乎是设置。我正在使用别人的代码。所以 b.php 和 c.php 是由其他人创建的,而我正在创建 a.php。
php - 使用 ini_set('memory_limit', '-1') 时的问题
我想知道,ini_set('memory_limit', '-1')
在多次使用时是否有任何问题(对服务器不利)?
我需要知道这一点的原因是,我现在正在一个使用连接查询的项目中工作。我们只获取所需的数据以避免最大负载,但在某些情况下数据超过 20000+ 条记录,执行死亡并显示500 (Internal Server Error)
。
我知道错误 500 可能是许多其他问题的原因,所以我检查了它并发现原因是因为 PHP 执行内存限制超过(256M)。当我设置ini_set('memory_limit', '-1')
我的代码时,查询正确执行。
上述解释只是一种情况/场景,无需考虑&是的,我同意使用ini_set('memory_limit', '-1')
是一种不好的做法。因此,我的问题显然是要知道在项目的不同部分(例如服务器问题左右)多次使用 ini_set('memory_limit', '-1') 是否有任何问题。如果是,它们是什么?
php - 由于 ini_set() 无法发布 Laravel 应用
我似乎无法让我的 Laravel 应用程序工作,因为我的共享主机禁用了 ini_set()。我发现了一些依赖于启用 ini_set() 的解决方法。
我也不能这样做(我已经尝试过),因为我的托管服务提供商不允许这样做,我也不想这样做,因为它不安全。我正在寻找一种方法来阻止 Laravel 使用该功能。
我发现 Laravel 正在尝试调用 ini_set('display_errors', Off)。我尝试从配置、缓存配置和 .env 中删除调试值,而 Laravel 仍在调用该函数。我不需要它这样做,因为我的服务器设置已经有我想要的 display_errors(禁用)。
总而言之,我正在寻找一种方法来阻止 Laravel 尝试使用 ini_set。有人有什么建议吗?
php - max_execution_time 的 ini_set 不起作用
我正在使用带有 Yii 框架命令的PHP命令行。
据我所知,cli默认值为0
当我将其值更改为2秒时,它给出的0
值是成功值作为旧值。更改后我还检查了值
使用
它给出了正确的值,即2
我已经放置了跟踪器以获取该代码之后的总执行时间
它提供超过5
秒。知道为什么它没有给出超时错误吗?
php - PHP ini_set open_basedir 没有效果
我在我的 Ubuntu + PHP 7.0.18 + Apache2 上遇到了这个问题:在我的 php.ini 中设置了 open_basedir = /var/www:/tmp。它工作正常。但是在一个网络应用程序中,我需要使用另一个目录来使用。我正在尝试通过 ini_set 设置它:
但它没有任何效果:
如果 php.ini 中 open_basedir 的值为空,则此代码可以正常工作。这是预期的行为还是我做错了什么?
php - 是否可以禁用每个脚本的 PHP 慢日志?
我的网页上有一个处理大量信息的脚本,它应该很慢。但是 php-fpm 正在终止它,因为日志慢。
我只是在日志中看到注意:孩子 26537 停止跟踪,Web 服务器向我抛出 504 错误。
我试图通过 ini_set 禁用慢日志
但它不工作。我正在使用 php 7.1 最新版本
php - PHP ini_set max_execution_time nog 工作正常吗?
要监视max_execution_time
特定脚本的,我使用
ini_set('max_execution_time', 600); //600 seconds = 10 minutes
在我的脚本的顶部。但是,当我构建同一文件的日志记录时,它会返回以下内容:
...................|ALREADY RUNNING
表示中间每分钟重复的多条消息。
我做错了什么,因为到目前为止间隔不是 10 分钟?
编辑:
我有的while循环:
php - Codeigniter: Allowed memory size of 33554432 bytes exhausted ( already using ini_set('memory_limit', '-1'); )
On my localhost, the process in question works fine. It's basically a whole lot of number crunching.
But on my server (CentOS 5.9 + PHP 5 + MySQL 5) it gives me this error:
I'm already declaring the following before running this function:
The system itself has 8 GB of memory. My local machine has 12 GB of memory. I doubt it needs that much memory, though.
Any insights would be greatly appreciated. Thanks in advance!