在php.ini中设置date.timezone不起作用

时间:2017-10-17 11:19:24

标签: php apache date datetime phpinfo

phpinfo()函数输出的快照:

enter image description here

当我尝试安装需要设置date.timezone的Roundcube时,我想通过填写php.ini中的date.timezone字段来设置date.timezone。

服务器配置

  • Debian 9(Stretch)
  • PHP 7.0.19-1(cli)(建于2017年5月11日14:04:47)(NTS)
  • Apache / 2.4.25(Debian)

我尝试了什么

根据http://php.net/manual/en/timezones.php,我使用不同的语法修改了/etc/php/7.0/apache2/php.ini和/etc/php/7.0/cli/php.ini中的date.timezone字段: / p>

date.timezone = Europe/Paris
date.timezone = 'Europe/Paris'
date.timezone = "Europe/Paris"

我总是在任何改变后重启Apache。

phpinfo没有任何变化,date.timezone字段始终设置为"没有值"并且安装Roundcube的第一步,date.timezone不行。

但是当我尝试时:

php -i

我明白了:

date/time support => enabled
"Olson" Timezone Database Version => 0.system
Timezone Database => internal
Default timezone => Europe/Paris

Directive => Local Value => Master Value
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.583333 => 90.583333
date.sunset_zenith => 90.583333 => 90.583333
date.timezone => Europe/Paris => Europe/Paris

我阅读了很多关于此类问题的相关旧帖,但不同的解决方案对我不起作用。有什么想法吗?

修改

根据phpinfo():

配置文件(php.ini)路径

/etc/php/7.0/apache2

已加载的配置文件

/etc/php/7.0/apache2/php.ini

扫描此目录以获取其他.ini文件

/etc/php/7.0/apache2/conf.d

解析了其他.ini文件

/etc/php/7.0/apache2/conf.d/10-mysqlnd.ini,/etc/php/7.0/apache2/conf.d/10-opcache.ini,/etc/php/7.0/apache2/ conf.d / 10-pdo.ini,/ etc / php / 7.0 / apache2 / conf.d / 15-xml.ini,/ etc / php / 7.0 / apache2 / conf.d / 1-calendar.ini,/ etc /php/7.0/apache2/conf.d/20-ctype.ini,/etc/php/7.0/apache2/conf.d/20-curl.ini,/etc/php/7.0/apache2/conf.d/20 -dom.ini,/etc/php/7.0/apache2/conf.d/20-exif.ini,/etc/php/7.0/apache2/conf.d/20-fileinfo.ini,/etc/php/7.0/ apache2 / conf.d / 20-ftp.ini,/ etc / php / 7.0 / apache2 / conf.d / -gd.ini,/ etc / php / 7.0 / apache2 / conf.d / gettext.ini, /etc/php/7.0/apache2/conf.d/20-iconv.ini,/etc/php/7.0/apache2/conf.d/20-imagick.ini,/etc/php/7.0/apache2/conf.d /20-imap.ini,/etc/php/7.0/apache2/conf.d/20-intl.ini,/etc/php/7.0/apache2/conf.d/20-json.ini,/ etc / php / 7.0 / apache2 / conf.d / 20-mbstring.ini,/ etc / php / 7.0 / apache2 / conf.d / 20-miltpt.ini,/ etc / php / 7.0 / apache2 / conf.d / -20m-cache。 ini,/etc/php/7.0/apache2/conf.d/20-mysqli.ini,/etc/php/7.0/apache2/conf.d/20-pdo_mysql.ini,/etc/php/7.0/apache2/ conf.d / 20-pdo_sqlite.ini,/ etc / php / 7.0 / apache2 / conf.d / -20-phar.ini,/ etc / php / 7.0 / apache2 / conf.d / -posix.ini,/ etc /php/7.0/apache2/conf.d/20-pspell.ini,/etc/php/7.0/apache2/conf.d/20-readline.ini,/etc/php/7.0/apache2/conf.d/20 -recode.ini,/ etc / php / 7.0 / apache2 / conf.d / 20-smmop.ini,/ etc / php / 7.0 / apache2 / conf.d / 1-simplexml.ini,/ etc / php / 7.0 / apache2 / conf.d / 20-snmp.ini,/ etc / php / 7.0 / apache2 / conf.d / - socket.ini,/ etc / php / 7.0 / apache2 / conf.d / 20-sysite3.ini, /etc/php/7.0/apache2/conf.d/20-sysvmsg.ini,/etc/php/7.0/apache2/conf.d/20-sysvsem.ini,/etc/php/7.0/apache2/conf.d /20-sysvshm.ini,/etc/php/7.0/apache2/conf.d/20-tidy.ini,/etc/php/7.0/apache2/conf.d/20-tokenizer.ini,/ etc / php / 7.0 / apache2 / conf.d / 20-wddx.ini,/ etc / php / 7.0 / apache2 / conf.d / - xmlreader.ini,/ etc / php / 7.0 / apache2 / conf.d / - xmlrpc。 ini,/etc/php/7.0/apache2/conf.d/20-xmlwriter.ini,/etc/php/7.0/apache2/conf.d/20-xsl.ini

4 个答案:

答案 0 :(得分:1)

我发现了这个问题。这是我在error_reporting区域的php.ini文件中的语法错误。

答案 1 :(得分:1)

让我做点贡献:我正在VPS上安装SilverStripe,却遇到了完全相同的问题。我整个下午一直在寻找答案,但没有取得积极的结果。经过所有尝试,我删除了“;”

前面
  

[日期]

     

;定义日期函数使用的默认时区

     

; date.timezone =欧洲/伦敦

这是我得到答案的地方: https://www.silverstripe.org/community/forums/installing-silverstripe/show/15398?start=8

希望每个人都能避免这种麻烦

答案 2 :(得分:0)

php_info()将始终指示正在使用的.ini的路径,确保这是正确的,并与您正在编辑的ini保持一致。

答案 3 :(得分:0)

我注意到 xampp 的 php.ini 文件中有两个地方不同,这里:

   [Date]
   ; Defines the default timezone used by the date functions
   ; http://php.net/date.timezone
   date.timezone = "America/Phoenix"```

and here:

; List of headers files to preload, wildcard patterns allowed.
;ffi.preload=
[Syslog]
define_syslog_variables=Off
[Session] 
define_syslog_variables=Off
[Date]
date.timezone=Europe/Berlin```

注意它们是不同的——我不知道“欧洲/柏林”是如何出现在我的 php.ini 中的。我注意到这出现在我的 php 错误日志中并搜索了整个 xampp 文件夹。