为什么每次在OS X上打开Terminal.app时都会收到以下PHP警告?
上次登录:12月22日星期一11:53:25 ttys000
PHP警告:未知:它 依靠系统的时区设置是不安全的。你是 required 使用date.timezone设置或date_default_timezone_set()函数。如果您使用其中任何一个 方法,你最有可能仍然得到这个警告 拼写错误的时区标识符。我们选择了时区' UTC'对于 现在,但请设置date.timezone以选择您的时区。在未知 在第0行
机器:~user $
我今天才注意到这一点,之前我没有显示此警告。 我在php.ini中设置了PHP date.timezone:
[Date]
; Defines the default timezone used by the date functions
; Will be changed by MAMP to system timezone
date.timezone = "Europe/Moscow"
该指令位于位于 /Applications/MAMP/bin/php/php5.6.2/conf/php.ini 的php.ini中,这是我的PHP使用的一个PHP配置文件CLI还:
machine:~ user$ which php
/Applications/MAMP/bin/php/php5.6.2/bin/php
machine:~ user$ php -i | grep "Configuration File"
Configuration File (php.ini) Path => /Applications/MAMP/bin/php/php5.6.2/conf
Loaded Configuration File => /Applications/MAMP/bin/php/php5.6.2/conf/php.ini
我还检查了/private/etc/php.ini中的预装PHP的php.ini(由/etc/php.ini别名),我也在那里设置了date.timezone指令。 / p>
那为什么我仍然会收到这个令人讨厌的警告?
感谢您的关注!
编辑:这是php --ini
:
Configuration File (php.ini) Path: /Applications/MAMP/bin/php/php5.6.2/conf
Loaded Configuration File: /Applications/MAMP/bin/php/php5.6.2/conf/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
似乎唯一加载的conf文件是MAMP的php.ini,但为什么我在启动终端时不断获取该警告?
答案 0 :(得分:1)
我发现了这个问题。在我的 home 文件夹中的.bash_profile中是这一行:
export PHP_API_VER=`php -i | grep 'PHP Extension =' | grep -oE '[0-9]+'`
我使用此变量来了解我当前使用的PHP API扩展。由于此变量导出是在此之后:
PATH="$MAMP_PHP_BIN_FOLDER:$PATH"
将PHP bin文件夹( php 命令所在的位置)添加到PATH env var,我遇到了这个错误,因为在打开Terminal.app时错误的 php 使用了命令我必须在PATH之后输出PHP_API_VER。
然后我问自己"如果我同时安装了带有date.timezone指令的MAMP PHP和OS X预装PHP .ini文件,为什么我会收到警告?",答案是当.bash_profile加载时显示which php
,显示:
/usr/local/bin/php
什么?我安装了另一个版本的PHP,我忘记了(我用HomeBrew安装了它)。所以我检查了php命令的php.ini,添加了date.timezone指令,一切都很棒,现在可以正常工作。
再见!