Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php5.3.3 date.timezone未考虑php.ini指令_Date_Timezone_Php - Fatal编程技术网

php5.3.3 date.timezone未考虑php.ini指令

php5.3.3 date.timezone未考虑php.ini指令,date,timezone,php,Date,Timezone,Php,系统:Debian Lenny/Apache2.2/php5.3.3,编译自源代码 我正在php.ini中努力处理date.timezone 我可以在php源代码中定义TZ,但我想在ini文件中立即修复它 php代码:Ok date_default_timezone_set('Europe/Berlin'); php.ini:如果不是在源代码中设置的,则不考虑 date.timezone = 'Europe/Berlin' 我还检查了我是否修改了正确的php.ini文件,是否干扰了一些php

系统:Debian Lenny/Apache2.2/php5.3.3,编译自源代码

我正在php.ini中努力处理date.timezone

我可以在php源代码中定义TZ,但我想在ini文件中立即修复它

php代码:Ok

date_default_timezone_set('Europe/Berlin');
php.ini:如果不是在源代码中设置的,则不考虑

date.timezone = 'Europe/Berlin'
我还检查了我是否修改了正确的php.ini文件,是否干扰了一些php.default.ini文件。
我在apache配置文件中检查了TZ env数据是否存在干扰,但没有

不知道该怎么做,所以欢迎任何提示

thx提前

编辑: 我也尝试过使用date.timezone='Europe/Berlin'作为无引号、单引号或双引号,但在phpinfo中仍然得到“no value”

EDIT2:phpinfo()和下面的测试脚本都返回date.timezone为空(例如无值):

EDIT3:嗯,我想我在php.ini中找到了sthg:


因此,我必须找到方法确保Apache以某种方式寻找正确的php.ini…

我认为您缺少以下引用:

date.timezone = "Europe/Berlin"

该值是一个字符串,根据:必须用引号括起来。

希望它能帮助debian发行版上的其他人:

已解决:
需要告诉Apache加载想要的php.ini文件

上下文:
PHP作为Apache模块(如DSO)加载

简而言之:
壳牌环境

PHP_INI_SCAN_DIR=/pathtophpini
export PHP_INI_SCAN_DIR
http.conf

# ...
# DSO Modules: PHP as an Apache module
SetEnv PHPRC /usr/pathtophpini
SetEnv PHP_INI_SCAN_DIR /usr/pathtophpini

LoadModule php5_module /pathtophpmod/libphp5.so
PHPINIDir /pathtophpini
# ...

/etc/init.d/apache2 restart   
现在,使用命令行中的php cli或phpinfo()检查加载的配置文件php.ini是否正确:

更多文档:
在这一点上,只要很少有关于这个主题的文档,因为这是apache和php之间共同负责的主题:



注意:
php cli
php.ini
文件与
apache2
php.ini
文件不同。我建议用符号链接彼此以保持同步,避免混淆!不是真的!
php.ini
指令
date.timezone
需要一个字符串,但不需要引号。这与运行时选项不同:
date\u default\u timezone\u set('Europe/Berlin')
其中(在php代码中是正确的)需要引号。只是把事情安排好!;)最好指出,shell变量需要一个目录,但apache配置需要实际ini的路径。
# ...
# DSO Modules: PHP as an Apache module
SetEnv PHPRC /usr/pathtophpini
SetEnv PHP_INI_SCAN_DIR /usr/pathtophpini

LoadModule php5_module /pathtophpmod/libphp5.so
PHPINIDir /pathtophpini
# ...
/etc/init.d/apache2 restart   
/path/to/your/phpcli/bin/php -i | grep php.ini | tail -n2   
# which gives you the expected answer
Configuration File (php.ini) Path => /pathtophpini/php.ini
Additional .ini files parsed => /pathtophpini/php.ini