当前位置: 首页 > 知识库问答 >
问题:

如何使用自定义php覆盖php cli配置。伊尼

冷翼
2023-03-14

我正在努力用我的自定义php覆盖php cli配置。伊尼

我的定制php.ini

max_execution_time = 90
memory_limit = 256M
safe_mode = Off

运行php cli

php -c /home/env/php.ini -r 'phpinfo();' | grep 'memory_limit'

输出

memory_limit => 256M => 256M

然而,自定义php.ini似乎没有覆盖max_execution_timesafe_mode,因为它输出0和On而不是90和off。

运行这个简单的脚本

#!/usr/bin/php -c /home/env/php.ini
<?php echo 'memory_limit: ' . ini_get('memory_limit');

输出默认cli配置(128M),而不是预期的256M。

运行这个简单的脚本

#!/usr/bin/php -d max_execution_time=90
<?php echo 'max_execution_time: ' . ini_get('max_execution_time');

按预期产出90。

到目前为止,我只在运行时覆盖了一个配置指令,所以任何帮助都非常感谢如何覆盖多个配置指令。

编辑:

php -a
php > parse_ini_file('/home/env/php.ini');

输出没有错误,所以我想我的自定义php.ini是可以的。我只是发现执行

#!/usr/bin/php -c /home/env/php.ini
<?php echo 'memory_limit: ' . ini_get('memory_limit'); phpinfo();

表示加载的配置文件=

解决方案:

至少对我来说,似乎不可能在运行时用shebang覆盖多个配置指令。但是删除shebang并执行下面的命令为我解决了这个问题。

php -d max_execution_time=90 -d memory_limit=256M -d safe_mode=Off -f test.php

共有2个答案

万英武
2023-03-14

尝试将“safe_mode=Off”行作为自定义文件的第一行。如果我没记错的话,PHP会按照出现的顺序解析ini文件中的值。

也就是说,如果允许在服务器上这样做,并且不再依赖该功能,只需在php.ini禁用safe_mode。之后,使用代码中的ini_set函数来更改任何你喜欢的变量。我发现最好在脚本本身中配置脚本所需的配置,而不是通过额外的命令行参数或ini文件。

仅供参考,PHP安全模式从PHP版本5.4中删除,因此在旧版本中禁用它是一个很好的做法,以便在升级到新版本时问题更少。

洪飞龙
2023-03-14

我也试图通过CLI设置最大执行时间,但我无法做到这一点。

从文档中我了解到它是硬编码的,不能在CLI环境中更改。

无论如何,我发现timeout命令很有用:

timeout 60 php -d memory_limit=1024M script.php

(最多运行脚本60秒)。

 类似资料:
  • 与以下属性相关联,但它并没有更好地工作 我该怎么办?

  • 问题内容: 我已经创建了自己的主题作为单独的Maven项目,并且已正确加载了该主题。 现在,我想更改组件的大小。例如,一个。它有一个名为的类ui-orderlist-list,它primefaces.css使用200x200的固定尺寸定义。无论我在我的工作中做什么theme.css,它都会被此属性覆盖,并且我无法将内容 扩大。 对于其他组件,我可能只想覆盖一个组件实例,而不是全部。 谁能告诉我该怎

  • 具有在样式中指定的默认textColor属性。xml应用主题: 如果可以使用样式上的这个新项在某些需要的情况下覆盖它,那将是完美的。xml文件: 并在所需的textview xml布局上指定它,如下所示: 问题是有些东西不起作用,因为自定义textview显示时使用的是自定义主题的默认颜色(白色),而不是在自定义样式中为该textview指定的自定义颜色(绿色)。 我做错了什么?

  • 问题内容: 我想要的只是让bool(myInstance)返回False(以及在if / or / and等条件下让myInstance评估为False。我知道如何覆盖>,<,=) 我已经试过了: 有什么建议? (我正在使用Python 2.6) 问题答案: 这是Python 2.x还是Python 3.x?对于Python 2.x,您正在寻找替代方法。

  • 在苹果自带地图和百度地图上覆盖一层图片,图片可以随地图缩放移动。关键就是自定义Overlay和OverlayView。 作者说:实在无力吐槽了,百度地图iOS SDK中的静态库文件居然都是10M !由于过大上传不了,亲们自行去 http://developer.baidu.com/map/sdk-ios.htm 按提示添加SDK吧!至于基于百度地图的自定义Overlay和OverlayView 记

  • 是否可以加载自定义文件。ini文件,它覆盖了繁杂的php。分发包中的ini? 在unix系统上,我相信这可以通过在中放入额外的ini文件来实现,但我不确定IIS。 问题很简单:我可以定义一个额外的文件,用于添加或重载标准设置,例如: 位于中,是加载的配置文件<代码>myphp。ini是我的自定义配置 在哪里放置i,以便加载和,并且在? 是否有“扫描此目录以获取更多信息”。Windows下的ini文