如何使用PHP命令行定义多个ini设置?

7

我正在尝试为一个脚本临时开启allow_url_fopenrename函数。我可以单独使用其中一个函数,但无法同时使用两个函数。

像这样:

php -d allow_url_fopen=on rename=on <file>

我正在使用PHP 5.6。

更新

显然,rename()在我的php.ini文件的disable_functions中(而allow_url_fopen在外部关闭),因此我假设-d选项不会更改disable_functions指令的设置。

因此,原始问题仍然存在,还有一个新问题:

是否可能使用命令行工具启用被禁用的函数?或者我需要重新定义整个disable_functions指令(如果可能)?

第二次更新

这对我的情况有效:

php -d disable_functions=fn1,fn2,etc -r 'ini_set("allow_url_fopen", "1");' <file> <args>

您不能使用ini_set()更改disable_functions指令。如果您的php.ini文件中有另一个指令无法通过ini_set()更改,则我不知道如何解决该问题。虽然原始问题尚未得到回答,但我的问题已得到解决。


1
也许尝试为每个选项使用“-d”。 - Matt
@mkaatman 我已经尝试过了 =/ - Katrina
@mkaatman 我已经尝试过 php -B 'ini_set("allow_url_fopen", "1"); ini_set("rename", "1");'php -r 'ini_set("allow_url_fopen", "1"); ini_set("rename", "1");',但都没有成功。请查看我的更新问题。 - Katrina
你是否被托管在一个不允许你更改 php.ini 的主机上而束手无策? - Matt
如果您运行以下命令:php -d allow_url_fopen=1 -r 'echo ini_get("allow_url_fopen")."\n";',您会得到什么? - Matt
显示剩余2条评论
1个回答

13

您需要为每个要定义的设置定义一个-d OPTION块。

您需要运行:

php -d allow_url_fopen=on -d rename=on <file>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接