2009-08-11 46 views
0

如何在PHP脚本中设置ini设置?如何从shell脚本中更改PHP ini设置?

php.ini未被读取,ini_set不起作用。

测试文件:

#!usr/local/bin/php -q 
<?php 

// display_errors is set to false in /etc/php.ini 

// This shouldn't display any errors 
$test = $foo; 

// We can also try 
ini_set('display_errors', false); 

// This definitely shouldn't display an error 
$test = $fum; 

?> 

输出:

PHP Notice: Undefined variable: foo in /data/home/___/test.php on line 7 
PHP Notice: Undefined variable: fum in /data/home/___/test.php on line 13 

回答

1

尝试设置错误报告使用error_reporing()功能

error_reporting(0); 
0

不知道为什么的ini_set不工作,但位置php.ini文件应该显示在phpinfo()中;调用 - 确保使用正确的php.ini(如果没有 - 您可能希望将符号链接在一起)

0

除了-c选项,该选项允许指定php.ini文件应使用(如Gumbo already stated - 我的回答仅仅是一个跟进他的一个),也有使用的可能性-d开关,它允许定义一个配置指令(无需创建一个文件)

$ php --help 
    ... 
    -d foo[=bar]  Define INI entry foo with value 'bar' 
    ... 


例如,考虑到你有一个脚本,只包含此:

<?php 
var_dump(ini_get('memory_limit')); 
die; 

你可以这样调用它:

$ php ./temp.php 
string(4) "128M" 

而且也通过这种方式,重新定义一个配置指令:

$ php -d memory_limit=27M ./temp.php 
string(3) "27M" 

当你要重新定义一个配置选项这是非常有用的只需一个脚本:您不必为此创建一个新文件。

0

如何(介意@字符):

< PHP

...
//这绝对不应该显示错误
@ $测试= $ FUM;
...

? >

+0

纯洁的邪恶! http://stackoverflow.com/questions/136899/suppress-error-with-operator-in-php/960288#960288 – Annan 2009-08-12 10:27:48

+0

我同意,但我认为这不是重写整个php.ini文件。 – Adi 2009-08-13 14:05:18